mirror of
https://gitverse.ru/kpa39l/gotosocial.git
synced 2026-09-29 18:05:09 +00:00
67 lines
3.1 KiB
Markdown
67 lines
3.1 KiB
Markdown
# 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 |