Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
5.3 KiB
5.3 KiB
Промт: переезд 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.
Что должно получиться
crm.yandp.tech— основной адрес CRM. Все ссылки, которые генерирует сервис (письма, приглашения, кнопки и уведомления бота, Mini App, возврат после оплаты, отчёты, ссылки клиентам), ведут наcrm.yandp.tech. Для всех компаний, включая AREV.listcrm.yandpconsulting.com— редирект 301 наcrm.yandp.techс тем же путём и параметрами. Старые ссылки клиентов, приглашения и закладки продолжают работать через переадресацию.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; регистрация новых компаний на этом домене закрыта.
- ссылки клиентам AREV генерируются на
Что проверить в коде
- Ссылки строятся из
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), и в какой момент.
Порядок и безопасность
- Сначала план: правки в коде, порядок выкладки, откат. Покажи его мне до правок.
- Порядок: DNS и SSL на новых доменах → бэкап базы → выкладка кода → проверка на новых доменах →
смена
APP_URLи перезапуск API → BotFather → редирект старого домена. - Бэкап:
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'. - Выкладка только так (по умолчанию скрипт смотрит на СТАРЫЙ сервер — там поднимется второй бот):
VPS_HOST=root@69.62.120.231 SSH_KEY=~/.ssh/vps_claude ./deploy.sh - После выкладки проверь: вход и кабинет на
crm.yandp.techиarev.yandp.tech, отказ чужому пользователю наarev, ссылка клиента AREV и другой компании, старая ссылка через редирект, кнопка бота, письмо приглашения.docker logs leadradar-apiбез ошибок. - Откат описать заранее: прошлый
APP_URL, прошлая версия кода, бэкап базы.
Неясное — спрашивай до правок, а не во время выкладки.