|
1 | 1 | # Django settings for OS2borgerPC admin project. |
2 | 2 |
|
3 | 3 | import os |
4 | | -import configparser |
5 | 4 | import logging |
6 | 5 | import django |
7 | 6 |
|
|
15 | 14 | # Our customized user profile. |
16 | 15 | AUTH_PROFILE_MODULE = "account.UserProfile" |
17 | 16 |
|
18 | | -config = configparser.ConfigParser() |
19 | | -config["settings"] = {} |
20 | | - |
21 | | -# We load settings from a file. The fallback values in this |
22 | | -# `settings.py` is overwritten by the values defined in the file |
23 | | -# the env var `BPC_USER_CONFIG_PATH` points to. |
24 | | - |
25 | | -# The `BPC_USER_CONFIG_PATH` file is for settings that should generally |
26 | | -# be unique to an instance deployment. |
27 | | - |
28 | | -path = os.getenv("BPC_USER_CONFIG_PATH", None) |
29 | | -if path: |
30 | | - try: |
31 | | - with open(path) as fp: |
32 | | - config.read_file(fp) |
33 | | - logger.info("Loaded settings file BPC_USER_CONFIG_PATH from %s" % (path)) |
34 | | - except OSError as e: |
35 | | - logger.error( |
36 | | - "Loading settings file BPC_USER_CONFIG_PATH from %s failed with %s." |
37 | | - % (path, e) |
38 | | - ) |
39 | | - |
40 | | -# use settings section as default |
41 | | -settings = config["settings"] |
42 | | - |
43 | | - |
44 | | -DEBUG = settings.getboolean("DEBUG", False) |
| 17 | +DEBUG = os.getenv("DEBUG", 'false').lower() == 'true' |
45 | 18 |
|
46 | 19 | ADMINS = ( |
47 | 20 | [ |
48 | | - (settings.get("ADMIN_NAME"), settings["ADMIN_EMAIL"]), |
| 21 | + (os.environ.get("ADMIN_USERNAME"), os.environ["ADMIN_EMAIL"]), |
49 | 22 | ] |
50 | | - if settings.get("ADMIN_EMAIL") |
| 23 | + if os.environ.get("ADMIN_EMAIL") |
51 | 24 | else None |
52 | 25 | ) |
53 | 26 |
|
54 | 27 | MANAGERS = ADMINS |
55 | 28 |
|
56 | | - |
57 | 29 | # Template settings |
58 | 30 | TEMPLATES = [ |
59 | 31 | { |
|
87 | 59 | "USER": os.environ['DB_USER'], |
88 | 60 | "PASSWORD": os.environ['DB_PASSWORD'], |
89 | 61 | "HOST": os.environ['DB_HOST'], |
90 | | - "PORT": os.environ['DB_PORT'], |
| 62 | + "PORT": os.getenv("DB_PORT", ""), |
91 | 63 | "OPTIONS": { |
92 | 64 | "connect_timeout": 2, # Minimum in 2 |
93 | 65 | }, |
|
96 | 68 |
|
97 | 69 | # Hosts/domain names that are valid for this site; required if DEBUG is False |
98 | 70 | # See https://docs.djangoproject.com/en/3.1/ref/settings/#allowed-hosts |
99 | | -if settings.get("ALLOWED_HOSTS"): |
100 | | - ALLOWED_HOSTS = settings.get("ALLOWED_HOSTS").split(",") |
101 | | -else: |
102 | | - ALLOWED_HOSTS = [] |
| 71 | +ALLOWED_HOSTS = os.getenv("ALLOWED_HOSTS", "").split(",") |
103 | 72 |
|
104 | 73 | # Django > 4.0 introduced changes related to CSRF. Note that the protocol has to be specified too. |
105 | 74 | # https://docs.djangoproject.com/en/4.2/releases/4.0/#csrf |
106 | 75 | # https://docs.djangoproject.com/en/4.2/ref/settings/#csrf-trusted-origins |
107 | | -if settings.get("CSRF_TRUSTED_ORIGINS"): |
108 | | - CSRF_TRUSTED_ORIGINS = settings.get("CSRF_TRUSTED_ORIGINS").split(",") |
| 76 | +if os.getenv("CSRF_TRUSTED_ORIGINS", ""): |
| 77 | + CSRF_TRUSTED_ORIGINS = os.getenv("CSRF_TRUSTED_ORIGINS", "").split(",") |
109 | 78 | else: |
110 | 79 | CSRF_TRUSTED_ORIGINS = [] |
111 | 80 |
|
|
114 | 83 | # although not all choices may be available on all operating systems. |
115 | 84 | # In a Windows environment this must be set to your system time zone. |
116 | 85 | # Timezone/Language |
117 | | -TIME_ZONE = settings["TIME_ZONE"] |
| 86 | +TIME_ZONE = os.environ["TIME_ZONE"] |
118 | 87 |
|
119 | 88 | # Language code for this installation. All choices can be found here: |
120 | 89 | # http://www.i18nguy.com/unicode/language-identifiers.html |
121 | | -LANGUAGE_CODE = settings["LANGUAGE_CODE"] |
| 90 | +LANGUAGE_CODE = os.environ["LANGUAGE_CODE"] |
122 | 91 |
|
123 | 92 | LOCALE_PATHS = [os.path.join(install_dir, "locale")] |
124 | 93 |
|
|
172 | 141 |
|
173 | 142 |
|
174 | 143 | # Storage setup |
175 | | -if settings.get("GS_BUCKET_NAME"): |
| 144 | +if os.environ.get("GS_BUCKET_NAME"): |
176 | 145 | # The Google Cloud Storage bucket name. For `django-storages[google]` |
177 | 146 | # https://django-storages.readthedocs.io/en/latest/backends/gcloud.html |
178 | 147 | # If it is set, we save all files to Google Cloud. |
179 | 148 | DEFAULT_FILE_STORAGE = "storages.backends.gcloud.GoogleCloudStorage" |
180 | | - GS_BUCKET_NAME = settings.get("GS_BUCKET_NAME") |
| 149 | + GS_BUCKET_NAME = os.environ.get("GS_BUCKET_NAME") |
181 | 150 | GS_CREDENTIALS = service_account.Credentials.from_service_account_file( |
182 | | - settings.get("GS_CREDENTIALS_FILE") |
| 151 | + os.environ.get("GS_CREDENTIALS_FILE") |
183 | 152 | ) |
184 | 153 | GS_QUERYSTRING_AUTH = False |
185 | 154 | GS_FILE_OVERWRITE = False |
186 | | - GS_CUSTOM_ENDPOINT = settings.get("GS_CUSTOM_ENDPOINT", None) |
| 155 | + GS_CUSTOM_ENDPOINT = os.environ.get("GS_CUSTOM_ENDPOINT", None) |
187 | 156 |
|
188 | 157 | # Make this unique, and don't share it with anybody. |
189 | | -SECRET_KEY = settings["SECRET_KEY"] |
| 158 | +SECRET_KEY = os.environ["SECRET_KEY"] |
190 | 159 |
|
191 | 160 | MIDDLEWARE = ( |
192 | 161 | "django.middleware.security.SecurityMiddleware", |
|
203 | 172 |
|
204 | 173 | # Email settings |
205 | 174 |
|
206 | | -DEFAULT_FROM_EMAIL = settings.get("DEFAULT_FROM_EMAIL") |
207 | | -ADMIN_EMAIL = settings.get("ADMIN_EMAIL") |
208 | | -EMAIL_HOST = settings.get("EMAIL_HOST") |
209 | | -EMAIL_PORT = settings.get("EMAIL_PORT") |
210 | | -SERVER_EMAIL = settings.get("SERVER_EMAIL") |
211 | | -EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend" |
212 | | -EMAIL_HOST_USER = settings.get("EMAIL_USER") |
213 | | -EMAIL_HOST_PASSWORD = settings.get("EMAIL_PASSWORD") |
| 175 | +DEFAULT_FROM_EMAIL = os.environ.get("DEFAULT_FROM_EMAIL") |
| 176 | +ADMIN_EMAIL = os.environ.get("ADMIN_EMAIL") |
| 177 | +EMAIL_HOST = os.environ.get("EMAIL_HOST") |
| 178 | +EMAIL_PORT = os.environ.get("EMAIL_PORT") |
| 179 | +SERVER_EMAIL = os.environ.get("SERVER_EMAIL") |
| 180 | +EMAIL_BACKEND = "os.environ.core.mail.backends.smtp.EmailBackend" |
| 181 | +EMAIL_HOST_USER = os.environ.get("EMAIL_USER") |
| 182 | +EMAIL_HOST_PASSWORD = os.environ.get("EMAIL_PASSWORD") |
214 | 183 |
|
215 | 184 | ROOT_URLCONF = "os2borgerpc_admin.urls" |
216 | 185 |
|
|
300 | 269 | }, |
301 | 270 | "root": { |
302 | 271 | "handlers": ["console", "mail_admins"], |
303 | | - "level": settings.get("LOG_LEVEL", fallback="ERROR"), |
| 272 | + "level": os.getenv("LOG_LEVEL", "ERROR"), |
304 | 273 | }, |
305 | 274 | } |
306 | 275 |
|
307 | | -INITIALIZE_DATABASE = settings.getboolean("INITIALIZE_DATABASE", False) |
| 276 | +INITIALIZE_DATABASE = os.getenv("INITIALIZE_DATABASE", 'false').lower() == 'true' |
308 | 277 |
|
309 | 278 | CRISPY_ALLOWED_TEMPLATE_PACKS = "bootstrap5" |
310 | 279 |
|
|
313 | 282 | DEFAULT_AUTO_FIELD = "django.db.models.AutoField" |
314 | 283 |
|
315 | 284 | # Handler for citizen login. |
316 | | -CITIZEN_LOGIN_API_VALIDATOR = settings.get( |
| 285 | +CITIZEN_LOGIN_API_VALIDATOR = os.environ.get( |
317 | 286 | "CITIZEN_LOGIN_API_VALIDATOR", "system.utils.cicero_validate" |
318 | 287 | ) |
319 | 288 |
|
320 | 289 | # Cicero specific stuff. |
321 | | -CICERO_URL = settings.get("CICERO_URL") |
| 290 | +CICERO_URL = os.environ.get("CICERO_URL") |
322 | 291 |
|
323 | 292 | # All Python Markdown's officially supported extensions can be added here without |
324 | 293 | # any extra setup. |
|
0 commit comments