Repository navigation
Expand file tree
/
Copy path.env-demo
More file actions
76 lines (64 loc) · 2.86 KB
/
Copy path.env-demo
File metadata and controls
76 lines (64 loc) · 2.86 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
DOMAIN=ddns.demo.com
SHARED_SECRET=change-me-shared-secret
DATABASE_NAME=pyddns
DATABASE_USER=pyddns
DATABASE_PASS=change-me-db-password
DATABASE_HOST=postgres
DATABASE_PORT=5432
DJANGO_SU_NAME=admin
DJANGO_SU_EMAIL=admin@company.com
DJANGO_SU_PASSWORD=change-me-admin-password
DJANGO_ADMIN_URL=administrator
# Generate with: python -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())"
DJANGO_SECRET_KEY=change-me-generate-a-real-secret-key
DJANGO_DEBUG=0
DJANGO_ALLOWED_HOSTS=localhost,127.0.0.1,ddns.demo.com
# Use pyddns.settings.development for local dev, pyddns.settings.production otherwise
DJANGO_SETTINGS_MODULE=pyddns.settings.production
# DJANGO_LANGUAGE_CODE controls the i18n behavior:
# empty / unset → international mode: browser auto-detects, user can switch
# via the language picker. EN is the fallback.
# set (e.g. "es", "fr", "pt-br", "en", "de", "ja", "ru", "zh-hans")
# → locked: every page is served in that language and the
# picker is hidden. Other locale URLs return 404.
DJANGO_LANGUAGE_CODE=
DJANGO_TIME_ZONE=UTC
# Email / SMTP — leave EMAIL_HOST empty to log emails to stderr instead of
# sending. Required for password reset to actually deliver.
EMAIL_HOST=
EMAIL_PORT=587
EMAIL_HOST_USER=
EMAIL_HOST_PASSWORD=
EMAIL_USE_TLS=1
EMAIL_USE_SSL=0
EMAIL_FROM=PyDDNS <noreply@ddns.demo.com>
SITE_URL=https://ddns.demo.com
# Self-service password reset.
# 1 (default) → users see "Forgot your password?" on login and can reset
# their own credentials via email.
# 0 → admin-controlled: the reset URLs return 404 and the link
# is hidden. Only admins can change passwords (via Users page).
ALLOW_PASSWORD_RESET=1
DJANGO_LOG_LEVEL=INFO
DJANGO_PYTHONUNBUFFERED=1
OWN_ADMIN=1
DNS_ALLOW_AGENT=ddclient3,ddclient,DynDNS
# REST API: set to 1 to expose Token-authenticated endpoints under /api/.
# Off by default so deployments that only need the dyndns2 protocol or the
# web UI do not surface unnecessary attack surface.
ENABLE_REST_API=0
HTTP_PORT=80
HTTPS_PORT=443
DNS_PORT=53
# ── Performance / scale tuning ────────────────────────────────────────────
# Persistent DB connections per gunicorn worker. 0 = open/close per request
# (legacy behaviour). The default is fine up to a few hundred clients.
DB_CONN_MAX_AGE=60
# Gunicorn worker processes. Default 3 handles a few hundred clients;
# bump to 8+ for fleets of 1000+ devices syncing every few minutes.
# Each worker holds one DB connection — size together with Postgres
# `max_connections`.
GUNICORN_WORKERS=3
# Activity_log retention sweep. The python container deletes log rows
# older than this every 24h. Set to 0 to disable retention (keep forever).
ACTIVITY_LOG_RETENTION_WEEKS=10