Lead Radar: исходный код
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
commit
9749da5ae7
201 files changed
+97685
No files matched your search
@@ -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`, прошлая версия кода, бэкап базы.
|
||||
|
||||
Неясное — спрашивай до правок, а не во время выкладки.
|
||||
Reference in new issue
Block a user