import os from django.core.exceptions import ImproperlyConfigured def required(name): value = os.environ.get(name) if not value or value.startswith("replace-"): raise ImproperlyConfigured(f"Set {name} in your local environment.") return value SECRET_KEY = required("DJANGO_SECRET_KEY") DEBUG = False ALLOWED_HOSTS = ["localhost", "127.0.0.1"] ROOT_URLCONF = "config.urls" INSTALLED_APPS = [ "django.contrib.auth", "django.contrib.contenttypes", "django.contrib.sessions", "django.contrib.messages", "django.contrib.staticfiles", "core", "finance", "ingestion", ] MIDDLEWARE = [ "django.middleware.security.SecurityMiddleware", "django.contrib.sessions.middleware.SessionMiddleware", "django.middleware.common.CommonMiddleware", "django.middleware.csrf.CsrfViewMiddleware", "django.contrib.messages.middleware.MessageMiddleware", ] TEMPLATES = [{ "BACKEND": "django.template.backends.django.DjangoTemplates", "DIRS": [], "APP_DIRS": True, "OPTIONS": {"context_processors": [ "django.template.context_processors.request", "django.contrib.messages.context_processors.messages", "core.context.navigation", ]}, }] SESSION_ENGINE = "django.contrib.sessions.backends.signed_cookies" STATIC_URL = "static/" LOCAL_SERVE_STATIC = os.environ.get("LOCAL_SERVE_STATIC", "true").casefold() in {"1", "true", "yes"} DATABASES = {"default": { "ENGINE": "django.db.backends.postgresql", "NAME": required("DB_NAME"), "USER": required("DB_USER"), "PASSWORD": required("DB_PASSWORD"), "HOST": required("DB_HOST"), "PORT": "5432", "OPTIONS": {"connect_timeout": 3}, }} DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField" USE_TZ = True TIME_ZONE = "UTC" IMPORT_ROOT = "/app/imports" EXPORT_ROOT = os.environ.get("EXPORT_ROOT", "/app/exports") BACKUP_ROOT = os.environ.get("BACKUP_ROOT", "/app/backups") BACKUP_VERIFY_ALLOWED = os.environ.get("BACKUP_VERIFY_ALLOWED", "").casefold() in { "1", "true", "yes" } LIVE_DATABASE_HOST = os.environ.get("LIVE_DB_HOST") LIVE_DATABASE_NAME = os.environ.get("LIVE_DB_NAME")