Files
gotosocial/openspec/changes/deploy-gotosocial/tasks.md
T

3.1 KiB
Raw Blame History

Tasks — Deploy GoToSocial

1. Базовая структура проекта

  • Создан /opt/gotosocial с docker-compose.yml, config.yaml, .env, backup.sh, README.md
  • Проверка: ls -la /opt/gotosocial содержит файлы

2. Конфигурация GoToSocial

  • config.yaml: host=social.dedinit.ru, account-domain=dedinit.ru, protocol=https, port=8080, trusted-proxies=[10.8.0.2]
  • База SQLite: db-type: sqlite, db-address в volume
  • SMTP: smtp.jino.ru:587, social@dedinit.ru, пароль из .env
  • Метрики: metrics-enabled: true + OTEL prometheus env
  • Логи: log-format: json
  • Проверка: docker compose config успешен, ключи на месте

3. docker-compose.yml

  • Образ superseriousbusiness/gotosocial:v0.22.1 (фиксированный тег), restart unless-stopped
  • ports: 8080:8080, volumes: ./data, ./config.yaml:ro, env_file: .env
  • Проверка: docker compose config --quiet

4. .env

  • Создан .env с GTS_SMTP_PASSWORD (и др. секретами), в .gitignore
  • Проверка: .env не виден в git (git check-ignore .env)

5. Запуск и создание админа

  • docker compose up -d — контейнер Up
  • curl -s -o /dev/null -w '%{http_code}' http://127.0.0.1:8080/ → 200
  • Админ: gotosocial admin account create --username estorozhenko --email kpa39l@yandex.ru --confirmation
  • Проверка: docker compose exec gotosocial gotosocial admin account promote --username estorozhenko (или через CLI)

6. Реверс-прокси Caddy на vps02

  • Caddyfile: social.dedinit.ru { reverse_proxy 10.8.0.2:8080 }, caddy reload
  • Проверка: curl https://social.dedinit.ru/ → 200, сертификат LE

7. Split-domain: .well-known на apex

  • На dedinit.ru (Jino) добавлены редиректы webfinger/nodeinfo/host-meta → social.dedinit.ru
  • Проверка: curl -sL 'https://dedinit.ru/.well-known/webfinger?resource=acct:estorozhenko@dedinit.ru' → 200 JSON

8. Метрики/логи

  • /metrics отдаёт метрики
  • Prometheus job gotosocial (scrape 127.0.0.1:8080) — если включено в стек
  • Promtail собирает docker-логи gotosocial
  • Проверка: curl http://127.0.0.1:9090/api/v1/targets → gotosocial UP

9. Бэкап

  • backup.sh: SQLite VACUUM INTO + медиа, tar.gz, ротация 7/30 дней, копия на ЯД
  • Проверка: bash backup.sh → архив создан, на ЯД есть, exit 0
  • Расписание (cron/systemd timer) — ежедневно, тихо

10. Документация

  • README.md: порты, структура, бэкап/восстановление, обновление
  • Проверка: README содержит порт-маппинг и команды

Отложено (post-MVP)

  • Дашборд Grafana (GtS + бэкапы)
  • Мониторинг бэкапов
  • Импорт из Telegram