estorozhenko d9951b6048 deploy: запуск GtS 0.22.1 на bigbox
- compose: тег 0.22.1 (без v), порт 8082:8080 (8080 занят NetBox)
- конфиг GtS через GTS_* env (docker-образ не читает config.yaml)
- .cache для Wazero, права data/ 1000:1000
- Caddy vps02: social.dedinit.ru -> 10.8.0.2:8082
- apex dedinit.ru: .well-known (webfinger/nodeinfo/host-meta) статикой на Jino
2026-09-06 19:35:54 +00:00

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 network gotosocial

Структура

/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 не попадает
S
Description
No description provided
Readme 181 KiB
Languages
Shell 49.3%
Go Template 27.4%
Python 23.3%