4.3 KiB
4.3 KiB
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_DBPOSTGRES_USERPOSTGRES_PASSWORDJWT_SECRETPARSER_INTERNAL_SECRETNUXT_PUBLIC_API_BASEAPP_PUBLIC_URLCORS_ORIGINSMTP_*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 БД