Files
gotosocial/docker-compose.yml
T
estorozhenko c62b6efb92 fix(trusted-proxies): add 10.8.0.4/32 (vps02 WG) to GTS_TRUSTED_PROXIES
- docker-compose.yml: GTS_TRUSTED_PROXIES now 10.8.0.4/32,127.0.0.1/32,::1,172.30.0.1/16
- config.yaml: trusted-proxies sync (172.29.0.1/16 -> 172.30.0.1/16, actual docker gw)
- openspec: change fix-trusted-proxies (proposal/specs/design/tasks)
- verified: warning gone (0 matches), external IP 178.176.197.2 in logs, HTTP 200
2026-09-06 20:17:16 +00:00

71 lines
3.3 KiB
YAML
Raw 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.
services:
gotosocial:
# Фиксированный тег стабильного релиза (обновление — вручную)
# ВНИМАНИЕ: теги GtS БЕЗ префикса v (0.22.1, не v0.22.1)
image: superseriousbusiness/gotosocial:0.22.1
container_name: gotosocial
restart: unless-stopped
# uid/gid пользователя estorozhenko на bigbox
user: "1000:1000"
environment:
# Окружение процесса GtS
TZ: Europe/Moscow
# Docker-образ GtS конфигурируется ТОЛЬКО через GTS_* env
# (config.yaml в образе не подхватывается — «host must be set»)
# Split-domain: сервер на social.dedinit.ru, аккаунты @user@dedinit.ru
GTS_HOST: "social.dedinit.ru"
GTS_ACCOUNT_DOMAIN: "dedinit.ru"
GTS_PROTOCOL: "https"
GTS_BIND_ADDRESS: "0.0.0.0"
GTS_PORT: "8080"
# SQLite: файл в volume ./data
GTS_DB_TYPE: "sqlite"
GTS_DB_ADDRESS: "/gotosocial/storage/sqlite.db"
# Медиа — локально (./data/storage)
GTS_STORAGE_LOCAL_BASE_PATH: "/gotosocial/storage"
# Траст reverse proxy (Caddy на vps02 → WG 10.8.0.4 → bigbox 10.8.0.2 → docker NAT 172.30.0.1)
# 10.8.0.4/32 — WG-адрес vps02 (реальный источник от Caddy), 172.30.0.1/16 — шлюз docker-сети
GTS_TRUSTED_PROXIES: "10.8.0.4/32,127.0.0.1/32,::1,172.30.0.1/16"
# Инстанс
GTS_INSTANCE_TITLE: "dedinit()"
GTS_INSTANCE_DESCRIPTION: "Нода для обычных людей"
GTS_INSTANCE_CONTACT_EMAIL: "kpa39l@yandex.ru"
# SMTP (Jino) — пароль из .env (GTS_SMTP_PASSWORD)
GTS_SMTP_HOST: "smtp.jino.ru"
GTS_SMTP_PORT: "587"
GTS_SMTP_USERNAME: "social@dedinit.ru"
GTS_SMTP_FROM_ADDRESS: "social@dedinit.ru"
# Метрики Prometheus (OTEL)
GTS_METRICS_ENABLED: "true"
GTS_METRICS_AUTH_ENABLED: "false"
# Логи
GTS_LOG_LEVEL: "info"
GTS_LOG_FORMAT: "json"
# OpenTelemetry → Prometheus (метрики)
OTEL_METRICS_PRODUCERS: prometheus
OTEL_METRICS_EXPORTER: prometheus
# Слушать :9464 на всех интерфейсах (иначе только внутри контейнера)
OTEL_EXPORTER_PROMETHEUS_HOST: "0.0.0.0"
env_file:
- .env
ports:
# Caddy с vps02 → 10.8.0.2:8082 (через WG) → контейнер :8080
# ВНИМАНИЕ: 8080 на bigbox занят NetBox — GtS наружу на 8082
- "8082:8080"
# Метрики Prometheus (OTEL :9464) — наружу на 127.0.0.1 (только localhost)
- "127.0.0.1:9464:9464"
volumes:
# Данные: SQLite + медиа (локальное хранилище)
- ./data:/gotosocial/storage
# Кэш Wazero-компиляции (быстрый старт)
- ./.cache:/gotosocial/.cache
# Конфиг для справки (read-only; рабочий конфиг — env выше)
- ./config.yaml:/gotosocial/config.example.yaml:ro
networks:
gotosocial:
ipam:
config:
# Выделенная подсеть (172.29.0.0/16 свободна на bigbox)
- subnet: "172.29.0.0/16"
gateway: "172.29.0.1"