change settings to read from environment variables

v1-0-stable
Christian Merten 9 years ago
parent d858e0a081
commit e2ad6c5385

@ -12,6 +12,8 @@ https://docs.djangoproject.com/en/1.10/ref/settings/
import os import os
deployed = '1' == os.environ.get('DJANGO_DEPLOY', '0')
# 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__)))
@ -20,17 +22,22 @@ BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# See https://docs.djangoproject.com/en/1.10/howto/deployment/checklist/ # See https://docs.djangoproject.com/en/1.10/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 = '6_ew6l1r9_4(8=p8quv(e8b+z+k+*wm7&zxx%mcnnec99a!lpw' SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY',
'6_ew6l1r9_4(8=p8quv(e8b+z+k+*wm7&zxx%mcnnec99a!lpw')
# SECURITY WARNING: don't run with debug turned on in production! # SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True DEBUG = True
ALLOWED_HOSTS = [] ALLOWED_HOSTS = [os.environ.get('DJANGO_ALLOWED_HOST', ''),]
# Define media paths e.g. for image storage # Define media paths e.g. for image storage
MEDIA_ROOT = os.path.join((os.path.join(BASE_DIR, os.pardir)), "media") MEDIA_ROOT = os.path.join((os.path.join(BASE_DIR, os.pardir)), "media")
MEDIA_URL = '/media/' MEDIA_URL = '/media/'
# x forward
USE_X_FORWARDED_HOST = True
# Application definition # Application definition
INSTALLED_APPS = [ INSTALLED_APPS = [
@ -84,10 +91,11 @@ WSGI_APPLICATION = 'jdav_web.wsgi.application'
DATABASES = { DATABASES = {
'default': { 'default': {
'ENGINE': 'django.db.backends.mysql', 'ENGINE': 'django.db.backends.mysql',
'NAME': 'jdav_db', 'NAME': os.environ.get('DJANGO_DATABASE_NAME', 'jdav_db'),
'USER': 'jdav_user', 'OPTIONS': {
'PASSWORD': 'jdav00jdav', 'read_default_file': os.environ.get('DJANGO_DATABASE_CONFIG',
'HOST': 'localhost' os.path.join(BASE_DIR, 'my.cnf'))
},
} }
} }
@ -135,7 +143,8 @@ STATICFILES_DIRS = [
# static root where all the static files are collected to # static root where all the static files are collected to
# use python3 manage.py collectstatic to collect static files in the STATIC_ROOT # use python3 manage.py collectstatic to collect static files in the STATIC_ROOT
# this is needed for deployment # this is needed for deployment
STATIC_ROOT = os.path.join((os.path.join(BASE_DIR, os.pardir)), "static") STATIC_ROOT = os.environ.get('DJANGO_STATIC_ROOT',
os.path.join((os.path.join(BASE_DIR, os.pardir)), "static"))
# Locale files (translations) # Locale files (translations)
@ -146,7 +155,7 @@ LOCALE_PATHS = (os.path.join(BASE_DIR, 'locale'),)
# Email setup # Email setup
EMAIL_HOST = 'localhost' EMAIL_HOST = 'localhost'
EMAIL_PORT = 25 EMAIL_PORT = 587 if deployed else 25
EMAIL_HOST_USER = '' EMAIL_HOST_USER = os.environ.get('EMAIL_HOST_USER', '')
EMAIL_HOST_PASSWORD = '' EMAIL_HOST_PASSWORD = os.environ.get('EMAIL_HOST_PASSWORD', '')
EMAIL_USE_TLS = False EMAIL_USE_TLS = True if deployed else False

@ -1,8 +1,10 @@
from django.core import mail from django.core import mail
from django.core.mail import EmailMessage from django.core.mail import EmailMessage
import os
NOT_SENT, SENT, PARTLY_SENT = 0, 1, 2 NOT_SENT, SENT, PARTLY_SENT = 0, 1, 2
HOST = os.environ.get('DJANGO_ALLOWED_HOST', 'localhost:8000')
def send(subject, content, sender, recipients, reply_to=None, def send(subject, content, sender, recipients, reply_to=None,
@ -34,7 +36,7 @@ def send(subject, content, sender, recipients, reply_to=None,
def get_content(content): def get_content(content):
# TODO: generate right url here # TODO: generate right url here
url = "localhost:8000/newsletter/unsubscribe" url = "https://{}/newsletter/unsubscribe".format(HOST)
text = "{}\n\nDiese Email wurde über die Webseite der JDAV Ludwigsburg"\ text = "{}\n\nDiese Email wurde über die Webseite der JDAV Ludwigsburg"\
" verschickt. Wenn du in Zukunft keine Emails mehr erhalten möchtest,"\ " verschickt. Wenn du in Zukunft keine Emails mehr erhalten möchtest,"\
" kannst du hier den Newsletter deabonnieren.\n\n{}"\ " kannst du hier den Newsletter deabonnieren.\n\n{}"\
@ -44,9 +46,8 @@ def get_content(content):
def get_unsubscribe_link(member): def get_unsubscribe_link(member):
key = member.generate_key() key = member.generate_key()
print("generating key for", member, key)
# TODO: generate right url here # TODO: generate right url here
return "localhost:8000/newsletter/unsubscribe?key={}".format(key) return "https://{}/newsletter/unsubscribe?key={}".format(HOST, key)
mail_root = "christian@localhost" mail_root = os.environ.get('EMAIL_SENDING_ADDRESS', 'christian@localhost')

@ -3,12 +3,12 @@ from django.core.exceptions import ValidationError
from django import forms from django import forms
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
from django.utils.translation import ugettext from django.utils.translation import ugettext
from .mailutils import send, get_content, SENT, PARTLY_SENT from .mailutils import send, get_content, SENT, PARTLY_SENT, mail_root
import os import os
# this is the mail address that is used to send mails # this is the mail address that is used to send mails
SENDING_ADDRESS = "jdav-lb@gmx.de" SENDING_ADDRESS = mail_root
class RestrictedFileField(models.FileField): class RestrictedFileField(models.FileField):

Loading…
Cancel
Save