""" Production settings for thrillwiki project. """ # Import the module and use its members, e.g., base.BASE_DIR, base***REMOVED*** from . import base # Import the module and use its members, e.g., database.DATABASES # Import the module and use its members, e.g., email.EMAIL_HOST # Import the module and use its members, e.g., security.SECURE_HSTS_SECONDS # Import the module and use its members, e.g., email.EMAIL_HOST # Import the module and use its members, e.g., security.SECURE_HSTS_SECONDS # Production settings DEBUG = False # Allowed hosts must be explicitly set in production ALLOWED_HOSTS = base.env.list("ALLOWED_HOSTS") # CSRF trusted origins for production CSRF_TRUSTED_ORIGINS = base.env.list("CSRF_TRUSTED_ORIGINS") # Security settings for production SECURE_SSL_REDIRECT = True SESSION_COOKIE_SECURE = True CSRF_COOKIE_SECURE = True SECURE_HSTS_SECONDS = 31536000 # 1 year SECURE_HSTS_INCLUDE_SUBDOMAINS = True SECURE_HSTS_PRELOAD = True # Production logging LOGGING = { "version": 1, "disable_existing_loggers": False, "formatters": { "verbose": { "format": "{levelname} {asctime} {module} {process:d} {thread:d} {message}", "style": "{", }, "simple": { "format": "{levelname} {message}", "style": "{", }, }, "handlers": { "file": { "level": "INFO", "class": "logging.handlers.RotatingFileHandler", "filename": base.BASE_DIR / "logs" / "django.log", "maxBytes": 1024 * 1024 * 15, # 15MB "backupCount": 10, "formatter": "verbose", }, "error_file": { "level": "ERROR", "class": "logging.handlers.RotatingFileHandler", "filename": base.BASE_DIR / "logs" / "django_error.log", "maxBytes": 1024 * 1024 * 15, # 15MB "backupCount": 10, "formatter": "verbose", }, }, "root": { "handlers": ["file"], "level": "INFO", }, "loggers": { "django": { "handlers": ["file", "error_file"], "level": "INFO", "propagate": False, }, "thrillwiki": { "handlers": ["file", "error_file"], "level": "INFO", "propagate": False, }, }, } # Static files collection for production STATICFILES_STORAGE = "whitenoise.storage.CompressedManifestStaticFilesStorage" # Cache settings for production (Redis recommended) redis_url = base.env.str("REDIS_URL", default=None) if redis_url: CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", "LOCATION": redis_url, "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", }, } } # Use Redis for sessions in production SESSION_ENGINE = "django.contrib.sessions.backends.cache" SESSION_CACHE_ALIAS = "default"