Task #9553 Handle Environment Variables

This commit is contained in:
amalelshihaby 2021-07-24 14:27:08 +02:00
parent 8287e73f6b
commit c4f7913cb1
4 changed files with 44 additions and 16 deletions

View file

@ -14,6 +14,7 @@ parsedatetime
pyparsing pyparsing
pydot pydot
django-extensions django-extensions
django-environ
# PDF creating # PDF creating
django-hardcopy django-hardcopy

16
uncloud/.env-sample Normal file
View file

@ -0,0 +1,16 @@
ALLOWED_HOSTS=
STRIPE_KEY=
STRIPE_PUBLIC_KEY=
DATABASE_ENGINE=
DATABASE_NAME=
DATABASE_HOST=
DATABASE_PORT=
DATABASE_USER=
DATABASE_PASSWORD=
EMAIL_HOST=
EMAIL_HOST_USER=
EMAIL_HOST_PASSWORD=
GITLAB_SERVER=
GITLAB_OAUTH_TOKEN=
GITLAB_AUTHOR_EMAIL=
GITLAB_AUTHOR_NAME=

1
uncloud/.gitignore vendored
View file

@ -1,2 +1,3 @@
local_settings.py local_settings.py
ldap_max_uid_file ldap_max_uid_file
.env

View file

@ -14,6 +14,7 @@ import os
import re import re
import ldap import ldap
import sys import sys
import environ
from django.core.management.utils import get_random_secret_key from django.core.management.utils import get_random_secret_key
from django_auth_ldap.config import LDAPSearch, LDAPSearchUnion from django_auth_ldap.config import LDAPSearch, LDAPSearchUnion
@ -21,16 +22,25 @@ from django_auth_ldap.config import LDAPSearch, LDAPSearchUnion
LOGGING = {} LOGGING = {}
# Initialise environment variables
env = environ.Env()
environ.Env.read_env()
# 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__)))
sys.modules['fontawesome_free'] = __import__('fontawesome-free') sys.modules['fontawesome_free'] = __import__('fontawesome-free')
# https://docs.djangoproject.com/en/3.0/ref/settings/#databases # https://docs.djangoproject.com/en/3.0/ref/settings/#databases
DATABASES = { DATABASES = {
'default': { 'default': {
'ENGINE': 'django.db.backends.sqlite3', 'ENGINE': env('DATABASE_ENGINE'),
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 'NAME': env('DATABASE_NAME') if env('DATABASE_NAME') else os.path.join(BASE_DIR, 'db.sqlite3'),
'USER': env('DATABASE_USER'),
'PASSWORD': env('DATABASE_PASSWORD'),
'HOST': env('DATABASE_HOST'),
'PORT': env('DATABASE_PORT'),
} }
} }
@ -188,11 +198,11 @@ STATICFILES_FINDERS = [
] ]
#VM Deployment TEMPLATE #VM Deployment TEMPLATE
GITLAB_SERVER = 'https://code.ungleich.ch' GITLAB_SERVER = env('GITLAB_SERVER')
GITLAB_OAUTH_TOKEN = '' GITLAB_OAUTH_TOKEN = env('GITLAB_OAUTH_TOKEN')
GITLAB_PROJECT_ID = 388 GITLAB_PROJECT_ID = 388
GITLAB_AUTHOR_EMAIL = '' GITLAB_AUTHOR_EMAIL = env('GITLAB_AUTHOR_EMAIL')
GITLAB_AUTHOR_NAME = '' GITLAB_AUTHOR_NAME = env('GITLAB_AUTHOR_NAME')
GITLAB_YAML_DIR = '' GITLAB_YAML_DIR = ''
# XML-RPC interface of opennebula # XML-RPC interface of opennebula
@ -202,13 +212,13 @@ OPENNEBULA_URL = 'https://opennebula.example.com:2634/RPC2'
OPENNEBULA_USER_PASS = 'user:password' OPENNEBULA_USER_PASS = 'user:password'
# Stripe (Credit Card payments) # Stripe (Credit Card payments)
STRIPE_KEY="" STRIPE_KEY=env('STRIPE_KEY')
STRIPE_PUBLIC_KEY="" STRIPE_PUBLIC_KEY=env('STRIPE_PUBLIC_KEY')
BILL_PAYMENT_DELAY = 0 BILL_PAYMENT_DELAY = 0
# The django secret key # The django secret key
SECRET_KEY=get_random_secret_key() SECRET_KEY=get_random_secret_key()
ALLOWED_HOSTS = [] ALLOWED_HOSTS = env('ALLOWED_HOSTS')
# required for hardcopy / pdf rendering: https://github.com/loftylabs/django-hardcopy # required for hardcopy / pdf rendering: https://github.com/loftylabs/django-hardcopy
CHROME_PATH = '/usr/bin/chromium-browser' CHROME_PATH = '/usr/bin/chromium-browser'
@ -231,12 +241,12 @@ AUTH_LDAP_USER_SEARCH = LDAPSearch("dc=example,dc=com",
LDAP_CUSTOMER_DN="ou=customer,dc=example,dc=com" LDAP_CUSTOMER_DN="ou=customer,dc=example,dc=com"
EMAIL_USE_TLS = True EMAIL_USE_TLS = True
EMAIL_HOST = '' EMAIL_HOST = env('EMAIL_HOST')
EMAIL_PORT = 465 EMAIL_PORT = 25
EMAIL_HOST_USER = DEFAULT_FROM_EMAIL = '' EMAIL_HOST_USER = DEFAULT_FROM_EMAIL = env('EMAIL_HOST_USER')
EMAIL_HOST_PASSWORD = '' EMAIL_HOST_PASSWORD = env('EMAIL_HOST_PASSWORD')
DEFAULT_FROM_EMAIL = '' DEFAULT_FROM_EMAIL = 'support@ungleich.ch'
RENEWAL_FROM_EMAIL = 'test@example.com' RENEWAL_FROM_EMAIL = 'support@ungleich.ch'
# Should be removed in production # Should be removed in production
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'