Files
yuriandClaude Opus 5.5 9749da5ae7 Lead Radar: исходный код
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-25 23:11:04 +04:00

3.4 KiB

Выкладка на 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: пароль базы, адрес кабинета с 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 <email> "Имя"' — команда напечатает пароль.

Обновление

На Mac: ./deploy.sh. Скрипт прогоняет проверки и тесты, загружает исходники, пересобирает образы на сервере и перезапускает контейнеры. Миграции базы применяются при старте leadradar-api.

Резервные копии

/opt/leadradar/backups/leadradar-ГГГГ-ММ-ДД.sql.gz, хранятся 14 последних. Восстановление на VPS:

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.