Files
2026-10-05 13:33:59 +02:00

47 lines
1.5 KiB
Python

"""Konfiguration aus Umgebungsvariablen."""
import os
def _int(name: str, default: int) -> int:
try:
return int(os.environ.get(name, default))
except ValueError:
return default
def _range(value: str) -> list[int]:
ports: list[int] = []
for part in value.split(","):
part = part.strip()
if not part:
continue
if "-" in part:
a, b = part.split("-", 1)
ports.extend(range(int(a), int(b) + 1))
else:
ports.append(int(part))
return ports
DATA_DIR = os.environ.get("DATA_DIR", "/data")
DB_PATH = os.path.join(DATA_DIR, "proxy.db")
LISTEN_HOST = os.environ.get("LISTEN_HOST", "0.0.0.0")
HTTP_PORT = _int("HTTP_PROXY_PORT", 3128)
SOCKS_PORT = _int("SOCKS_PORT", 1080)
WEB_PORT = _int("WEB_PORT", 8080)
# UDP-Ports für SOCKS5 UDP ASSOCIATE (müssen im Container veröffentlicht sein)
SOCKS_UDP_PORTS = _range(os.environ.get("SOCKS_UDP_PORTS", "10800-10819"))
# Adresse, die SOCKS-Clients für UDP mitgeteilt wird (Host-IP). Leer = lokale Adresse der Verbindung
SOCKS_UDP_ADVERTISE = os.environ.get("SOCKS_UDP_ADVERTISE", "").strip()
# Ports, die für Portweiterleitungen freigegeben sind (nur Hinweis in der UI)
FORWARD_PORTS = os.environ.get("FORWARD_PORTS", "40000-40019")
ADMIN_USER = os.environ.get("ADMIN_USER", "admin")
ADMIN_PASSWORD = os.environ.get("ADMIN_PASSWORD", "")
CONNECT_TIMEOUT = _int("CONNECT_TIMEOUT", 15)
SESSION_HOURS = _int("SESSION_HOURS", 12)