95cd7d9ba8
- Apps/snacks/: docker-compose.yaml (2.3.1, host networking, privileged, /dev/dri) and README.md with full security exception documentation for: network_mode:host, privileged:true, device mount /dev/dri - apps.md: converted to agent-readable table backlog with instructions for future apps - Jellyfin-ffmpeg paths as defaults, 1G memory reservation, amd64 only (single-arch image) - Validation: ./scripts/validate-appstore.sh passes
50 lines
1.8 KiB
Python
50 lines
1.8 KiB
Python
from __future__ import annotations
|
|
|
|
from dataclasses import dataclass
|
|
import os
|
|
|
|
|
|
@dataclass(frozen=True)
|
|
class Settings:
|
|
state_file: str
|
|
docker_api_url: str
|
|
docker_timeout_seconds: float
|
|
app_port: int
|
|
dns_provider: str
|
|
dns_base_domain: str
|
|
dns_ttl_seconds: int
|
|
dns_sync_interval_seconds: float
|
|
adguard_url: str
|
|
adguard_username: str
|
|
adguard_password: str
|
|
adguard_api_token: str
|
|
rfc2136_server: str
|
|
rfc2136_zone: str
|
|
rfc2136_port: int
|
|
rfc2136_tsig_key_name: str
|
|
rfc2136_tsig_secret: str
|
|
rfc2136_tsig_algorithm: str
|
|
|
|
|
|
def get_settings() -> Settings:
|
|
return Settings(
|
|
state_file=os.getenv("STATE_FILE", "/data/entries.json"),
|
|
docker_api_url=os.getenv("DOCKER_API_URL", "unix:///var/run/docker.sock"),
|
|
docker_timeout_seconds=float(os.getenv("DOCKER_TIMEOUT_SECONDS", "3")),
|
|
app_port=int(os.getenv("APP_PORT", "31810")),
|
|
dns_provider=os.getenv("DNS_PROVIDER", "none"),
|
|
dns_base_domain=os.getenv("DNS_BASE_DOMAIN", ""),
|
|
dns_ttl_seconds=int(os.getenv("DNS_TTL_SECONDS", "120")),
|
|
dns_sync_interval_seconds=float(os.getenv("DNS_SYNC_INTERVAL_SECONDS", "15")),
|
|
adguard_url=os.getenv("ADGUARD_URL", ""),
|
|
adguard_username=os.getenv("ADGUARD_USERNAME", ""),
|
|
adguard_password=os.getenv("ADGUARD_PASSWORD", ""),
|
|
adguard_api_token=os.getenv("ADGUARD_API_TOKEN", ""),
|
|
rfc2136_server=os.getenv("RFC2136_SERVER", ""),
|
|
rfc2136_zone=os.getenv("RFC2136_ZONE", ""),
|
|
rfc2136_port=int(os.getenv("RFC2136_PORT", "53")),
|
|
rfc2136_tsig_key_name=os.getenv("RFC2136_TSIG_KEY_NAME", ""),
|
|
rfc2136_tsig_secret=os.getenv("RFC2136_TSIG_SECRET", ""),
|
|
rfc2136_tsig_algorithm=os.getenv("RFC2136_TSIG_ALGORITHM", "hmac-sha256"),
|
|
)
|