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

59 lines
5.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Промт: переезд 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`, прошлая версия кода, бэкап базы.
Неясное — спрашивай до правок, а не во время выкладки.