Files
Bellhop/app/config.py
Claude bf6b1180de Auto-generate SESSION_SECRET_KEY when not provided
If the env var is unset, a random key is generated at startup. This
removes a manual setup step. The README and .env.example are updated
to reflect that the variable is now optional (but recommended in
production for session persistence across restarts).

https://claude.ai/code/session_018iMt5qm4j9bk8wzytLC3E6
2026-02-27 22:12:31 +00:00

44 lines
1.4 KiB
Python

import os
import secrets
from pathlib import Path
from dotenv import load_dotenv
load_dotenv()
def _require(name: str) -> str:
val = os.getenv(name)
if not val:
raise RuntimeError(f"Missing required environment variable: {name}")
return val
# Matrix
MATRIX_HOMESERVER_URL: str = _require("MATRIX_HOMESERVER_URL")
MATRIX_AUDIT_ROOM_ID: str = os.getenv("MATRIX_AUDIT_ROOM_ID", "")
MATRIX_BOT_USER_ID: str = os.getenv("MATRIX_BOT_USER_ID", "")
MATRIX_BOT_ACCESS_TOKEN: str = os.getenv("MATRIX_BOT_ACCESS_TOKEN", "")
# Radarr
RADARR_URL: str = os.getenv("RADARR_URL", "")
RADARR_API_KEY: str = os.getenv("RADARR_API_KEY", "")
RADARR_QUALITY_PROFILE_ID: int = int(os.getenv("RADARR_QUALITY_PROFILE_ID", "1"))
RADARR_ROOT_FOLDER: str = os.getenv("RADARR_ROOT_FOLDER", "/movies")
# Sonarr
SONARR_URL: str = os.getenv("SONARR_URL", "")
SONARR_API_KEY: str = os.getenv("SONARR_API_KEY", "")
SONARR_QUALITY_PROFILE_ID: int = int(os.getenv("SONARR_QUALITY_PROFILE_ID", "1"))
SONARR_ROOT_FOLDER: str = os.getenv("SONARR_ROOT_FOLDER", "/tv")
# Lidarr
LIDARR_URL: str = os.getenv("LIDARR_URL", "")
LIDARR_API_KEY: str = os.getenv("LIDARR_API_KEY", "")
LIDARR_QUALITY_PROFILE_ID: int = int(os.getenv("LIDARR_QUALITY_PROFILE_ID", "1"))
LIDARR_ROOT_FOLDER: str = os.getenv("LIDARR_ROOT_FOLDER", "/music")
# App
SESSION_SECRET_KEY: str = os.getenv("SESSION_SECRET_KEY") or secrets.token_urlsafe(32)
DATABASE_PATH: str = os.getenv("DATABASE_PATH", "bellhop.db")