build: 将诸多配置项变为从环境变量读取,便于后续支持 Docker

DJANGO_DEBUG
DJANGO_SECRET_KEY
DJANGO_MYSQL_DATABASE
DJANGO_MYSQL_USER
DJANGO_MYSQL_PASSWORD
DJANGO_MYSQL_HOST
DJANGO_MYSQL_PORT

DJANGO_MEMCACHED_ENABLE
DJANGO_MEMCACHED_LOCATION
DJANGO_BAIDU_NOTIFY_URL

DJANGO_EMAIL_TLS
DJANGO_EMAIL_SSL
DJANGO_EMAIL_HOST
DJANGO_EMAIL_PORT
DJANGO_EMAIL_USER
DJANGO_EMAIL_PASSWORD
DJANGO_ADMIN_EMAIL
DJANGO_WXADMIN_PASSWORD
DJANGO_WEROBOT_TOKEN
sh_branch
stackia 6 years ago
parent d86f021afb
commit ecfca080f0

2
.gitignore vendored

@ -63,6 +63,8 @@ target/
.idea
.iml
# virtualenv
venv/
migrations/
!migrations/__init__.py

@ -12,17 +12,23 @@ https://docs.djangoproject.com/en/1.10/ref/settings/
import sys
import os
def env_to_bool(env, default):
str_val = os.environ.get(env)
return default if str_val is None else str_val == 'True'
# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.10/howto/deployment/checklist/
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'n9ceqv38)#&mwuat@(mjb_p%em$e8$qyr#fw9ot!=ba6lijx-6'
SECRET_KEY = os.environ.get('DJANGO_SECRET_KEY') or 'n9ceqv38)#&mwuat@(mjb_p%em$e8$qyr#fw9ot!=ba6lijx-6'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
DEBUG = env_to_bool('DJANGO_DEBUG', True)
# DEBUG = False
TESTING = len(sys.argv) > 1 and sys.argv[1] == 'test'
@ -98,11 +104,11 @@ WSGI_APPLICATION = 'DjangoBlog.wsgi.application'
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'djangoblog',
'USER': os.environ.get('DJANGO_MYSQL_USER'),
'PASSWORD': os.environ.get('DJANGO_MYSQL_PASSWORD'),
'HOST': os.environ.get('DJANGO_MYSQL_HOST'),
'PORT': 3306,
'NAME': os.environ.get('DJANGO_MYSQL_DATABASE') or 'djangoblog',
'USER': os.environ.get('DJANGO_MYSQL_USER') or 'root',
'PASSWORD': os.environ.get('DJANGO_MYSQL_PASSWORD') or 'djangoblog_123',
'HOST': os.environ.get('DJANGO_MYSQL_HOST') or '127.0.0.1',
'PORT': int(os.environ.get('DJANGO_MYSQL_PORT') or 3306),
'OPTIONS': {'charset': 'utf8mb4'},
}
}
@ -177,11 +183,10 @@ CACHE_CONTROL_MAX_AGE = 2592000
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': '127.0.0.1:11211',
'LOCATION': os.environ.get('DJANGO_MEMCACHED_LOCATION') or '127.0.0.1:11211',
'KEY_PREFIX': 'django_test' if TESTING else 'djangoblog',
'TIMEOUT': 60 * 60 * 10
},
'locmemcache': {
} if env_to_bool('DJANGO_MEMCACHED_ENABLE', True) else {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
'TIMEOUT': 10800,
'LOCATION': 'unique-snowflake',
@ -189,24 +194,23 @@ CACHES = {
}
SITE_ID = 1
BAIDU_NOTIFY_URL = "http://data.zz.baidu.com/urls?site=https://www.lylinux.net&token=1uAOGrMsUm5syDGn"
BAIDU_NOTIFY_URL = os.environ.get('DJANGO_BAIDU_NOTIFY_URL') \
or 'http://data.zz.baidu.com/urls?site=https://www.lylinux.net&token=1uAOGrMsUm5syDGn'
# Emial:
# Email:
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
# EMAIL_USE_TLS = True
EMAIL_USE_SSL = True
EMAIL_HOST = 'smtp.mxhichina.com'
EMAIL_PORT = 465
EMAIL_USE_TLS = env_to_bool('DJANGO_EMAIL_TLS', False)
EMAIL_USE_SSL = env_to_bool('DJANGO_EMAIL_SSL', True)
EMAIL_HOST = os.environ.get('DJANGO_EMAIL_HOST') or 'smtp.mxhichina.com'
EMAIL_PORT = int(os.environ.get('DJANGO_EMAIL_PORT') or 465)
EMAIL_HOST_USER = os.environ.get('DJANGO_EMAIL_USER')
EMAIL_HOST_PASSWORD = os.environ.get('DJANGO_EMAIL_PASSWORD')
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
SERVER_EMAIL = os.environ.get('DJANGO_EMAIL_USER')
SERVER_EMAIL = EMAIL_HOST_USER
# Setting debug=false did NOT handle except email notifications
ADMINS = [('admin', 'admin@admin.com')]
ADMINS = [('admin', os.environ.get('DJANGO_ADMIN_EMAIL') or 'admin@admin.com')]
# WX ADMIN password(Two times md5)
WXADMIN = '995F03AC401D6CABABAEF756FC4D43C7'
WXADMIN = os.environ.get('DJANGO_WXADMIN_PASSWORD') or '995F03AC401D6CABABAEF756FC4D43C7'
LOGGING = {
'version': 1,

@ -0,0 +1,21 @@
version: '3'
services:
mysql:
image: mysql:5.7
restart: always
environment:
MYSQL_ROOT_PASSWORD: djangoblog_123
MYSQL_DATABASE: djangoblog
volumes:
- mysql:/var/lib/mysql
ports:
- '3306:3306'
command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
memcached:
image: memcached:1.6-alpine
restart: always
ports:
- '11211:11211'
command: memcached -m 64
volumes:
mysql: ~

@ -26,7 +26,7 @@ from django.conf import settings
import jsonpickle
from servermanager.models import commands
robot = WeRoBot(token='lylinux', enable_session=True)
robot = WeRoBot(token=os.environ.get('DJANGO_WEROBOT_TOKEN') or 'lylinux', enable_session=True)
memstorage = MemcacheStorage()
if memstorage.is_available:
robot.config['SESSION_STORAGE'] = memstorage

Loading…
Cancel
Save