Files
CRM-LeadRadar/docs/MIGRATION-YANDP-TECH.md
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

5.3 KiB
Raw Permalink Blame History

Промт: переезд Lead Radar на crm.yandp.tech

Вставить целиком в новую сессию Claude Code, открытую в папке site/CRM/leadradar.


Переносим Lead Radar (папка site/CRM/leadradar, прод — сервер 69.62.120.231, ssh-алиас vps2, /opt/leadradar) со старого домена listcrm.yandpconsulting.com на новый crm.yandp.tech.

Что должно получиться

  1. crm.yandp.tech — основной адрес CRM. Все ссылки, которые генерирует сервис (письма, приглашения, кнопки и уведомления бота, Mini App, возврат после оплаты, отчёты, ссылки клиентам), ведут на crm.yandp.tech. Для всех компаний, включая AREV.
  2. listcrm.yandpconsulting.com — редирект 301 на crm.yandp.tech с тем же путём и параметрами. Старые ссылки клиентов, приглашения и закладки продолжают работать через переадресацию.
  3. arev.yandp.tech — второй адрес CRM, только для организации AREV (companies.id = 10):
    • ссылки клиентам AREV генерируются на arev.yandp.tech (уже сделано 19.10.2026 через settings.clientHost, сохранить; у остальных компаний — crm.yandp.tech);
    • сотрудники AREV и суперадмин могут войти и работать в CRM на этом домене;
    • пользователь другой компании на arev.yandp.tech не попадает в кабинет: видит понятное сообщение со ссылкой на crm.yandp.tech; регистрация новых компаний на этом домене закрыта.

Что проверить в коде

  • Ссылки строятся из APP_URL (config.appUrl) — найди все места поиском по appUrl. Сам переезд для них — это смена APP_URL на https://crm.yandp.tech в /opt/leadradar/.env.
  • Ограничение «только AREV» на arev.yandp.tech делай на сервере (по заголовку Host), не только во фронте. Домен → компания задаётся одним местом в настройках, без хардкода по коду.
  • Вход через Telegram-виджет у бота работает только на одном домене — пусть это будет crm.yandp.tech. Дай мне команду /setdomain для BotFather. На arev.yandp.tech виджет скрыть, вход по email должен работать.
  • Сессии привязаны к домену: после переезда всем один раз придётся войти заново — это нормально.
  • Тесты на пункты выше, pnpm typecheck && pnpm test зелёные.

Инфраструктура (делаю я, ты даёшь точные шаги)

  • DNS у Hostinger: A crm и A arev → 69.62.120.231 (проверь dig, прежде чем просить SSL).
  • Nginx Proxy Manager (ssh -L 8181:127.0.0.1:81 vps2 → http://localhost:8181): proxy host на leadradar-web:80 для обоих новых доменов, SSL Let's Encrypt, Force SSL, HTTP/2, Websockets.
  • Редирект старого домена — скажи, как настроить его в NPM (Redirection Host или правка существующего proxy host), и в какой момент.

Порядок и безопасность

  1. Сначала план: правки в коде, порядок выкладки, откат. Покажи его мне до правок.
  2. Порядок: DNS и SSL на новых доменах → бэкап базы → выкладка кода → проверка на новых доменах → смена APP_URL и перезапуск API → BotFather → редирект старого домена.
  3. Бэкап: ssh vps2 'mkdir -p /opt/leadradar/manual-backups && docker exec leadradar-db pg_dump -U leadradar -d leadradar | gzip > /opt/leadradar/manual-backups/before-yandp-tech-$(date +%F).sql.gz'.
  4. Выкладка только так (по умолчанию скрипт смотрит на СТАРЫЙ сервер — там поднимется второй бот): VPS_HOST=root@69.62.120.231 SSH_KEY=~/.ssh/vps_claude ./deploy.sh
  5. После выкладки проверь: вход и кабинет на crm.yandp.tech и arev.yandp.tech, отказ чужому пользователю на arev, ссылка клиента AREV и другой компании, старая ссылка через редирект, кнопка бота, письмо приглашения. docker logs leadradar-api без ошибок.
  6. Откат описать заранее: прошлый APP_URL, прошлая версия кода, бэкап базы.

Неясное — спрашивай до правок, а не во время выкладки.