mirror of
https://gitverse.ru/kpa39l/gotosocial.git
synced 2026-09-29 01:50:08 +00:00
cd7e279bb659c7af2c5be41be883ef15566da3dd
- docker-compose.yml: GTS_ACCOUNTS_REGISTRATION_OPEN=true, GTS_ACCOUNTS_REGISTRATION_DAILY_LIMIT=10 - openspec: proposal/specs/design/tasks for dynamic apex webfinger + registration + SMTP verify - verified: /api/v1/instance → registrations:true; apex webfinger → acct:kpa39l@dedinit.ru; SMTP test OK
GoToSocial — нода на social.dedinit.ru
Split-domain федиверсная нода ActivityPub (GoToSocial v0.22.1) в Docker на bigbox.
Аккаунты: @user@dedinit.ru. Сервер: https://social.dedinit.ru.
Архитектура
Internet ──► vps02 87.242.100.206 (Caddy 2, host net)
social.dedinit.ru ──► reverse_proxy 10.8.0.2:8080
│ WireGuard 10.8.0.0/24
▼
bigbox 10.8.0.2 (Docker)
└─ gotosocial (superseriousbusiness/gotosocial:v0.22.1)
volumes: ./data → /gotosocial/storage (SQLite + медиа)
./config.yaml → /gotosocial/config.yaml (ro)
env_file: .env (секреты)
Порт-маппинг
| Порт (host bigbox) | Контейнер | Назначение |
|---|---|---|
| 8080 | 8080 | HTTP GoToSocial (API/UI), проксируется Caddy с vps02 |
- Внешний доступ: только через
https://social.dedinit.ru(Caddy, 80/443 на vps02) 172.29.0.0/16— docker networkgotosocial
Структура
/opt/gotosocial/
├── docker-compose.yml # сервис (фиксированный тег v0.22.1)
├── config.yaml # конфиг GtS (host/account-domain/SMTP/метрики)
├── .env # секреты (в git исключён)
├── backup.sh # consistent бэкап SQLite + медиа → ЯД
├── data/ # данные: sqlite.db + storage/ (медиа)
├── backups/ # локальные бэкапы (7 дней)
└── openspec/ # OpenSpec-воркфлоу (changes/deploy-gotosocial)
Команды
# Запуск / остановка / логи
docker compose up -d
docker compose down
docker logs -f gotosocial
# Конфиг проверить
docker compose config --quiet
# Создать пользователя (первый раз) + сделать админом
docker compose exec gotosocial gotosocial admin account create \
--username estorozhenko --email kpa39l@yandex.ru \
--password 'ВРЕМЕННЫЙ_ПАРОЛЬ' --confirmation
docker compose exec gotosocial gotosocial admin account promote \
--username estorozhenko
Реверс-прокси (vps02)
Caddyfile на vps02:
social.dedinit.ru {
reverse_proxy 10.8.0.2:8080
}
Применить: docker exec caddy caddy reload --config /etc/caddy/Caddyfile
TLS (Let's Encrypt) Caddy выдаёт автоматически.
Split-domain (.well-known на apex dedinit.ru)
На apex dedinit.ru (хостинг Jino) добавить редиректы:
/.well-known/webfinger→https://social.dedinit.ru/.well-known/webfinger/.well-known/nodeinfo→https://social.dedinit.ru/.well-known/nodeinfo/.well-known/host-meta→https://social.dedinit.ru/.well-known/host-meta
Проверка: curl -sL 'https://dedinit.ru/.well-known/webfinger?resource=acct:estorozhenko@dedinit.ru'
ВАЖНО:
hostиaccount-domainпосле первого запуска менять нельзя (необратимо).
Бэкап
bash /opt/gotosocial/backup.sh
- SQLite consistent (
VACUUM INTO), медиа (storage/),.env— отдельным архивом - Локально:
backups/(ротация 7 дней) - Яндекс.Диск:
/mnt/yandex-disk/backup/gotosocial-backups/(ротация 30 дней) - При недоступности ЯД — exit code != 0, ошибка в stderr
Восстановление
# остановить сервис
docker compose down
# распаковать архив данных
tar xzf gotosocial_<TS>.tar.gz -C /opt/gotosocial/data/
# вернуть .env при необходимости
tar xzf gotosocial_env_<TS>.tar.gz -C /opt/gotosocial/
# запустить
docker compose up -d
Обновление
# 1. бэкап: bash backup.sh
# 2. поменять тег в docker-compose.yml (фиксированный, напр. v0.22.2)
# 3. docker compose pull && docker compose up -d
Метрики и логи
- Метрики:
:8080/metrics(Prometheus, OTEL) — Go runtime / Gin / Bun - Логи:
log-format: json→ собираются Promtail → Loki - Дашборд Grafana и мониторинг бэкапов — post-MVP
SMTP
smtp.jino.ru:587, STARTTLS, логинsocial@dedinit.ru- Пароль в
.env(GTS_SMTP_PASSWORD), в git не попадает
Description
Languages
Shell
49.3%
Go Template
27.4%
Python
23.3%