Используй этот навык для автоматизации развертывания обновлений на продакшен-сервере FREESPORT. Активируй при запросах "обнови сервер", "deploy to production", "выполни деплой", "быстрый фикс на проде", "обнови фронтенд/бекенд на сервере".
Этот навык предназначен для управления процессом обновления проекта FREESPORT на продакшен-сервере через SSH.
5.35.124.149root/home/freesport/freesport/https://github.com/AlexMobiCraft/FREESPORT-B2B.gitdocker/docker-compose.prod.yml.env.prodПеред обновлением сервера необходимо убедиться, что код запушен в правильный репозиторий:
git status).develop: .git push origin developmain (локально или через PR): git checkout main; git merge develop --no-edit; git push origin main.FREESPORT-B2B, убедись, что main запушен именно туда (git push production main).production-server-ssh).cd /home/freesport/freesport/.Freesport Sync Bot):
git fetch origin main
git reset --hard origin/main
Используй, когда изменились зависимости (requirements.txt, package.json), Docker-конфигурация или требуются масштабные изменения.
# 1. Сборка и запуск всех контейнеров
docker compose --env-file .env.prod -f docker/docker-compose.prod.yml up -d --build
# 2. Миграции БД
docker compose --env-file .env.prod -f docker/docker-compose.prod.yml exec backend python manage.py migrate
# 3. Сборка статики
docker compose --env-file .env.prod -f docker/docker-compose.prod.yml exec backend python manage.py collectstatic --no-input
Используй для обновления логики (Python/JS код), если не менялись зависимости и структура контейнеров.
# Перезапуск основных сервисов
docker compose --env-file .env.prod -f docker/docker-compose.prod.yml restart backend frontend
[!NOTE] Если изменения во фронтенде требуют пересборки статики (Next.js build), используй сценарий "Обновление фронтенда" (с флагом
--build).
docker compose --env-file .env.prod -f docker/docker-compose.prod.yml up -d --build backend
docker compose --env-file .env.prod -f docker/docker-compose.prod.yml exec backend python manage.py migrate
docker compose --env-file .env.prod -f docker/docker-compose.prod.yml up -d --build frontend
[!DANGER] PowerShell vs Bash: На Windows используй
;для разделения команд вместо&&. Пример:git add .; git commit -m "..."; git push.
[!WARNING] На сервере часто появляются коммиты от
Freesport Sync Bot. Поэтому ВСЕГДА используйgit reset --hard origin/mainвместоgit pull, чтобы избежать ошибок слияния ("divergent branches").
[!IMPORTANT] После обновления фронтенда всегда проверяй доступность сайта. Из-за особенностей Docker иногда требуется
restart nginx, если upstream перестал отвечать.
docker compose -f ... ps — проверить статус контейнеров.docker compose -f ... logs --tail=50 backend — проверить логи.