import os from pathlib import Path BASE_DIR = Path(__file__).resolve().parent.parent SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY', 'dev-insecure-change-me') DEBUG = os.environ.get('DEBUG', '1') == '1' ALLOWED_HOSTS = os.environ.get('ALLOWED_HOSTS', '*').split(',') # API config (external backend we talk to) API_BASE_URL = os.environ.get('API_BASE_URL', 'http://localhost:8001') API_TIMEOUT = float(os.environ.get('API_TIMEOUT', '6.0')) API_KEY = os.environ.get('API_KEY', '') # optional INSTALLED_APPS = [ # Minimal stack, no admin/auth DB tables 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'ui', ] MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] ROOT_URLCONF = 'agency.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [BASE_DIR / 'templates'], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.messages.context_processors.messages', 'ui.context_processors.public_settings', 'ui.context_processors.current_user', ], }, }, ] WSGI_APPLICATION = 'agency.wsgi.application' ASGI_APPLICATION = 'agency.asgi.application' # We do not use a database at all DATABASES = { 'default': { 'ENGINE': 'django.db.backends.dummy' } } # Cookie-based sessions to avoid DB entirely SESSION_ENGINE = 'django.contrib.sessions.backends.signed_cookies' SESSION_COOKIE_HTTPONLY = True SESSION_COOKIE_SAMESITE = 'Lax' SESSION_COOKIE_SECURE = os.environ.get('SESSION_COOKIE_SECURE', '0') == '1' CSRF_COOKIE_HTTPONLY = True CSRF_TRUSTED_ORIGINS = os.environ.get('CSRF_TRUSTED_ORIGINS', '').split(',') if os.environ.get('CSRF_TRUSTED_ORIGINS') else [] LANGUAGE_CODE = 'ru-ru' TIME_ZONE = 'UTC' USE_I18N = True USE_TZ = True STATIC_URL = 'static/' STATICFILES_DIRS = [BASE_DIR / 'static'] DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' # Logging of API calls (basic) LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'console': {'class': 'logging.StreamHandler'}, }, 'loggers': { 'ui.api': { 'handlers': ['console'], 'level': 'INFO' if DEBUG else 'WARNING', }, }, }