docs: record rf4spotter deployment status
CI / backend-and-migrations (push) Canceled after 0s
CI / astro-build (push) Canceled after 0s
CI / compose-e2e (push) Canceled after 0s

This commit is contained in:
ik
2026-09-06 14:46:11 +07:00
parent e6653d4c77
commit 6e60988ac9
4 changed files with 34 additions and 1 deletions
+2
View File
@@ -20,6 +20,8 @@ Production-контур для домена `rf4spotter.ru`, TLS, секреты
Host-side мониторинг контейнеров, readiness, диска, резервных копий и TLS описан в [`docs/production-monitoring.md`](docs/production-monitoring.md). 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-артефакты. 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 и не влияют на индекс без явной проверки и публикации администратором. Актуальная инвентаризация источников и правила подключения адаптеров находятся в [`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 и не влияют на индекс без явной проверки и публикации администратором.
+2
View File
@@ -2,6 +2,8 @@
Production-контур рассчитан на один Linux-сервер с Docker Compose. Наружу публикуются только Caddy `80/443`; PostgreSQL, FastAPI и MinIO не имеют host-портов. Административные страницы защищены одновременно Caddy Basic Auth и API bearer token. 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 и сервер ## 1. DNS и сервер
Создайте A-записи `rf4spotter.ru` и `files.rf4spotter.ru` на публичный IPv4 сервера. При наличии рабочего IPv6 добавьте AAAA для обоих имён. До запуска убедитесь, что извне доступны TCP 80/443 и UDP 443; SSH ограничьте своим IP или VPN. Порты 4321, 8000, 9000, 9001 и 5432 открывать нельзя. Создайте A-записи `rf4spotter.ru` и `files.rf4spotter.ru` на публичный IPv4 сервера. При наличии рабочего IPv6 добавьте AAAA для обоих имён. До запуска убедитесь, что извне доступны TCP 80/443 и UDP 443; SSH ограничьте своим IP или VPN. Порты 4321, 8000, 9000, 9001 и 5432 открывать нельзя.
+1 -1
View File
@@ -80,7 +80,7 @@
- [ ] Добавить smoke-проверку административной очереди внешних источников на desktop/mobile без публикации реальных записей. - [ ] Добавить smoke-проверку административной очереди внешних источников на desktop/mobile без публикации реальных записей.
- [ ] Обновить README: архитектура, все переменные окружения, импорт, модерация, backup/restore, эксплуатация логов и известные ограничения. - [ ] Обновить 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`).
- [ ] Заменить демонстрационные секреты и определить целевое размещение перед внешней публикацией. - [ ] Заменить демонстрационные секреты и определить целевое размещение перед внешней публикацией.
## Источники данных и согласование ## Источники данных и согласование
+29
View File
@@ -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 должен получить корректный сертификат автоматически.