Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
59 lines
5.3 KiB
Markdown
59 lines
5.3 KiB
Markdown
# Промт: переезд 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`, прошлая версия кода, бэкап базы.
|
||
|
||
Неясное — спрашивай до правок, а не во время выкладки.
|