# План: боевое развёртывание в контейнерах (порт 18000) Источник: `docs/analysis-2026-09-21.md` (рекомендуемый порядок, п. 1), `docs/summary-real-data-run.md` (тестовый запуск с AS62041 пройден). ## Решения пользователя - Токен записывается в переменные окружения проекта (`.env`, вне git). - Развёртывание в контейнерах на порту **18000** (если свободен; проверено: свободен). - Доступ открыт для всех: порт публикуется на всех интерфейсах хоста (доверенный контур; TLS нет - риск 5 анализа принят). - Резервные копии остаются на томе `/data/backups`, отдельно не выносятся (риск 10 принят). ## Параметры - Проект Compose по умолчанию (`ripe_cidr_collector`), образ `ripe-cidr-collector`, том `ripe_cidr_collector_ripe_data`, перезапуск `unless-stopped` (Docker на хосте включён при загрузке). - `.env` (права 600): `RIPE_API_TOKEN` (случайный, 64 hex-символа), `API_PORT=18000`, `TZ=Europe/Moscow` (часовой пояс хоста; расписания `*/15` для ASN, `0 3 * * *` для FQDN и `30 4 * * *` для копий считаются по нему). - Данные: в том копируются **копии** реальных `config.json` (шесть ASN и три FQDN), `data.json`, `fqdn_data.json`; исходные файлы проекта не меняются (сверка контрольных сумм). Миграция в SQLite выполняется при первом обращении. ## Шаги 1. Проверка предпосылок, контрольные суммы исходных файлов. 2. Токен и `.env`; сборка образа; перенос копий файлов в том; `docker compose up -d`. 3. Проверка: сервисы `healthy`, миграция без потерь (24 префикса, 4 значения FQDN), часовой пояс контейнеров. 4. Первый сбор по всем источникам (`POST /collect`): `/sources`, `/health`, `/addresses`, diff; источник AS11917 (в данных февраля был пуст). 5. Доступ извне: запрос по адресу хоста (не `127.0.0.1`), запись без токена отклоняется (401), с токеном проходит. 6. Наблюдение штатного расписания (ближайший квартал часа для ASN), если ожидание короткое. 7. Итоги `docs/summary-production-deploy.md`, обновление анализа, сверка сумм исходных файлов. ## Риски и откат - Токен передаётся по HTTP открытым текстом, порт доступен всем в сети: принято (доверенный контур). - Копии на том же томе: защита от порчи файла, не от потери тома: принято. - Откат: `docker compose down` (данные остаются в томе) или `docker compose down -v` (с удалением тома); исходные файлы проекта не затрагиваются.