From 6e60988ac9e5a2d623baf7abc86ffe204dc76a4b Mon Sep 17 00:00:00 2001 From: IK Date: Sun, 6 Sep 2026 14:46:11 +0700 Subject: [PATCH] docs: record rf4spotter deployment status --- README.md | 2 ++ deploy/README.md | 2 ++ docs/ROADMAP.md | 2 +- docs/deployment-status.md | 29 +++++++++++++++++++++++++++++ 4 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 docs/deployment-status.md diff --git a/README.md b/README.md index 5a9c8e4..f6f5187 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,8 @@ Production-контур для домена `rf4spotter.ru`, TLS, секреты Host-side мониторинг контейнеров, readiness, диска, резервных копий и TLS описан в [`docs/production-monitoring.md`](docs/production-monitoring.md). +Фактическое состояние DNS/TLS домена и серверный чек-лист ведутся в [`docs/deployment-status.md`](docs/deployment-status.md). + Gitea Actions workflow `.gitea/workflows/ci.yml` на каждый push и pull request проверяет Python, миграции на чистой PostgreSQL, Astro build и полный Compose/Playwright-сценарий. При падении E2E сохраняются логи контейнеров и Playwright-артефакты. Актуальная инвентаризация источников и правила подключения адаптеров находятся в [`docs/data-source-audit.md`](docs/data-source-audit.md). Разрешённый технический пилот RF4DB/RF4-STAT описан в [`docs/community-source-pilot.md`](docs/community-source-pilot.md), а статус разрешений и лимитов — в [`docs/data-permissions.md`](docs/data-permissions.md). Данные сохраняются только в промежуточный staging и не влияют на индекс без явной проверки и публикации администратором. diff --git a/deploy/README.md b/deploy/README.md index 509fa0c..fbd7969 100644 --- a/deploy/README.md +++ b/deploy/README.md @@ -2,6 +2,8 @@ Production-контур рассчитан на один Linux-сервер с Docker Compose. Наружу публикуются только Caddy `80/443`; PostgreSQL, FastAPI и MinIO не имеют host-портов. Административные страницы защищены одновременно Caddy Basic Auth и API bearer token. +Текущее состояние публичных DNS/TLS и незакрытые инфраструктурные действия ведутся в [`docs/deployment-status.md`](../docs/deployment-status.md). + ## 1. DNS и сервер Создайте A-записи `rf4spotter.ru` и `files.rf4spotter.ru` на публичный IPv4 сервера. При наличии рабочего IPv6 добавьте AAAA для обоих имён. До запуска убедитесь, что извне доступны TCP 80/443 и UDP 443; SSH ограничьте своим IP или VPN. Порты 4321, 8000, 9000, 9001 и 5432 открывать нельзя. diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 3121bde..47d54f8 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -80,7 +80,7 @@ - [ ] Добавить smoke-проверку административной очереди внешних источников на desktop/mobile без публикации реальных записей. - [ ] Обновить README: архитектура, все переменные окружения, импорт, модерация, backup/restore, эксплуатация логов и известные ограничения. - [ ] Выбрать лицензию кода и политику использования данных. -- [ ] Завершить production-профиль для `rf4spotter.ru`: Compose, Caddy/TLS, закрытые сервисы, CORS, resource limits, fail-fast секреты, backup/restore, bootstrap и host-side monitor готовы; остаются канал уведомлений и проверка DNS/TLS на целевом сервере. +- [ ] Завершить production-профиль для `rf4spotter.ru`: приложение готово; внешняя проверка 6 сентября выявила неверный сертификат `*.timeweb.ru` на корневом домене и отсутствие DNS для `files.rf4spotter.ru`; требуются IP целевого сервера, DNS, запуск и канал уведомлений (`docs/deployment-status.md`). - [ ] Заменить демонстрационные секреты и определить целевое размещение перед внешней публикацией. ## Источники данных и согласование diff --git a/docs/deployment-status.md b/docs/deployment-status.md new file mode 100644 index 0000000..9e4a47c --- /dev/null +++ b/docs/deployment-status.md @@ -0,0 +1,29 @@ +# Статус развёртывания rf4spotter.ru + +Последняя внешняя read-only проверка: 6 сентября 2026 года. + +## Что видно публично сейчас + +| Проверка | Результат | Статус | +|---|---|---| +| `A rf4spotter.ru` | `176.57.210.144` | требует подтверждения, что это IP целевого сервера | +| HTTPS `rf4spotter.ru` | сервер отвечает, но сертификат имеет SAN только `*.timeweb.ru` и `timeweb.ru` | не готово | +| `A files.rf4spotter.ru` | имя не резолвится | не готово | +| HTTPS `files.rf4spotter.ru` | невозможен без DNS | не готово | + +Текущий сертификат выпущен GlobalSign для `*.timeweb.ru`, действует с 17 июня 2026 до 2 января 2027 года и не подтверждает `rf4spotter.ru`. Это похоже на ответ парковочной/хостинговой площадки, но назначение IP необходимо подтвердить в панели DNS или на целевом сервере. + +## Следующие действия на инфраструктуре + +- [ ] Определить публичный IPv4 целевого Linux-сервера и подтвердить доступ по SSH. +- [ ] Установить `A` для `rf4spotter.ru` на этот IPv4. +- [ ] Установить `A` для `files.rf4spotter.ru` на тот же IPv4. +- [ ] Добавлять `AAAA` только при реально настроенном публичном IPv6; иначе удалить ошибочную AAAA. +- [ ] Разрешить входящие TCP `80/443` и UDP `443`, не публикуя `4321`, `8000`, `9000`, `9001`, `5432`. +- [ ] Дождаться, пока оба имени одинаково резолвятся через несколько публичных резолверов. +- [ ] Разместить проект, создать `.env.production`, заменить все заглушки и выполнить production bootstrap из runbook. +- [ ] Убедиться, что Caddy получил сертификаты с SAN `rf4spotter.ru` и `files.rf4spotter.ru`. +- [ ] Выполнить `curl` для `/`, `/health`, `/ready` и MinIO health через оба домена. +- [ ] Создать первую внешнюю резервную копию, запустить `deploy/monitor.sh` и подключить уведомления. + +Не следует отключать TLS verification или сохранять текущий чужой сертификат в исключения: после правильных DNS и доступных портов Caddy должен получить корректный сертификат автоматически.