"""Zentrale Konfiguration, geladen aus der .env-Datei.""" import os from pathlib import Path from dotenv import load_dotenv # Projektwurzel = ein Verzeichnis über diesem File BASE_DIR = Path(__file__).resolve().parent.parent load_dotenv(BASE_DIR / ".env") DATA_DIR = BASE_DIR / "data" DATA_DIR.mkdir(exist_ok=True) DB_PATH = DATA_DIR / "episupport.db" def _b(value: str, default: bool = False) -> bool: if value is None: return default return value.strip().lower() in ("1", "true", "yes", "on", "ja") # --- Zammad --- ZAMMAD_URL = os.getenv("ZAMMAD_URL", "https://epi-helpdesk.zammad.com").rstrip("/") ZAMMAD_TOKEN = os.getenv("ZAMMAD_TOKEN", "").strip() ZAMMAD_USER = os.getenv("ZAMMAD_USER", "").strip() ZAMMAD_PASSWORD = os.getenv("ZAMMAD_PASSWORD", "") # --- Abruf --- POLL_INTERVAL_SECONDS = int(os.getenv("POLL_INTERVAL_SECONDS", "180")) # --- EPIRent-Versionsüberwachung (Download-Seite) --- EPIRENT_CHECK_ENABLED = _b(os.getenv("EPIRENT_CHECK_ENABLED"), True) EPIRENT_URL = os.getenv("EPIRENT_URL", "https://www.epi.rent/downloads") EPIRENT_CHECK_INTERVAL_SECONDS = int( os.getenv("EPIRENT_CHECK_INTERVAL_SECONDS", "1800")) # --- Download-Archiv (pro Version zwischengespeichert) --- EPIRENT_DOWNLOAD_ENABLED = _b(os.getenv("EPIRENT_DOWNLOAD_ENABLED"), True) EPIRENT_DOWNLOAD_URLS = [ u.strip() for u in os.getenv( "EPIRENT_DOWNLOAD_URLS", "https://download.epi.rent/latest/epirentServer.zip," "https://download.epi.rent/latest/epirentClient.zip" ).split(",") if u.strip() ] # Wie viele Versionsstände aufbewahrt werden (je ~1,1 GB!). # 0 = unbegrenzt aufbewahren (es wird nichts automatisch gelöscht). EPIRENT_DOWNLOAD_KEEP = int(os.getenv("EPIRENT_DOWNLOAD_KEEP", "3")) # --- Web --- URL_PREFIX = os.getenv("EPISUPPORT_URL_PREFIX", "/episupport").rstrip("/") PORT = int(os.getenv("EPISUPPORT_PORT", "8071")) # Zeitzone für die Anzeige (Zammad liefert UTC) DISPLAY_TZ = os.getenv("DISPLAY_TZ", "Europe/Berlin") # --- E-Mail --- NOTIFY_ENABLED = _b(os.getenv("NOTIFY_ENABLED"), False) SMTP_HOST = os.getenv("SMTP_HOST", "").strip() SMTP_PORT = int(os.getenv("SMTP_PORT", "587")) SMTP_USER = os.getenv("SMTP_USER", "").strip() SMTP_PASSWORD = os.getenv("SMTP_PASSWORD", "") SMTP_STARTTLS = _b(os.getenv("SMTP_STARTTLS"), True) SMTP_SSL = _b(os.getenv("SMTP_SSL"), False) # True => SMTPS (Port 465) SMTP_FROM = os.getenv("SMTP_FROM", "").strip() NOTIFY_TO = [a.strip() for a in os.getenv("NOTIFY_TO", "").split(",") if a.strip()]