# Выкладка на VPS Боевой стенд — три контейнера на том же VPS, где сайт: база `leadradar-db`, сервис `leadradar-api` (API, бот, парсер), кабинет `leadradar-web` (nginx), плюс `leadradar-backup` с ежедневной копией базы. Наружу их публикует уже работающий Nginx Proxy Manager. Чужие контейнеры на VPS (`brain-*`, `nepotolok*`, `yandp-site`) выкладка не трогает. Локально сборка проверена 09.10.2026: образы собираются, миграции применяются, `/api/health` отвечает, резервная копия создаётся. Первая выкладка на VPS — 09.10.2026: контейнеры работают, бот `@yandpleadradar_bot` и парсер запущены. Домен в Nginx Proxy Manager нужно добавить вручную (шаг 5). ## Что нужно один раз 1. **Домен.** В Namecheap добавить A-запись поддомена на `188.116.21.175`. 2. **Боевой бот.** Создать бота в @BotFather, затем `/setdomain` → домен кабинета (нужно для входа через Telegram в браузере). Кнопку меню с Mini App сервис ставит сам при запуске. 3. **Настройки на VPS.** Создать `/opt/leadradar/.env` по образцу [`deploy/.env.production.example`](../deploy/.env.production.example): пароль базы, адрес кабинета с `https://`, токен и имя бота, ключ Jina. 4. **Первая выкладка.** На Mac из папки `leadradar`: `./deploy.sh`. 5. **Адрес в Nginx Proxy Manager.** Proxy Host: домен → `leadradar-web`, порт 80, включить Let's Encrypt и Force SSL. Панель NPM открывается через `ssh -i ~/.ssh/yandp_vps -L 8181:127.0.0.1:81 root@188.116.21.175` → http://localhost:8181. 6. **Суперадмин.** На VPS: `docker exec leadradar-api sh -c 'cd /app/apps/api && node --import tsx src/cli/create-superadmin.ts "Имя"'` — команда напечатает пароль. ## Обновление На Mac: `./deploy.sh`. Скрипт прогоняет проверки и тесты, загружает исходники, пересобирает образы на сервере и перезапускает контейнеры. Миграции базы применяются при старте `leadradar-api`. ## Резервные копии `/opt/leadradar/backups/leadradar-ГГГГ-ММ-ДД.sql.gz`, хранятся 14 последних. Восстановление на VPS: ```bash gunzip -c /opt/leadradar/backups/leadradar-2026-10-09.sql.gz | docker exec -i leadradar-db psql -U leadradar leadradar ``` Копии лежат на том же сервере, что и база: от поломки диска они не спасут. Вынос копий на другой сервер или в облако не настроен. ## Что не настроено - Почта: письма подтверждения email и сброса пароля пишутся в лог `leadradar-api`. - Онлайн-оплата: см. [BILLING.md](BILLING.md).