84 lines
2.1 KiB
Python
84 lines
2.1 KiB
Python
from os import getenv
|
|
|
|
# pylint: disable=unused-import
|
|
from ._internal import (
|
|
API_VERSION,
|
|
AUTH_PASSWORD_VALIDATORS,
|
|
AUTH_USER_MODEL,
|
|
DEBUG,
|
|
DEFAULT_AUTO_FIELD,
|
|
INSTALLED_APPS,
|
|
MIDDLEWARE,
|
|
REST_FRAMEWORK,
|
|
ROOT_URLCONF,
|
|
SPECTACULAR_SETTINGS,
|
|
STATIC_URL,
|
|
TEMPLATES,
|
|
WSGI_APPLICATION,
|
|
setup_logger,
|
|
)
|
|
from ._schema import Config
|
|
|
|
LIBRETIME_LOG_FILEPATH = getenv("LIBRETIME_LOG_FILEPATH")
|
|
LIBRETIME_CONFIG_FILEPATH = getenv("LIBRETIME_CONFIG_FILEPATH")
|
|
|
|
CONFIG = Config(LIBRETIME_CONFIG_FILEPATH) # type: ignore[arg-type, misc]
|
|
|
|
SECRET_KEY = CONFIG.general.secret_key
|
|
|
|
ALLOWED_HOSTS = ["*"]
|
|
|
|
LOGGING = setup_logger(LIBRETIME_LOG_FILEPATH)
|
|
|
|
# CORS
|
|
# https://github.com/adamchainz/django-cors-headers
|
|
|
|
# Create an 'origin' by removing the public_url path
|
|
public_url_origin = (
|
|
CONFIG.general.public_url[: -len(CONFIG.general.public_url.path)]
|
|
if CONFIG.general.public_url.path
|
|
else CONFIG.general.public_url
|
|
)
|
|
|
|
CORS_ALLOWED_ORIGINS = [public_url_origin] + CONFIG.general.allowed_cors_origins
|
|
|
|
# Database
|
|
# https://docs.djangoproject.com/en/3.2/ref/settings/#databases
|
|
|
|
DATABASES = {
|
|
"default": {
|
|
"ENGINE": "django.db.backends.postgresql",
|
|
"HOST": CONFIG.database.host,
|
|
"PORT": CONFIG.database.port,
|
|
"NAME": CONFIG.database.name,
|
|
"USER": CONFIG.database.user,
|
|
"PASSWORD": CONFIG.database.password,
|
|
}
|
|
}
|
|
|
|
|
|
# Internationalization
|
|
# https://docs.djangoproject.com/en/3.2/topics/i18n/
|
|
|
|
LANGUAGE_CODE = "en-us"
|
|
TIME_ZONE = "UTC"
|
|
USE_I18N = True
|
|
USE_TZ = True
|
|
|
|
# Email
|
|
# https://docs.djangoproject.com/en/4.2/topics/email/
|
|
|
|
EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
|
|
|
|
EMAIL_HOST = CONFIG.email.host
|
|
EMAIL_PORT = CONFIG.email.port
|
|
EMAIL_HOST_USER = CONFIG.email.user
|
|
EMAIL_HOST_PASSWORD = CONFIG.email.password
|
|
EMAIL_USE_SSL = CONFIG.email.encryption == "ssl/tls" # implicit
|
|
EMAIL_USE_TLS = CONFIG.email.encryption == "starttls" # explicit
|
|
EMAIL_TIMEOUT = CONFIG.email.timeout
|
|
EMAIL_SSL_KEYFILE = CONFIG.email.key_file
|
|
EMAIL_SSL_CERTFILE = CONFIG.email.cert_file
|
|
|
|
DEFAULT_FROM_EMAIL = CONFIG.email.from_email
|