Use django-environ for settings
This commit is contained in:
parent
204a35100d
commit
b23082e79a
|
@ -0,0 +1,11 @@
|
||||||
|
ALLOWED_HOSTS=
|
||||||
|
APP_URL=
|
||||||
|
DATABASE_URL=
|
||||||
|
DEBUG=no
|
||||||
|
SECRET_KEY=
|
||||||
|
|
||||||
|
OIDC_OP_AUTHORIZATION_ENDPOINT=
|
||||||
|
OIDC_OP_TOKEN_ENDPOINT=
|
||||||
|
OIDC_OP_USER_ENDPOINT=
|
||||||
|
OIDC_RP_CLIENT_ID=
|
||||||
|
OIDC_RP_CLIENT_SECRET=
|
|
@ -10,26 +10,28 @@ For the full list of settings and their values, see
|
||||||
https://docs.djangoproject.com/en/4.2/ref/settings/
|
https://docs.djangoproject.com/en/4.2/ref/settings/
|
||||||
"""
|
"""
|
||||||
|
|
||||||
from os import getenv
|
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from sys import argv
|
from sys import argv
|
||||||
|
|
||||||
|
import environ
|
||||||
|
|
||||||
|
env = environ.Env()
|
||||||
|
|
||||||
# Build paths inside the project like this: BASE_DIR / 'subdir'.
|
# Build paths inside the project like this: BASE_DIR / 'subdir'.
|
||||||
BASE_DIR = Path(__file__).resolve().parent.parent
|
BASE_DIR = Path(__file__).resolve().parent.parent
|
||||||
|
|
||||||
|
environ.Env.read_env(BASE_DIR / ".env")
|
||||||
|
|
||||||
# Quick-start development settings - unsuitable for production
|
# Quick-start development settings - unsuitable for production
|
||||||
# See https://docs.djangoproject.com/en/4.2/howto/deployment/checklist/
|
# See https://docs.djangoproject.com/en/4.2/howto/deployment/checklist/
|
||||||
|
|
||||||
# SECURITY WARNING: keep the secret key used in production secret!
|
# SECURITY WARNING: keep the secret key used in production secret!
|
||||||
SECRET_KEY = getenv(
|
SECRET_KEY = env("SECRET_KEY")
|
||||||
"SECRET_KEY", "django-insecure-av_^u=+63kru%wed(9&1gx0=_8sci@2ohd$b@l-!$u*p0xtik-"
|
|
||||||
)
|
|
||||||
|
|
||||||
# SECURITY WARNING: don't run with debug turned on in production!
|
# SECURITY WARNING: don't run with debug turned on in production!
|
||||||
DEBUG = getenv("DEBUG", "").lower() in ("1", "true", "yes") or "runserver" in argv
|
DEBUG = env.bool("DEBUG", False)
|
||||||
|
|
||||||
ALLOWED_HOSTS = [] if DEBUG else getenv("ALLOWED_HOSTS", "ljg.sh,www.ljg.sh").split(",")
|
ALLOWED_HOSTS = [] if DEBUG else env.list("ALLOWED_HOSTS")
|
||||||
|
|
||||||
|
|
||||||
# Application definition
|
# Application definition
|
||||||
|
@ -83,14 +85,7 @@ WSGI_APPLICATION = "ljg.wsgi.application"
|
||||||
# https://docs.djangoproject.com/en/4.2/ref/settings/#databases
|
# https://docs.djangoproject.com/en/4.2/ref/settings/#databases
|
||||||
|
|
||||||
DATABASES = {
|
DATABASES = {
|
||||||
"default": {
|
"default": env.db_url(default=f"sqlite:///{BASE_DIR / 'db.sqlite3'}"),
|
||||||
"ENGINE": "django.db.backends." + getenv("DB_ENGINE", "sqlite3"),
|
|
||||||
"NAME": getenv("DB_NAME", BASE_DIR / "db.sqlite3"),
|
|
||||||
"USER": getenv("DB_USER", ""),
|
|
||||||
"PASSWORD": getenv("DB_PASSWORD", ""),
|
|
||||||
"HOST": getenv("DB_HOST", ""),
|
|
||||||
"PORT": getenv("DB_PORT", ""),
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -135,16 +130,16 @@ STATIC_URL = "static/"
|
||||||
|
|
||||||
DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
|
DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
|
||||||
|
|
||||||
APP_TITLE = getenv("APP_TITLE", "ljg.sh")
|
APP_TITLE = env.str("APP_TITLE", "ljg.sh")
|
||||||
|
|
||||||
AUTHENTICATION_BACKENDS = (
|
AUTHENTICATION_BACKENDS = (
|
||||||
"django.contrib.auth.backends.ModelBackend",
|
"django.contrib.auth.backends.ModelBackend",
|
||||||
"ljg.core.auth.OIDCAuthenticationBackend",
|
"ljg.core.auth.OIDCAuthenticationBackend",
|
||||||
)
|
)
|
||||||
|
|
||||||
OIDC_OP_AUTHORIZATION_ENDPOINT = getenv("OIDC_OP_AUTHORIZATION_ENDPOINT", "")
|
OIDC_OP_AUTHORIZATION_ENDPOINT = env.str("OIDC_OP_AUTHORIZATION_ENDPOINT", "")
|
||||||
OIDC_OP_TOKEN_ENDPOINT = getenv("OIDC_OP_TOKEN_ENDPOINT", "")
|
OIDC_OP_TOKEN_ENDPOINT = env.str("OIDC_OP_TOKEN_ENDPOINT", "")
|
||||||
OIDC_OP_USER_ENDPOINT = getenv("OIDC_OP_USER_ENDPOINT", "")
|
OIDC_OP_USER_ENDPOINT = env.str("OIDC_OP_USER_ENDPOINT", "")
|
||||||
|
|
||||||
OIDC_RP_CLIENT_ID = getenv("OIDC_RP_CLIENT_ID", "")
|
OIDC_RP_CLIENT_ID = env.str("OIDC_RP_CLIENT_ID", "")
|
||||||
OIDC_RP_CLIENT_SECRET = getenv("OIDC_RP_CLIENT_SECRET", "")
|
OIDC_RP_CLIENT_SECRET = env.str("OIDC_RP_CLIENT_SECRET", "")
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
# This file is automatically @generated by Poetry 1.5.1 and should not be changed by hand.
|
# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand.
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "asgiref"
|
name = "asgiref"
|
||||||
|
@ -319,6 +319,22 @@ tzdata = {version = "*", markers = "sys_platform == \"win32\""}
|
||||||
argon2 = ["argon2-cffi (>=19.1.0)"]
|
argon2 = ["argon2-cffi (>=19.1.0)"]
|
||||||
bcrypt = ["bcrypt"]
|
bcrypt = ["bcrypt"]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "django-environ"
|
||||||
|
version = "0.11.2"
|
||||||
|
description = "A package that allows you to utilize 12factor inspired environment variables to configure your Django application."
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.6,<4"
|
||||||
|
files = [
|
||||||
|
{file = "django-environ-0.11.2.tar.gz", hash = "sha256:f32a87aa0899894c27d4e1776fa6b477e8164ed7f6b3e410a62a6d72caaf64be"},
|
||||||
|
{file = "django_environ-0.11.2-py2.py3-none-any.whl", hash = "sha256:0ff95ab4344bfeff693836aa978e6840abef2e2f1145adff7735892711590c05"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.extras]
|
||||||
|
develop = ["coverage[toml] (>=5.0a4)", "furo (>=2021.8.17b43,<2021.9.dev0)", "pytest (>=4.6.11)", "sphinx (>=3.5.0)", "sphinx-notfound-page"]
|
||||||
|
docs = ["furo (>=2021.8.17b43,<2021.9.dev0)", "sphinx (>=3.5.0)", "sphinx-notfound-page"]
|
||||||
|
testing = ["coverage[toml] (>=5.0a4)", "pytest (>=4.6.11)"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "idna"
|
name = "idna"
|
||||||
version = "3.4"
|
version = "3.4"
|
||||||
|
@ -729,4 +745,4 @@ zstd = ["zstandard (>=0.18.0)"]
|
||||||
[metadata]
|
[metadata]
|
||||||
lock-version = "2.0"
|
lock-version = "2.0"
|
||||||
python-versions = "^3.11"
|
python-versions = "^3.11"
|
||||||
content-hash = "27fbc85e1a784623c3bf3a0cab6e2a4af4e10634075d105ba149b46bcc9fb229"
|
content-hash = "bb962aa113b939926a9a66e86694f1b8b279c541e1c0ac38f6e9f3b10248d5d6"
|
||||||
|
|
|
@ -14,6 +14,7 @@ mozilla-django-oidc = "^3.0.0"
|
||||||
Pillow = "^10.0.0"
|
Pillow = "^10.0.0"
|
||||||
psycopg2-binary = "^2.9.7"
|
psycopg2-binary = "^2.9.7"
|
||||||
qrcode = "^7.4.2"
|
qrcode = "^7.4.2"
|
||||||
|
django-environ = "^0.11.2"
|
||||||
|
|
||||||
[tool.poetry.group.dev.dependencies]
|
[tool.poetry.group.dev.dependencies]
|
||||||
black = "^23.7.0"
|
black = "^23.7.0"
|
||||||
|
|
Loading…
Reference in New Issue