Adds glitchtip-web + glitchtip-worker to docker-compose.prod.yml using the shared postgres/redis services. Caddy proxies errors.gendsgn.ru to glitchtip-web:8080 with auto-TLS. Bootstrap script handles DB creation and first-run setup idempotently. Env contract: GLITCHTIP_DB_PASS, GLITCHTIP_SECRET in .env; GLITCHTIP_DSN and NEXT_PUBLIC_GLITCHTIP_DSN populated after UI setup.
76 lines
1.9 KiB
Caddyfile
76 lines
1.9 KiB
Caddyfile
# Caddy config.
|
|
#
|
|
# - gendsgn.ru — main production site, auto-TLS via Let's Encrypt.
|
|
# - www.gendsgn.ru — 301 redirect to apex (canonical URL).
|
|
# - :80 — fallback for raw IP access. Will be removed once everyone uses the domain.
|
|
#
|
|
# `handle /api/*` (NOT `handle_path`) — we keep the /api prefix because
|
|
# the FastAPI router is mounted at /api/v1/*.
|
|
|
|
gendsgn.ru {
|
|
encode zstd gzip
|
|
|
|
handle /api/* {
|
|
reverse_proxy backend:8000
|
|
}
|
|
|
|
handle /health {
|
|
reverse_proxy backend:8000
|
|
}
|
|
|
|
handle {
|
|
reverse_proxy frontend:3000
|
|
}
|
|
}
|
|
|
|
www.gendsgn.ru {
|
|
redir https://gendsgn.ru{uri} permanent
|
|
}
|
|
|
|
# Obsidian Self-hosted LiveSync (CouchDB backend).
|
|
# Auto-TLS Let's Encrypt. CORS уже включён на стороне CouchDB через bootstrap
|
|
# (см. scripts/setup-couchdb.sh). Basic-auth — на стороне CouchDB (admin user).
|
|
#
|
|
# DNS: A-record obsidian.gendsgn.ru → IP VPS.
|
|
# Клиенты Obsidian + Self-hosted LiveSync plugin указывают на этот URL.
|
|
obsidian.gendsgn.ru {
|
|
encode zstd gzip
|
|
|
|
reverse_proxy couchdb:5984 {
|
|
# Большие документы (vault attachments / images) — увеличиваем timeout
|
|
transport http {
|
|
response_header_timeout 120s
|
|
}
|
|
}
|
|
}
|
|
|
|
# GlitchTip — self-hosted error tracking (Sentry-compatible).
|
|
# DNS: A-record errors.gendsgn.ru → IP VPS.
|
|
errors.gendsgn.ru {
|
|
encode zstd gzip
|
|
|
|
reverse_proxy glitchtip-web:8080
|
|
|
|
log {
|
|
output file /var/log/caddy/errors.gendsgn.ru.log
|
|
}
|
|
}
|
|
|
|
# Plain HTTP by IP — kept for ssh-tunnel / debugging.
|
|
# Caddy issues no TLS here (no hostname).
|
|
:80 {
|
|
encode zstd gzip
|
|
|
|
handle /api/* {
|
|
reverse_proxy backend:8000
|
|
}
|
|
|
|
handle /health {
|
|
reverse_proxy backend:8000
|
|
}
|
|
|
|
handle {
|
|
reverse_proxy frontend:3000
|
|
}
|
|
}
|
|
# Test deploy flow 2026-05-15T21:43:32Z
|