From 16e4c071d14633cdb745d2debac2b2424afd86e7 Mon Sep 17 00:00:00 2001 From: IK Date: Mon, 7 Sep 2026 09:27:11 +0700 Subject: [PATCH] docs: target an open alpha launch --- README.md | 4 ++-- deploy/README.md | 10 ++++++---- docs/ROADMAP.md | 8 ++++++-- docs/data-policy.md | 4 ++-- docs/data-retention.md | 2 +- docs/production-monitoring.md | 2 +- docs/security-review.md | 4 ++-- 7 files changed, 20 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 679603f..eaeb2fa 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ RF4 Spotter — неофициальный сервис свежих точек ## Статус разработки -Функциональный MVP и локальный production-контур готовы к закрытой альфе: официальный импорт, пользовательские заявки, модерация, объяснимый индекс, staging внешних источников, адаптивный Astro UI, миграции, резервное копирование, retention, мониторинг и security/accessibility-проверки реализованы. Автоматические импорты внешних источников выключены. Публичный запуск блокируют покупка и настройка сервера, DNS/TLS, реальные секреты, внешний backup и канал уведомлений. +Функциональный MVP и локальный production-контур готовятся к открытой альфе: официальный импорт, пользовательские заявки, модерация, объяснимый индекс, staging внешних источников, адаптивный Astro UI, миграции, резервное копирование, retention, мониторинг и security/accessibility-проверки реализованы. Автоматические импорты внешних источников выключены. Публичный запуск блокируют покупка и настройка сервера, DNS/TLS, реальные секреты, внешний backup, канал уведомлений и публичные страницы правил/privacy. RF4DB/RF4-STAT/RF4MAP/RF4 Posts принимаются только в изолированный staging и не влияют на индекс без ручного сопоставления и публикации. Для разрешённых community-источников действует интервал не менее 30 минут на источник. @@ -20,7 +20,7 @@ Host-side мониторинг контейнеров, readiness, диска, р Ежедневный systemd timer создаёт проверяемую копию до retention-очистки, а production Compose ограничивает рост JSON-логов контейнеров. Фактическое состояние DNS/TLS домена и серверный чек-лист ведутся в [`docs/deployment-status.md`](docs/deployment-status.md). -Результаты security review и остаточные ограничения закрытой альфы записаны в [`docs/security-review.md`](docs/security-review.md). +Результаты security review и остаточные риски открытой альфы записаны в [`docs/security-review.md`](docs/security-review.md). ## Архитектура diff --git a/deploy/README.md b/deploy/README.md index 2a3ea5c..82c7137 100644 --- a/deploy/README.md +++ b/deploy/README.md @@ -1,4 +1,4 @@ -# Развёртывание закрытой альфы rf4spotter.ru +# Развёртывание открытой альфы rf4spotter.ru Production-контур рассчитан на один Linux-сервер с Docker Compose. Наружу публикуются только Caddy `80/443`; PostgreSQL, FastAPI и MinIO не имеют host-портов. Административные страницы защищены одновременно Caddy Basic Auth и API bearer token. @@ -8,7 +8,7 @@ Production-контур рассчитан на один Linux-сервер с D Создайте A-записи `rf4spotter.ru` и `files.rf4spotter.ru` на публичный IPv4 сервера. При наличии рабочего IPv6 добавьте AAAA для обоих имён. До запуска убедитесь, что извне доступны TCP 80/443 и UDP 443; SSH ограничьте своим IP или VPN. Порты 4321, 8000, 9000, 9001 и 5432 открывать нельзя. -Минимум для закрытой альфы: 2 vCPU, 4 ГБ RAM и 40 ГБ SSD. Рекомендуется 4 vCPU, 8 ГБ RAM и отдельное внешнее место для резервных копий. +Минимум для открытой альфы: 2 vCPU, 4 ГБ RAM и 40 ГБ SSD. Рекомендуется 4 vCPU, 8 ГБ RAM и отдельное внешнее место для резервных копий. ## 2. Секреты @@ -145,10 +145,12 @@ systemctl list-timers rf4spotter-maintenance.timer Проверка контролирует контейнеры, `/ready`, диск, свежесть backup и срок TLS. Установка systemd timer, пороги и порядок реакции описаны в [`docs/production-monitoring.md`](../docs/production-monitoring.md). До подключения реального канала уведомлений одного журнала systemd недостаточно. -## 9. Что ещё блокирует приглашение альфа-пользователей +## 9. Что ещё блокирует публичное открытие альфы - подключение уведомлений о сбоях мониторинга; - проверка DNS/TLS и полного запуска на целевом сервере; - внешнее зашифрованное хранилище резервных копий. +- действующие `privacy@rf4spotter.ru` и `abuse@rf4spotter.ru`, публичные правила и privacy notice; +- проверка rate limit и очереди модерации под ожидаемой публичной нагрузкой. -До закрытия этих пунктов контур можно поднять для технической проверки домена, но не следует открывать форму реальным пользователям. +До закрытия этих пунктов контур можно поднять для технической проверки домена, но не следует открывать форму без ограничения доступа. diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index ca7c22e..30e7350 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -107,6 +107,9 @@ ## Этап 5 — пилот +- [ ] Опубликовать правила открытой альфы и privacy notice, добавить явное согласие перед отправкой улова. +- [ ] Создать и проверить ящики `privacy@rf4spotter.ru` и `abuse@rf4spotter.ru`, определить срок реакции на обращения. +- [ ] Проверить публичные abuse-сценарии: burst заявок, крупные файлы, повторные отправки и рост очереди модерации. - [ ] Зафиксировать короткий сценарий приёмки пилота и измеримые критерии: успешная отправка/модерация, понятность оценки, свежесть данных и допустимое время ответа. - [ ] Согласовать первые категории рекордов, водоёмы и виды рыб. - [ ] Наполнить базу небольшим разрешённым набором реальных данных. @@ -119,8 +122,9 @@ Технический production-контур, health/readiness, backup/restore и безопасные логи готовы. Следующие пункты выполняются строго по одному: -1. подготовить сценарий и измеримые критерии закрытой альфы; -2. мониторинг, DNS/TLS и проверка production-профиля на целевом сервере. +1. добавить публичные страницы правил и privacy notice, согласие формы и контакты `privacy`/`abuse`; +2. подготовить сценарий и измеримые критерии открытой альфы, включая публичную нагрузку и злоупотребления; +3. мониторинг, DNS/TLS и проверка production-профиля на целевом сервере. После каждого пункта необходимо: diff --git a/docs/data-policy.md b/docs/data-policy.md index 291691b..c64e377 100644 --- a/docs/data-policy.md +++ b/docs/data-policy.md @@ -1,6 +1,6 @@ # Политика использования данных RF4 Spotter -Версия для закрытой альфы от 7 сентября 2026 года. Это проектная политика, а не замена условиям владельцев источников или требованиям применимого законодательства. +Версия для открытой альфы от 7 сентября 2026 года. Это проектная политика, а не замена условиям владельцев источников или требованиям применимого законодательства. ## Область действия @@ -24,7 +24,7 @@ RF4 Spotter обрабатывает официальные публичные Технические сроки определены в `docs/data-retention.md`: попытки отправки — 1 день, непроверенные заявки — 30 дней, персональные поля одобренных заявок — 180 дней, непубликуемый staging — 90 дней, журнал модерации и provenance опубликованных записей — до 365 дней. Очистка выполняется только после успешной резервной копии. -Автор добровольной заявки может запросить удаление, указав идентификатор заявки и достаточные сведения для её поиска, по адресу `privacy@rf4spotter.ru`. При удалении очищаются ник, комментарий, исходная ссылка и скриншот; обезличенный факт модерационного действия сохраняется для аудита. До настройки действующего почтового ящика форма не должна открываться внешним альфа-пользователям. +Автор добровольной заявки может запросить удаление, указав идентификатор заявки и достаточные сведения для её поиска, по адресу `privacy@rf4spotter.ru`; сообщения о злоупотреблениях принимаются на `abuse@rf4spotter.ru`. При удалении очищаются ник, комментарий, исходная ссылка и скриншот; обезличенный факт модерационного действия сохраняется для аудита. До настройки обоих ящиков форма не должна быть доступна публично. Если запись изменена или удалена первичным источником, оператор при подтверждении снимает её с публикации и очищает производные персональные поля в ближайший цикл обслуживания. Резервные копии исчезают по собственному графику хранения и не используются для обычного чтения. diff --git a/docs/data-retention.md b/docs/data-retention.md index 147a2af..9e84612 100644 --- a/docs/data-retention.md +++ b/docs/data-retention.md @@ -1,4 +1,4 @@ -# Политика хранения данных закрытой альфы +# Политика хранения данных открытой альфы Политика минимизирует персональные и диагностические данные, не разрушая обезличенную статистику клёва. Сроки считаются от `reported_at`, `created_at` или `last_seen_at` соответствующей записи. diff --git a/docs/production-monitoring.md b/docs/production-monitoring.md index b98676c..68b2a73 100644 --- a/docs/production-monitoring.md +++ b/docs/production-monitoring.md @@ -1,4 +1,4 @@ -# Мониторинг закрытой альфы +# Мониторинг открытой альфы `deploy/monitor.sh` — host-side проверка production-контура. Она не изменяет данные и не печатает секреты. Успех возвращает exit code `0` и одну строку `OK`; любая проблема возвращает `1`/`2` и строку `CRITICAL`. diff --git a/docs/security-review.md b/docs/security-review.md index b6fc070..63033d8 100644 --- a/docs/security-review.md +++ b/docs/security-review.md @@ -1,6 +1,6 @@ # Production security review -Проверка выполнена 7 сентября 2026 года для закрытой альфы. Она охватывает код и Compose-конфигурацию; firewall, SSH, DNS и фактические права файлов проверяются отдельно на целевом сервере. +Проверка выполнена 7 сентября 2026 года и актуализирована для открытой альфы. Она охватывает код и Compose-конфигурацию; firewall, SSH, DNS и фактические права файлов проверяются отдельно на целевом сервере. ## Закрытые пункты @@ -19,7 +19,7 @@ | Логи | query string, IP, Authorization и payload не журналируются; известные формы секретов редактируются | | Персональные данные | действует документированная retention-очистка, причём backup выполняется раньше удаления | -## Остаточные ограничения закрытой альфы +## Остаточные риски открытой альфы - Basic Auth и bearer token общие для всех модераторов: персональная атрибуция и отзыв одной учётной записи отсутствуют. - Нет MFA и отдельного identity provider; admin credentials следует передавать только ограниченному числу операторов и ротировать при любом подозрении.