Files

67 lines
3.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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