# Фаза 8 — памятка «поднять виртуалку и включить свой рендер». РАНБУК (05.07.2026)
> ## ✅ ВЫПОЛНЕНО НА DEV (05.07.2026, вечер) — виртуалка живёт и проверена
> - **ВМ `liderra-render`** создана в YC (тот же фолдер/сеть, что боевой): публичный **51.250.1.97**, внутренний **10.128.0.4**, Ubuntu 22.04, 4 ядра / 8 ГБ.
> - Рендер-сервис под **systemd** (`liderra-render.service`, автозапуск), Node 20 + полный Chromium.
> - Прокси подхватился (`/health` → `proxies:1`). Смоук 2ГИС через прокси — данные идут.
> - **https без домена:** Caddy + `sslip.io` → адрес **`https://51-250-1-97.sslip.io/render`** (настоящий сертификат Let's Encrypt, авто-продление). Домен НЕ понадобился.
> - **Файрвол (ufw):** снаружи только 22/80/443; порт сервиса 8790 закрыт (ходят только через «замочек»).
> - **Вход на ВМ:** `ssh -i ~/.ssh/liderra_deploy ubuntu@51.250.1.97`. Управление облаком: `yc` в `/c/Users/Administrator/yandex-cloud/bin`.
> - **Осталось (за владельцем, прод):** те же 3 строки в `app/.env` БОЕВОГО портала + `queue:work` перезапуск + сверка на объёме (~127 фирм). Это правка боевого — только с разрешения. Откат — флаг в `false`.
>
> Остальная часть файла ниже — исходный план (как делалось), оставлен для истории/повтора.
---
**Что это.** Пошаговый сценарий для последнего шага автоподбора: поднять отдельную виртуалку,
поставить на неё рендер-сервис (`render-service/`), воткнуть купленный прокси и секретный ключ,
проверить живьём, включить флаг на портале и сверить результат «фирма в фирму».
**Готовим «на берегу» (05.07):** сначала просматриваешь этот файл, потом заказываем виртуалку вместе, шаг за шагом.
Ничего из этого пока НЕ выполнено — это план команд, а не отчёт.
**Правила по ходу:** прод не трогаем; флаг по умолчанию ВЫКЛ; секреты только в `.env` (не в гит).
Ветка `worktree-avtopodbor`.
---
## 0. Что нужно от тебя ОДИН раз (единственное решение)
Порталу нужно звать виртуалку по защищённому адресу (с «замочком» https). Для «замочка» нужен
**поддомен**. Предлагаю самый простой и надёжный вариант:
- Завести DNS-запись **`render.liderra.ru`** → на IP новой виртуалки (A-запись, ты добавляешь у регистратора домена).
- На виртуалке ставим **Caddy** — он сам, бесплатно и автоматически, получает и продлевает «замочек».
Это НЕ трогает боевой сайт — просто ещё одно имя рядом. Если поддомен не хочешь — есть запасной
вариант (без домена, по «голому» IP с ограничением по firewall), опишу в §7. **Рекомендую поддомен.**
> 🔴 Реши только это: **поддомен `render.liderra.ru` — ок?** Остальное — техника, делаю сам с твоими нажатиями кнопок.
Гранулярно (по желанию): можно включить только 2ГИС (`AUTOPODBOR_SELF_RENDER_2GIS=true`) или только
Яндекс — но для приёмки включаем целиком.
---
## 10. Приёмка владельцем (ты смотришь глазами)
1. На dev-портале запустить **шаг 1** (поиск конкурентов) по реальному клиенту.
2. Запустить **шаг 2** (изучение) хотя бы по нескольким конкурентам.
3. Сверить руками с живым 2ГИС:
- конкурентов должно быть **много (~127 на тест-запросе), не 51** — признак, что канал реально собирает;
- **ноль мусора** (не «Бургер Кинг» вместо ломбарда — это была болезнь двойного кодирования, лечится double-tap);
- телефоны и сайты — верные, как в карточке 2ГИС.
4. Всё сошлось → флаг оставляем ВКЛ. Что-то не так → §11 и откат (§12).
---
## 11. Если что-то не так (быстрая диагностика)
| Симптом | Куда смотреть |
|---|---|
| `/health` даёт `proxies:0` | строка `PROXIES` в `.env` виртуалки (формат `http://user:pass@host:port`), перезапустить службу |
| `/render` возвращает `{"data":""}` | логи службы: `journalctl -u liderra-render -n 100`; проверить, что прокси жив (не кончились деньги/не сменился порт) |
| 401 unauthorized | `RENDER_KEY` на виртуалке ≠ `SELF_RENDER_KEY` на портале |
| мусор вместо фирм (Бургер Кинг) | болезнь двойного кодирования; в браузере уже стоит museum double-tap (`browser.mjs`), проверить что это поиск `/search/` |
| мало фирм / пусто у Яндекса | лента ленивая — проверить `scrolls`; смотреть `type:yandex-list` |
| портал будто не видит виртуалку | не перезапущен `queue:work` после правки `.env` |
).catch(()=>{/* нет карточки — отдадим что есть */});
awaitpage.waitForTimeout(1200);
}
if(type==='initialState'){
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.