feat: Use loadcredential package and rework settings
This commit is contained in:
parent
0b2d4523fe
commit
5d2342b7c6
6 changed files with 77 additions and 52 deletions
1
.credentials/SECRET_KEY
Normal file
1
.credentials/SECRET_KEY
Normal file
|
@ -0,0 +1 @@
|
||||||
|
insecure-secret
|
|
@ -42,6 +42,10 @@ in
|
||||||
|
|
||||||
env = {
|
env = {
|
||||||
DJANGO_SETTINGS_MODULE = "gestiojeux.settings";
|
DJANGO_SETTINGS_MODULE = "gestiojeux.settings";
|
||||||
|
|
||||||
|
CREDENTIALS_DIRECTORY = builtins.toString ./.credentials;
|
||||||
|
|
||||||
|
GESTIOJEUX_DEBUG = builtins.toJSON true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
1
gestiojeux/.gitignore
vendored
1
gestiojeux/.gitignore
vendored
|
@ -1 +0,0 @@
|
||||||
settings.py
|
|
|
@ -12,12 +12,67 @@ https://docs.djangoproject.com/en/3.0/ref/settings/
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
|
from loadcredential import Credentials
|
||||||
|
|
||||||
|
# Secrets
|
||||||
|
credentials = Credentials(env_prefix="GESTIOJEUX_")
|
||||||
|
|
||||||
|
SECRET_KEY = credentials["SECRET_KEY"]
|
||||||
|
|
||||||
|
DEBUG = credentials.get_json(
|
||||||
|
"DEBUG", False
|
||||||
|
) # SECURITY WARNING: don't run with debug turned on in production!
|
||||||
|
|
||||||
|
ALLOWED_HOSTS = credentials.get_json("ALLOWED_HOSTS", [])
|
||||||
|
ADMINS = credentials.get_json("ADMINS", [])
|
||||||
|
|
||||||
|
|
||||||
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
|
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
|
||||||
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||||
PUBLIC_DIR = os.path.join(BASE_DIR, "public")
|
PUBLIC_DIR = os.path.join(BASE_DIR, "public")
|
||||||
|
|
||||||
# Application definition
|
# Conditional settings
|
||||||
|
if DEBUG:
|
||||||
|
# Database
|
||||||
|
# https://docs.djangoproject.com/en/3.0/ref/settings/#databases
|
||||||
|
|
||||||
|
DATABASES = {
|
||||||
|
"default": {
|
||||||
|
"ENGINE": "django.db.backends.sqlite3",
|
||||||
|
"NAME": os.path.join(BASE_DIR, "db.sqlite3"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Email
|
||||||
|
EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend"
|
||||||
|
else:
|
||||||
|
EMAIL_HOST = "clipper.ens.fr"
|
||||||
|
SERVER_EMAIL = credentials["SERVER_EMAIL"]
|
||||||
|
DEFAULT_FROM_EMAIL = credentials["DEFAULT_FROM_EMAIL"]
|
||||||
|
|
||||||
|
# HTTPS only
|
||||||
|
CSRF_COOKIE_SECURE = True
|
||||||
|
SESSION_COOKIE_SECURE = True
|
||||||
|
|
||||||
|
DATABASES = {
|
||||||
|
"default": {
|
||||||
|
"ENGINE": "django.db.backends.postgresql_psycopg2",
|
||||||
|
"NAME": credentials["DB_NAME"],
|
||||||
|
"USER": credentials["DB_USER"],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
# Search engine
|
||||||
|
# https://django-haystack.readthedocs.io/en/latest/tutorial.html#configuration
|
||||||
|
HAYSTACK_CONNECTIONS = {
|
||||||
|
"default": {
|
||||||
|
"ENGINE": "haystack.backends.whoosh_backend.WhooshEngine",
|
||||||
|
"PATH": os.path.join(BASE_DIR, "whoosh_index"),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
# Application definition
|
||||||
INSTALLED_APPS = [
|
INSTALLED_APPS = [
|
||||||
"django.contrib.admin",
|
"django.contrib.admin",
|
||||||
"django.contrib.auth",
|
"django.contrib.auth",
|
||||||
|
@ -111,12 +166,27 @@ MARKDOWNX_UPLOAD_MAX_SIZE = 1024 * 1024 # Only 1 MiB for markdown uploads
|
||||||
# Update the search database on save
|
# Update the search database on save
|
||||||
HAYSTACK_SIGNAL_PROCESSOR = "haystack.signals.RealtimeSignalProcessor"
|
HAYSTACK_SIGNAL_PROCESSOR = "haystack.signals.RealtimeSignalProcessor"
|
||||||
|
|
||||||
|
# Internationalization
|
||||||
|
# https://docs.djangoproject.com/en/3.0/topics/i18n/
|
||||||
|
|
||||||
|
LANGUAGE_CODE = "fr"
|
||||||
|
TIME_ZONE = "Europe/Paris"
|
||||||
|
USE_I18N = True
|
||||||
|
USE_L10N = True
|
||||||
|
USE_TZ = True
|
||||||
|
|
||||||
# Static files (CSS, JavaScript, Images)
|
# Static files (CSS, JavaScript, Images)
|
||||||
# https://docs.djangoproject.com/en/3.0/howto/static-files/
|
# https://docs.djangoproject.com/en/3.0/howto/static-files/
|
||||||
|
|
||||||
STATIC_URL = "/static/"
|
STATIC_URL = "/static/"
|
||||||
MEDIA_URL = "/media/"
|
MEDIA_URL = "/media/"
|
||||||
|
|
||||||
|
# Directories
|
||||||
|
STATIC_ROOT = os.path.join(PUBLIC_DIR, "static")
|
||||||
|
MEDIA_ROOT = os.path.join(PUBLIC_DIR, "media")
|
||||||
|
|
||||||
|
# CAS settings
|
||||||
|
|
||||||
CAS_SERVER_URL = "https://cas.eleves.ens.fr/"
|
CAS_SERVER_URL = "https://cas.eleves.ens.fr/"
|
||||||
CAS_VERIFY_URL = "https://cas.eleves.ens.fr/"
|
CAS_VERIFY_URL = "https://cas.eleves.ens.fr/"
|
||||||
CAS_VERSION = "CAS_2_SAML_1_0"
|
CAS_VERSION = "CAS_2_SAML_1_0"
|
|
@ -1,50 +0,0 @@
|
||||||
"""
|
|
||||||
Django settings for jeulee project — dev base settings
|
|
||||||
"""
|
|
||||||
|
|
||||||
import os
|
|
||||||
from .settings_base import *
|
|
||||||
|
|
||||||
# SECURITY WARNING: keep the secret key used in production secret!
|
|
||||||
SECRET_KEY = "CHANGE_ME" # FIXME
|
|
||||||
|
|
||||||
# SECURITY WARNING: don't run with debug turned on in production!
|
|
||||||
DEBUG = True
|
|
||||||
|
|
||||||
ALLOWED_HOSTS = []
|
|
||||||
|
|
||||||
# Database
|
|
||||||
# https://docs.djangoproject.com/en/3.0/ref/settings/#databases
|
|
||||||
|
|
||||||
DATABASES = {
|
|
||||||
"default": {
|
|
||||||
"ENGINE": "django.db.backends.sqlite3",
|
|
||||||
"NAME": os.path.join(BASE_DIR, "db.sqlite3"),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# Search engine
|
|
||||||
# https://django-haystack.readthedocs.io/en/latest/tutorial.html#configuration
|
|
||||||
|
|
||||||
HAYSTACK_CONNECTIONS = {
|
|
||||||
"default": {
|
|
||||||
"ENGINE": "haystack.backends.whoosh_backend.WhooshEngine",
|
|
||||||
"PATH": os.path.join(BASE_DIR, "whoosh_index"),
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
# Internationalization
|
|
||||||
# https://docs.djangoproject.com/en/3.0/topics/i18n/
|
|
||||||
|
|
||||||
LANGUAGE_CODE = "fr"
|
|
||||||
TIME_ZONE = "Europe/Paris"
|
|
||||||
USE_I18N = True
|
|
||||||
USE_L10N = True
|
|
||||||
USE_TZ = True
|
|
||||||
|
|
||||||
# Directories
|
|
||||||
STATIC_ROOT = os.path.join(PUBLIC_DIR, "static")
|
|
||||||
MEDIA_ROOT = os.path.join(PUBLIC_DIR, "media")
|
|
||||||
|
|
||||||
# Email
|
|
||||||
EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend"
|
|
|
@ -8,3 +8,4 @@ django-tables2==2.7.0
|
||||||
markdown-iconfonts==3.0.0
|
markdown-iconfonts==3.0.0
|
||||||
Pillow==10.1.0
|
Pillow==10.1.0
|
||||||
Whoosh==2.7.4
|
Whoosh==2.7.4
|
||||||
|
loadcredential==1.1
|
||||||
|
|
Loading…
Reference in a new issue