Lead Radar: исходный код

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
yuriandClaude Opus 5.5 committed 2026-10-25 23:11:04 +04:00
commit 9749da5ae7
201 files changed
+97685

No files matched your search

+58
View File
@@ -0,0 +1,58 @@
# Промт: переезд 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`, прошлая версия кода, бэкап базы.
Неясное — спрашивай до правок, а не во время выкладки.