| `LOG_ACCESS_FILE` | access.log | HTTP access log |
| `DOMAIN` | example.com | Public domain |
| `EXTERNAL_NAME` | dyndns.example.com | External Name |
+| `HTTP_HOST` | 0.0.0.0 | IP address the server binds to |
| `HTTP_PORT` | 8000 | Internal HTTP port |
| `LOGIN_MAX_ATTEMPTS` | 5 | Login attempts |
| `LOGIN_WINDOW_SECONDS` | 600 | Attempt window |
"app": {
"version": settings.APP_VERSION,
},
- "baseimg": {
- "name": settings.BASEIMG_NAME,
- "version": settings.BASEIMG_VERSION,
- },
"domain": settings.DOMAIN,
"admin_hash_loaded": settings.ADMIN_PASSWORD_HASH is not None,
}
# backend/config.py
-# ---------------------------------------------------------
-# BASEIMG
-# ---------------------------------------------------------
-BASEIMG_NAME = "network-manager-distroless"
-BASEIMG_VERSION = "0.1"
-
# ---------------------------------------------------------
# APP
# ---------------------------------------------------------
# ---------------------------------------------------------
# Web
# ---------------------------------------------------------
+HTTP_HOST = "0.0.0.0"
HTTP_PORT = "8000"
LOGIN_MAX_ATTEMPTS = "5"
LOGIN_WINDOW_SECONDS = "600"
APP_VERSION: str = Field(default_factory=lambda: config.APP_VERSION)
DEVEL: bool = Field(default_factory=lambda: _to_bool(os.getenv("DEV", False)))
- # Base Image / Docker Image
- BASEIMG_NAME: str = Field(default_factory=lambda: config.BASEIMG_NAME)
- BASEIMG_VERSION: str = Field(default_factory=lambda: config.BASEIMG_VERSION)
-
# DATA_PATH
DATA_PATH: str = Field(default_factory=lambda: os.getenv("DATA_PATH", default.DATA_PATH))
EXTERNAL_NAME: str = Field(default_factory=lambda: os.getenv("EXTERNAL_NAME", default.DOMAIN))
# Web
+ HTTP_HOST: str = Field(default_factory=lambda: os.getenv("HTTP_HOST", default.HTTP_HOST))
HTTP_PORT: int = Field(default_factory=lambda: int(os.getenv("HTTP_PORT", default.HTTP_PORT)))
SECRET_KEY: str = Field(default_factory=lambda: (
(os.getenv("SESSION_SECRET") or _read_text_if_exists(os.getenv("SECRET_KEY_FILE")) or secrets.token_urlsafe(64)).strip()