mirror of
https://gitverse.ru/kpa39l/gotosocial.git
synced 2026-09-29 01:50:08 +00:00
docs: session close 2026-09-19 — STATUS/TODO/WALKTHROUGH updated (mail fix, openspec rule, SPF/DKIM, monitoring)
This commit is contained in:
@@ -1,12 +1,13 @@
|
||||
# GoToSocial — Статус
|
||||
|
||||
Обновлено: 2026-09-07
|
||||
Обновлено: 2026-09-19
|
||||
|
||||
## Текущее состояние
|
||||
|
||||
GoToSocial **запущен и работает** на social.dedinit.ru: контейнер Up, HTTPS 200, админ создан.
|
||||
Split-domain работает: аккаунты `@user@dedinit.ru`, хост social.dedinit.ru, apex-webfinger отдаёт JSON.
|
||||
Ежедневный cron-бэкап (02:00) активен и проверен.
|
||||
Почта: пустой From исправлен (GTS_SMTP_FROM), SPF+DKIM включены (19.09). Мониторинг: дашборд Grafana GoToSocial (20 панелей).
|
||||
|
||||
## Сделано
|
||||
|
||||
@@ -141,4 +142,5 @@ bash backup.sh && ls -lh backups/
|
||||
## Открытые вопросы
|
||||
|
||||
- Пароль админа: создан с паролем из сессии (если менялся — обновить в заметках)
|
||||
- DMARC для dedinit.ru — SPF и DKIM включены (19.09), DMARC не подтверждён в панели Jino (рекомендовано `v=DMARC1; p=none; rua=mailto:admin@dedinit.ru`)
|
||||
- ZFS-бэкапы/другие ротации не требуются (хватает local 7д + ЯД 30д)
|
||||
@@ -4,16 +4,11 @@
|
||||
|
||||
## Открытые
|
||||
|
||||
| 2026-09-06 | Развернуть сервис на bigbox: `docker compose up -d` | 🔵 открыта | |
|
||||
| 2026-09-06 | Создать админа estorozhenko (gotosocial admin account create --confirmation + promote) | 🔵 открыта | |
|
||||
| 2026-09-06 | Caddy на vps02: блок social.dedinit.ru → 10.8.0.2:8080 + reload | 🔵 открыта | |
|
||||
| 2026-09-06 | Split-domain apex: .well-known редиректы (webfinger/nodeinfo/host-meta) на dedinit.ru (Jino) | 🔵 открыта | |
|
||||
| 2026-09-06 | Проверить HTTPS (сертификат LE), webfinger, SMTP, /metrics | 🔵 открыта | |
|
||||
| 2026-09-06 | Настроить cron бэкапа (backup.sh готов) | 🔵 открыта | |
|
||||
| 2026-09-19 | Логи в json-формате (log-format: json) — по умолчанию logfmt | 🔵 открыта | |
|
||||
| 2026-09-19 | DMARC для dedinit.ru — SPF и DKIM включены (19.09), DMARC не подтверждён в панели Jino | 🔵 открыта | |
|
||||
|
||||
## Post-MVP (отложено)
|
||||
|
||||
| 2026-09-06 | Дашборд Grafana для GoToSocial (метрики) | 🔵 отложено | |
|
||||
| 2026-09-06 | Мониторинг бэкапов (метрика в Prometheus, дашборд «бэкап создан/лежит локально/ЯД/удалён по ротации») | 🔵 отложено | |
|
||||
| 2026-09-06 | Импорт из Telegram | 🔵 отложено | |
|
||||
| 2026-09-08 | Релей федерации (Activity-Relay от yukimochi, Go): https://github.com/yukimochi/Activity-Relay — relay.toot.io | 🔵 отложено | |
|
||||
@@ -21,6 +16,12 @@
|
||||
|
||||
## Закрытые
|
||||
|
||||
| 2026-09-06 | Развернуть сервис на bigbox: `docker compose up -d` | ✅ закрыта | сессия 2026-09-06 |
|
||||
| 2026-09-06 | Создать админа estorozhenko (gotosocial admin account create --confirmation + promote) | ✅ закрыта | сессия 2026-09-06 |
|
||||
| 2026-09-06 | Caddy на vps02: блок social.dedinit.ru → 10.8.0.2:8080 + reload | ✅ закрыта | сессия 2026-09-06 |
|
||||
| 2026-09-06 | Split-domain apex: .well-known редиректы (webfinger/nodeinfo/host-meta) на dedinit.ru (Jino) | ✅ закрыта | сессия 2026-09-06 |
|
||||
| 2026-09-06 | Проверить HTTPS (сертификат LE), webfinger, SMTP, /metrics | ✅ закрыта | сессия 2026-09-06 |
|
||||
| 2026-09-06 | Настроить cron бэкапа (backup.sh готов) | ✅ закрыта | сессия 2026-09-06 |
|
||||
| 2026-09-06 | Исследование развёртывания GoToSocial v0.22.1 (доки, split-domain, Docker, метрики) | ✅ закрыта | сессия 2026-09-06 |
|
||||
| 2026-09-06 | Каталог /opt/gotosocial + OpenSpec init + change deploy-gotosocial (proposal/spec/design/tasks) | ✅ закрыта | сессия 2026-09-06 |
|
||||
| 2026-09-06 | openspec validate deploy-gotosocial → valid | ✅ закрыта | сессия 2026-09-06 |
|
||||
@@ -33,3 +34,11 @@
|
||||
| 2026-09-06 | gitverse репо kpa39l/gotosocial (API, Bearer+Accept object+json), push main | ✅ закрыта | сессия 2026-09-06 |
|
||||
| 2026-09-06 | gitea.nixg.ru pull-mirror estorozhenko/gotosocial (8ч), первая синхронизация | ✅ закрыта | сессия 2026-09-06 |
|
||||
| 2026-09-06 | Убрать токен из git remote URL (оставить https://kpa39l@gitverse.ru/...) | ✅ закрыта | сессия 2026-09-06 |
|
||||
| 2026-09-07 | Веб-клиент Phanpy + чистый подвал (page_footer.tmpl без 🏳️🌈🏳️⚧️, check-pride.sh) | ✅ закрыта | сессия 2026-09-07 |
|
||||
| 2026-09-11 | Пустая федальная лента анонимно: GTS_INSTANCE_EXPOSE_PUBLIC_TIMELINE=true | ✅ закрыта | сессия 2026-09-11 |
|
||||
| 2026-09-13 | Отладка почты: GTS_SMTP_FROM_ADDRESS → GTS_SMTP_FROM (пустой From); docker-compose.yml + FIX | ✅ закрыта | сессия 2026-09-13 |
|
||||
| 2026-09-13 | systemd1 D-Bus завис → dockerd на cgroupfs (native.cgroupdriver=cgroupfs в daemon.json) | ✅ закрыта (проверить после ребута сервера!) | сессия 2026-09-13 |
|
||||
| 2026-09-13 | OpenSpec-change fix-smtp-from-address (posthoc) → spec smtp-email в archive | ✅ закрыта | сессия 2026-09-13-14 |
|
||||
| 2026-09-19 | Жёсткое требование: все изменения проекта — через OpenSpec (AGENTS.md, README, openspec/config.yaml, spec project-governance) | ✅ закрыта | сессия 2026-09-19 |
|
||||
| 2026-09-19 | SPF+DKIM dedinit.ru в панели Jino (SPF: v=spf1 redirect=_spf.jino.ru; DKIM: dkim._domainkey IN TXT) | ✅ закрыта | сессия 2026-09-19 |
|
||||
| 2026-09-19 | Мониторинг GtS: дашборд Grafana GoToSocial (uid gotosocial-main, 20 панелей) — /opt/monitoring, openspec add-gotosocial-dashboard | ✅ закрыта | сессия 2026-09-19 |
|
||||
@@ -109,3 +109,62 @@ Caddy vps02: блок `social.dedinit.ru { reverse_proxy 10.8.0.2:8080 }`, `dock
|
||||
- Пароль админа estorozhenko — нужен от пользователя
|
||||
- Доступ к vps02 для правки Caddyfile — нужен (SSH estorozhenko@87.242.100.206 + cloudruVPS ключ)
|
||||
- .well-known редиректы на apex (Jino) — подготовить правила
|
||||
|
||||
## 2026-09-13 — Почта: пустой From → спам (причина и фикс)
|
||||
|
||||
### Симптом
|
||||
- Письма GoToSocial (подтверждение регистрации и т.п.) уходили на внешние ящики (Яндекс) в СПАМ.
|
||||
- Заголовки: `From: <>` (пустой) — письмо без отправителя.
|
||||
- X-Yandex-Spam: 4 (pessimistic).
|
||||
|
||||
### Диагностика
|
||||
1. SMTP Jino напрямую (python smtplib): логин social@dedinit.ru OK, RCPT kpa39l@ya.ru OK, DATA → `250 Ok: queued`. SMTP-стек рабочий.
|
||||
2. DNS dedinit.ru: SPF и DMARC ОТСУТСТВОВАЛИ; DKIM `default._domainkey` был.
|
||||
3. Исходники GtS (/tmp/gts-src, v0.22.1), state.go:100-101: флаг `--smtp-from` → env `GTS_SMTP_FROM`.
|
||||
4. В docker-compose.yml стоял **неверный** env: `GTS_SMTP_FROM_ADDRESS` (такого ключа нет → From пустой).
|
||||
|
||||
### Фикс
|
||||
```bash
|
||||
# docker-compose.yml: GTS_SMTP_FROM_ADDRESS: "..." → GTS_SMTP_FROM: "social@dedinit.ru"
|
||||
cd /opt/gotosocial && docker compose up -d --force-recreate gotosocial
|
||||
```
|
||||
|
||||
### Питфол — systemd1 D-Bus завис
|
||||
- `docker compose up` завис: systemd1 D-Bus таймаут 25s, контейнер остался `Created`.
|
||||
- Обход: `/etc/docker/daemon.json` → `"native.cgroupdriver": "cgroupfs"`, `systemctl restart docker` (вручную, минуя systemd1).
|
||||
- **Риск:** после перезагрузки bigbox dockerd может не подняться сам (systemd1 фризит). Проверить при следующем ребуте. (Другой вариант — перезапуск systemd как PID 1; не делали.)
|
||||
|
||||
### Проверка
|
||||
- `docker exec gotosocial /gotosocial/gotosocial admin account list` — kunikov был unconfirmed (unconfirmed_email=kpa39l@ya.ru), подтверждён вручную `admin account confirm kunikov`.
|
||||
- Внешний https://social.dedinit.ru → 200; письма теперь от social@dedinit.ru (непустой From).
|
||||
|
||||
### Openspec (posthoc)
|
||||
- change `fix-smtp-from-address` → spec `gotosocial/smtp-email` (3 MUST: корректные env-ключи SMTP, непустой From, SPF/DMARC), archive.
|
||||
- Коммит `1cee142`: docker-compose.yml + STATUS.md + openspec.
|
||||
|
||||
## 2026-09-19 — Управление проектом + SPF/DKIM + мониторинг
|
||||
|
||||
### Жёсткое правило openspec (AGENTS.md)
|
||||
- По требованию пользователя в проект добавлено правило: **все изменения — через OpenSpec** (propose → apply-change → archive); исключение — явная команда владельца с `bypass-openspec:` в коммите.
|
||||
- Носители: AGENTS.md (для агентов), openspec/config.yaml (context — инжектится во все артефакты), README.md (для людей), spec `gotosocial/project-governance` (3 требования со Scenario).
|
||||
- change `enforce-openspec-workflow` → archive. Коммит `568335a`.
|
||||
|
||||
### SPF/DKIM (Jino, панель домена)
|
||||
- SPF: `v=spf1 redirect=_spf.jino.ru` (хост dedinit.ru, IN TXT) — включено пользователем 19.09.
|
||||
- DKIM: `v=DKIM1; t=s; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A…` (хост dkim._domainkey.dedinit.ru, IN TXT) — включено.
|
||||
- DMARC: **не подтверждён** (ранее рекомендовано `v=DMARC1; p=none; rua=mailto:admin@dedinit.ru`). Открытая задача.
|
||||
|
||||
### Мониторинг :9464 (дашборд Grafana)
|
||||
- Job `gotosocial` в /opt/monitoring/prometheus.yml уже был (127.0.0.1:9464/metrics, relabel instance=bigbox:9464); VictoriaMetrics (127.0.0.1:9090) тянет — проверено `/api/v1/series?match[]=gotosocial_instance_total_users`.
|
||||
- Создан дашборд `/opt/monitoring/grafana/dashboards/gotosocial/gotosocial.json` (генератор `scripts/gen_gotosocial_dash.py`, 20 панелей: Доступность/Инстанс/Воркеры/HTTP/SQL/Процесс; uid gotosocial-main).
|
||||
- dashboards.yml: добавлен провайдер `gotosocial-dashboards` (folder gotosocial). **Заодно починен дефект:** провайдер `garage-dashboards` смотрел на ВЕСЬ `/var/lib/grafana/dashboards`, дублируя nodes/vinogorod/vesti → Grafana блокировала запись всех новых дашбордов («the same UID is used more than once» + «no database write permissions because of duplicates»). Сужен до `/var/lib/grafana/dashboards/garage-cluster.json`; `docker compose restart grafana`.
|
||||
- Проверка: `gotosocial-main` в grafana.db, папка gotosocial (id 23), dashboard_provisioning содержит запись.
|
||||
- Openspec: change `add-gotosocial-dashboard` → spec `gotosocial-monitoring` (в /opt/monitoring), archive; коммит `ee92496` (monitoring); STATUS.md gotosocial → `275385c`.
|
||||
|
||||
### Git (эта сессия)
|
||||
- /opt/gotosocial: `568335a` (governance), `275385c` (status) — запушены на gitverse.
|
||||
- /opt/monitoring: `ee92496` — запушен на gitverse + mirror-sync на gitea (HTTP 200, POST /api/v1/repos/estorozhenko/monitoring/mirror-sync, токен из git-tokens.env).
|
||||
- mirror-sync gitea: http://gitea.nixg.ru → 308 на https:// — использовать https или python urllib с redirect.
|
||||
|
||||
### Находка (не исправлена)
|
||||
- config.py:45 — дефект `==` вместо `!=` (исходники GtS, /tmp/gts-src) — зафиксировать, не фикс.
|
||||
Reference in New Issue
Block a user