Files
sprpcb/arches/settings_local.py
2026-03-17 00:48:20 -04:00

119 lines
3.4 KiB
Python

import os
from django.core.exceptions import ImproperlyConfigured
import ast
def get_env_variable(var_name):
msg = "Set the %s environment variable"
try:
return os.environ[var_name]
except KeyError:
error_msg = msg % var_name
raise ImproperlyConfigured(error_msg)
def get_optional_env_variable(var_name):
try:
return os.environ[var_name]
except KeyError:
return None
# options are either "PROD" or "DEV"
# (installing with Dev mode set gets you extra dependencies)
MODE = get_env_variable("DJANGO_MODE")
DEBUG = ast.literal_eval(get_env_variable("DJANGO_DEBUG"))
if not DEBUG:
# Some extra security settings for production deployments
SESSION_COOKIE_SECURE = True
# We could use the DOMAINS envinronment variable here, but
# since we're only supporting one domain and that's the same
# has DEPLOY_HOST that is used for the SSL CERT_PATH.
DEPLOY_HOST = get_env_variable("DEPLOY_HOST")
CSRF_TRUSTED_ORIGINS = [
f"https://{DEPLOY_HOST}",
]
# Set the APP_NAME here too, it may be useful for making the URLs
# work correctly when running gunicorn.
APP_NAME = get_env_variable("ARCHES_PROJECT")
DATABASES = {
"default": {
"ENGINE": "django.contrib.gis.db.backends.postgis",
"NAME": get_env_variable("PGDBNAME"),
"USER": get_env_variable("PGUSERNAME"),
"PASSWORD": get_env_variable("PGPASSWORD"),
"HOST": get_env_variable("PGHOST"),
"PORT": get_env_variable("PGPORT"),
"POSTGIS_TEMPLATE": "template_postgis",
}
}
ARCHES_NAMESPACE_FOR_DATA_EXPORT = get_env_variable("ARCHES_NAMESPACE")
CACHES = {
"default": {
"BACKEND": "django.core.cache.backends.redis.RedisCache",
"LOCATION": "redis://arches_redis:6379/1",
},
"user_permission": {
"BACKEND": "django.core.cache.backends.db.DatabaseCache",
"LOCATION": "user_permission_cache",
},
}
"""
Since we're using Docker, we can use Redis (even on a Windows OS). So, we
will comment out the RabbitMQ connection in favor of a Redis connection.
CELERY_BROKER_URL = "amqp://{}:{}@arches_rabbitmq:5672".format(
get_env_variable("RABBITMQ_USER"), get_env_variable("RABBITMQ_PASS")
)
"""
CELERY_BROKER_URL = "redis://@arches_redis:6379/0"
# NOTE: If you want to disable celery and workers, leave a blank string fo
# the CELERY_BROKER_URL as follows:
#
# CELERY_BROKER_URL = ""
# CANTALOUPE_HTTP_ENDPOINT = "http://{}:{}".format(get_env_variable("CANTALOUPE_HOST"), get_env_variable("CANTALOUPE_PORT"))
ELASTICSEARCH_HTTP_PORT = get_env_variable("ESPORT")
ELASTICSEARCH_HOSTS = [
{
"scheme": "http",
"host": get_env_variable("ESHOST"),
"port": int(ELASTICSEARCH_HTTP_PORT),
}
]
USER_ELASTICSEARCH_PREFIX = get_optional_env_variable("ELASTICSEARCH_PREFIX")
if USER_ELASTICSEARCH_PREFIX:
ELASTICSEARCH_PREFIX = USER_ELASTICSEARCH_PREFIX
ALLOWED_HOSTS = get_env_variable("DOMAIN_NAMES").split() + ['*']
USER_SECRET_KEY = get_optional_env_variable("DJANGO_SECRET_KEY")
if USER_SECRET_KEY:
# Make this unique, and don't share it with anybody.
SECRET_KEY = USER_SECRET_KEY
STATIC_ROOT = "/static_root"
LANGUAGE_CODE = 'es'
# Added for v7 internationalization demo
# Change these to match the languages you want to support
LANGUAGES = [
('es', ('Spanish')),
('en', ('English')),
]
# This does not work when using gunicorn
# SHOW_LANGUAGE_SWITCH = len(LANGUAGES) > 1
SHOW_LANGUAGE_SWITCH = False