diff --git a/.env.example b/.env.example index 7a08ee7..63f515a 100644 --- a/.env.example +++ b/.env.example @@ -13,6 +13,6 @@ DDNS_RATE_LIMIT_PER_MINUTE=60 DDNS_ADMIN_RATE_LIMIT_PER_MINUTE=20 DDNS_MAX_REQUEST_BODY_BYTES=16384 DDNS_CLEANUP_CHALLENGE_HOURS=72 -DDNS_CLEANUP_UNUSED_ACCOUNT_HOURS=168 +DDNS_CLEANUP_UNUSED_ACCOUNT_HOURS=1080 DDNS_CLEANUP_INTERVAL_SECONDS=3600 DDNS_TRUSTED_PROXY_IPS=127.0.0.1,::1 diff --git a/README.md b/README.md index 32ede24..2090b76 100644 --- a/README.md +++ b/README.md @@ -110,7 +110,7 @@ export DDNS_RATE_LIMIT_PER_MINUTE=60 export DDNS_ADMIN_RATE_LIMIT_PER_MINUTE=20 export DDNS_MAX_REQUEST_BODY_BYTES=16384 export DDNS_CLEANUP_CHALLENGE_HOURS=72 -export DDNS_CLEANUP_UNUSED_ACCOUNT_HOURS=168 +export DDNS_CLEANUP_UNUSED_ACCOUNT_HOURS=1080 export DDNS_CLEANUP_INTERVAL_SECONDS=3600 ``` @@ -228,7 +228,7 @@ Security and cleanup defaults: | `DDNS_MAX_REQUEST_BODY_BYTES` | `16384` | Maximum accepted request body for form/API endpoints. | | `DDNS_TRUSTED_HOSTS` | from `DDNS_PUBLIC_BASE_URL` | Host header allowlist. Add every public hostname that should serve the app. | | `DDNS_CLEANUP_CHALLENGE_HOURS` | `72` | Delete unverified DNS TXT claims after this many hours. | -| `DDNS_CLEANUP_UNUSED_ACCOUNT_HOURS` | `168` | Delete generated hostnames that never received a router update after this many hours. | +| `DDNS_CLEANUP_UNUSED_ACCOUNT_HOURS` | `1080` | Delete generated hostnames that never received a router update after this many hours. | | `DDNS_CLEANUP_INTERVAL_SECONDS` | `3600` | Run the in-app cleanup scheduler at this interval. | SQLite backup example: diff --git a/router_dyndns/ddns_models.py b/router_dyndns/ddns_models.py index 9b1522e..4bb39c0 100644 --- a/router_dyndns/ddns_models.py +++ b/router_dyndns/ddns_models.py @@ -31,7 +31,7 @@ class DdnsSettings(BaseModel): cloudflare_api_token: str = Field(default="") cloudflare_zone_id: str = Field(default="") cleanup_challenge_hours: int = Field(default=72, ge=1, le=24 * 365) - cleanup_unused_account_hours: int = Field(default=168, ge=1, le=24 * 365) + cleanup_unused_account_hours: int = Field(default=1080, ge=1, le=24 * 365) cleanup_interval_seconds: int = Field(default=3600, ge=1, le=24 * 60 * 60) ttl: int = Field(default=60, ge=60, le=86400) @@ -100,7 +100,7 @@ class DdnsSettings(BaseModel): cloudflare_api_token=os.getenv("DDNS_CLOUDFLARE_API_TOKEN", ""), cloudflare_zone_id=os.getenv("DDNS_CLOUDFLARE_ZONE_ID", ""), cleanup_challenge_hours=_env_int("DDNS_CLEANUP_CHALLENGE_HOURS", 72), - cleanup_unused_account_hours=_env_int("DDNS_CLEANUP_UNUSED_ACCOUNT_HOURS", 168), + cleanup_unused_account_hours=_env_int("DDNS_CLEANUP_UNUSED_ACCOUNT_HOURS", 1080), cleanup_interval_seconds=_env_int("DDNS_CLEANUP_INTERVAL_SECONDS", 3600), ttl=_env_int("DDNS_TTL", 60), )