55 lines
2.4 KiB
Plaintext
55 lines
2.4 KiB
Plaintext
# Production .env for deploy/docker-compose.traefik.yml (auth + Traefik).
|
|
# Copy to /opt/auth-portal/.env and fill secrets. Do not commit.
|
|
|
|
# --- Traefik / Let's Encrypt (Cloudflare DNS-01) ---
|
|
CF_DNS_API_TOKEN=
|
|
LETSENCRYPT_EMAIL=admin@shnt.top
|
|
AUTH_DOMAIN=auth.shnt.top
|
|
# TRAEFIK_IMAGE_TAG=v3.7
|
|
# TRAEFIK_HTTP_PORT=80
|
|
# TRAEFIK_HTTPS_PORT=443
|
|
# TRAEFIK_LOG_LEVEL=INFO
|
|
|
|
# --- Auth Portal ---
|
|
AUTH_IMAGE_TAG=latest
|
|
JWT_SECRET=
|
|
JWT_TTL_HOURS=1
|
|
REFRESH_TTL_DAYS=14
|
|
ISSUER=https://auth.shnt.top
|
|
# OIDC IdP for Technitium DNS and other external RPs (defaults to ISSUER if empty)
|
|
# OIDC_ISSUER=https://auth.shnt.top
|
|
# Optional PKCS8 RSA PEM; otherwise key is auto-generated into SQLite (/data)
|
|
# OIDC_RSA_PRIVATE_KEY=
|
|
ADMIN_EMAIL=admin@shnt.top
|
|
ADMIN_PASSWORD=
|
|
ADMIN_NAME=Admin
|
|
# Include Technitium origin if used (e.g. https://dns.shnt.top)
|
|
RETURN_TO_ALLOWLIST=.shnt.top,https://vps.shnt.top,https://cfdm.shnt.top,https://bgp.shnt.top,https://fw.shnt.top,https://dns.shnt.top,https://cdn.shnt.top
|
|
LOG_LEVEL=info
|
|
NODE_ENV=production
|
|
# WebAuthn / passkeys (defaults from ISSUER hostname + origin)
|
|
# WEBAUTHN_RP_ID=auth.shnt.top
|
|
# WEBAUTHN_ORIGINS=https://auth.shnt.top
|
|
# WEBAUTHN_RP_NAME=Auth Portal
|
|
|
|
# --- Ingest аудита от подключённых приложений (обязателен для /api/v1/ingest/audit) ---
|
|
# AUDIT_INGEST_SECRET=
|
|
|
|
# --- Производительность / эксплуатация (все необязательны) ---
|
|
# Максимум на graceful shutdown, мс
|
|
# SHUTDOWN_TIMEOUT_MS=8000
|
|
# Одновременных argon2-хешей (каждый ~19 МиБ RAM)
|
|
# ARGON2_CONCURRENCY=2
|
|
# Сколько дней хранить истёкшие/отозванные сессии и коды
|
|
# SESSION_RETENTION_DAYS=7
|
|
# Доверенные прокси для X-Forwarded-For (IP/CIDR через запятую, true/false)
|
|
# TRUST_PROXY=127.0.0.1/8,::1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,fc00::/7
|
|
# Доп. origins для CORS (по умолчанию: issuer, RETURN_TO_ALLOWLIST, приложения App Switcher)
|
|
# CORS_ORIGINS=
|
|
# Бэкап SQLite: период в часах (0 = выключен), число копий, каталог
|
|
# BACKUP_INTERVAL_HOURS=24
|
|
# BACKUP_KEEP=7
|
|
# BACKUP_DIR=/data/backups
|
|
# Heap Node (образ рассчитан на mem_limit 256m); при другом лимите:
|
|
# NODE_OPTIONS=--max-old-space-size=160
|