Files
antigol-service/docs/DEPLOY.md
talorr cda36918e8 init
2026-03-27 03:36:08 +03:00

4.3 KiB
Raw Blame History

Deploy Runbook

Короткая инструкция по выкладке проекта на сервер.

1. Подготовка сервера

  • Установить git, docker, docker compose.
  • Открыть наружу только порты 80 и 443.
  • Закрыть наружу 5432, 6379, 3000, 4000, 4010, 8080.
  • Создать каталог проекта, например:
mkdir -p ~/alpinbet-parser
cd ~/alpinbet-parser

2. Получение кода

Если репозиторий уже инициализирован:

git remote -v
git pull

Если это первый деплой:

git clone git@gitlab.com:talorr/alpinbet-parser.git ~/alpinbet-parser
cd ~/alpinbet-parser

3. Настройка секретов

Скопировать шаблон env:

cp .env.example .env

Заполнить в .env:

  • POSTGRES_DB
  • POSTGRES_USER
  • POSTGRES_PASSWORD
  • JWT_SECRET
  • PARSER_INTERNAL_SECRET
  • NUXT_PUBLIC_API_BASE
  • APP_PUBLIC_URL
  • CORS_ORIGIN
  • SMTP_*
  • VAPID_*
  • FIREBASE_*

Важно:

  • Не оставлять change_me_*.
  • Использовать длинные случайные значения для JWT_SECRET и PARSER_INTERNAL_SECRET.
  • adminer и dockmon должны оставаться закомментированными в docker-compose.yml.

4. Доступ к Traefik Dashboard

Создать файл с логином и паролем:

mkdir -p traefik/secrets
cp traefik/secrets/dashboard-users.example traefik/secrets/dashboard-users

Сгенерировать htpasswd:

htpasswd -nb admin 'CHANGE_ME_STRONG_PASSWORD' > traefik/secrets/dashboard-users

5. Проверка конфига

Перед запуском проверить итоговый compose:

docker compose config

Если здесь ошибка, не запускать деплой, пока она не исправлена.

6. Первый запуск

Собрать и поднять стек:

docker compose up -d --build

Применить схему базы:

docker compose exec backend npx prisma db push

Проверить статус:

docker compose ps
docker compose logs --tail=100 backend
docker compose logs --tail=100 frontend
docker compose logs --tail=100 parser

7. Smoke Check После Деплоя

Проверить:

curl https://api.antigol.ru/health

И вручную в браузере:

  • https://antigol.ru
  • логин
  • открытие сигналов
  • админка, если нужна

8. Бэкап Базы

Создать sql-бэкап:

docker compose exec -T postgres pg_dump -U postgres -d betting_signals > backup_$(date +%F_%H-%M-%S).sql

Или сразу архив:

docker compose exec -T postgres pg_dump -U postgres -d betting_signals | gzip > backup_$(date +%F_%H-%M-%S).sql.gz

Если имена БД и пользователя другие, подставить свои значения из .env.

Скачать бэкап на локальную машину:

scp root@your-server:~/alpinbet-parser/backup_2026-03-25_20-30-00.sql.gz .

9. Обновление Проекта

Обычный порядок после git pull:

git pull
docker compose build backend frontend parser forecast-ocr
docker compose up -d
docker compose exec backend npx prisma db push

Если менялись только env или Traefik:

docker compose up -d

10. Полезные Команды

Логи:

docker compose logs -f backend
docker compose logs -f parser
docker compose logs -f traefik

Перезапуск одного сервиса:

docker compose restart backend
docker compose restart parser

Остановить проект:

docker compose down

11. Минимальный Продовый Чеклист

  • .env заполнен реальными значениями
  • dashboard-users создан
  • docker compose config проходит без ошибок
  • наружу открыты только 80 и 443
  • adminer и dockmon не включены
  • после запуска проходит /health
  • сделан свежий backup БД