1
0
Fork 0

Merge pull request #172 from satnogs/settings

Simplify settings
merge-requests/174/head
Nikos Roussos 2017-05-08 19:29:13 +03:00 committed by GitHub
commit 892e4991bd
13 changed files with 55 additions and 164 deletions

View File

@ -1,5 +1,5 @@
# dev, production, etc
DJANGO_SETTINGS_MODULE=db.settings.dev
ENVIRONMENT=dev
DEBUG=True
# Email
DEFAULT_FROM_EMAIL=noreply@example.com
@ -9,6 +9,7 @@ ADMINS_FROM_EMAIL=noreply@example.com
# Security
SECRET_KEY=changeme
ALLOWED_HOSTS=*
SITE_URL=http://localhost:8000
# Database
DATABASE_URL=sqlite:///db.sqlite3
@ -18,6 +19,5 @@ OPBEAT_ORGID=
OPBEAT_APPID=
OPBEAT_SECRET=
GOOGLE_ANALYTICS_KEY=
MAPBOX_MAP_ID=
MAPBOX_TOKEN=

View File

@ -134,7 +134,7 @@ def suggestion(request):
admins = User.objects.filter(is_superuser=True)
site = get_current_site(request)
subject = '[{0}] A new suggestion was submitted'.format(site.name)
template = 'emails/exported_frames.txt'
template = 'emails/new_suggestion.txt'
saturl = '{0}{1}'.format(
site.domain,
reverse('satellite', kwargs={'norad': suggestion.satellite.norad_cat_id})

View File

@ -1,13 +1,10 @@
from __future__ import absolute_import
import os
import dotenv
from celery import Celery
dotenv.read_dotenv()
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'db.settings.production')
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'db.settings')
from django.conf import settings # noqa

View File

@ -3,6 +3,9 @@ import dj_database_url
BASE_DIR = path.dirname(path.dirname(__file__))
ENVIRONMENT = getenv('ENVIRONMENT', 'production')
DEBUG = getenv('DEBUG', False)
# Apps
DJANGO_APPS = (
'django.contrib.auth',
@ -22,13 +25,12 @@ THIRD_PARTY_APPS = (
'crispy_forms',
'compressor',
'csp',
'opbeat.contrib.django',
)
LOCAL_APPS = (
'db.base',
'db.api',
)
BOWER_INSTALLED_APPS = (
)
INSTALLED_APPS = DJANGO_APPS + THIRD_PARTY_APPS + LOCAL_APPS
@ -41,23 +43,37 @@ MIDDLEWARE_CLASSES = (
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'csp.middleware.CSPMiddleware',
'opbeat.contrib.django.middleware.OpbeatAPMMiddleware',
'opbeat.contrib.django.middleware.Opbeat404CatchMiddleware',
)
# Email
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
if DEBUG:
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
else:
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'localhost'
EMAIL_PORT = 25
EMAIL_TIMEOUT = 300
DEFAULT_FROM_EMAIL = getenv('DEFAULT_FROM_EMAIL', 'noreply@satnogs.org')
ADMINS = (
(
getenv('ADMINS_FROM_NAME', 'ADMINS'),
getenv('ADMINS_FROM_EMAIL', 'noreply@example.com')
getenv('ADMINS_FROM_NAME', 'SatNOGS Admins'),
getenv('ADMINS_FROM_EMAIL', DEFAULT_FROM_EMAIL)
),
)
MANAGERS = ADMINS
SERVER_EMAIL = DEFAULT_FROM_EMAIL
# Cache
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
'LOCATION': 'unique-snowflake'
'BACKEND': getenv('CACHE_BACKEND', 'django.core.cache.backends.locmem.LocMemCache'),
'LOCATION': getenv('CACHE_LOCATION', 'unique-snowflake'),
'OPTIONS': {
'CLIENT_CLASS': getenv('CACHE_CLIENT_CLASS', None),
},
'KEY_PREFIX': 'db-{0}'.format(ENVIRONMENT),
}
}
CACHE_TTL = int(getenv('CACHE_TTL', 300))
@ -74,7 +90,7 @@ USE_TZ = True
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [path.join(BASE_DIR, 'templates')],
'DIRS': [path.join(BASE_DIR, 'db/templates')],
'OPTIONS': {
'debug': False,
'context_processors': [
@ -102,7 +118,7 @@ TEMPLATES = [
STATIC_ROOT = path.join(path.dirname(BASE_DIR), 'staticfiles')
STATIC_URL = '/static/'
STATICFILES_DIRS = (
path.join(BASE_DIR, 'static'),
path.join(BASE_DIR, 'db/static'),
)
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
@ -188,6 +204,9 @@ CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_SEND_TASK_ERROR_EMAILS = True
CELERY_TASK_ALWAYS_EAGER = True
CELERY_DEFAULT_QUEUE = 'db-{0}-queue'.format(ENVIRONMENT)
CELERY_BROKER_URL = getenv('CELERY_BROKER_URL', 'redis://redis:6379/0')
CELERY_RESULT_BACKEND = getenv('CELERY_RESULT_BACKEND', 'redis://redis:6379/0')
# API
REST_FRAMEWORK = {
@ -218,6 +237,13 @@ CSP_IMG_SRC = (
'https://*.mapbox.com',
'https://*.google-analytics.com',
)
SECURE_HSTS_SECONDS = getenv('SECURE_HSTS_SECONDS', 31536000)
SECURE_HSTS_INCLUDE_SUBDOMAINS = True
SECURE_CONTENT_TYPE_NOSNIFF = True
SECURE_BROWSER_XSS_FILTER = True
ALLOWED_HOSTS = [
getenv('ALLOWED_HOSTS', '*')
]
# Database
DATABASE_URL = getenv('DATABASE_URL', 'sqlite:///db.sqlite3')
@ -233,3 +259,10 @@ SATELLITE_POSITION_ENDPOINT = getenv('SATELLITE_POSITION_ENDPOINT',
MAPBOX_GEOCODE_URL = 'https://api.tiles.mapbox.com/v4/geocode/mapbox.places/'
MAPBOX_MAP_ID = getenv('MAPBOX_MAP_ID', '')
MAPBOX_TOKEN = getenv('MAPBOX_TOKEN', '')
# Metrics
OPBEAT = {
'ORGANIZATION_ID': getenv('OPBEAT_ORGID', None),
'APP_ID': getenv('OPBEAT_APPID', None),
'SECRET_TOKEN': getenv('OPBEAT_SECRET', None),
}

View File

@ -1,11 +0,0 @@
from base import * # flake8: noqa
ENVIRONMENT = 'dev'
# Debug
DEBUG = True
# Mail
EMAIL_HOST = 'localhost'
EMAIL_PORT = 1025
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'

View File

@ -1,28 +0,0 @@
from base import * # flake8: noqa
ENVIRONMENT = 'dev'
# Debug
DEBUG = True
# Mail
EMAIL_HOST = 'localhost'
EMAIL_PORT = 1025
EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend'
# Cache
CACHES = {
'default': {
'BACKEND': 'redis_cache.RedisCache',
'LOCATION': 'redis://redis:6379/0',
'OPTIONS': {
'CLIENT_CLASS': 'django_redis.client.DefaultClient'
},
'KEY_PREFIX': 'db-{0}'.format(ENVIRONMENT)
}
}
# Celery
CELERY_DEFAULT_QUEUE = 'db-{0}-queue'.format(ENVIRONMENT)
CELERY_BROKER_URL = getenv('CELERY_BROKER_URL', 'redis://redis:6379/0')
CELERY_RESULT_BACKEND = getenv('CELERY_RESULT_BACKEND', 'redis://redis:6379/0')

View File

@ -1,53 +0,0 @@
import os
from base import * # flake8: noqa
ENVIRONMENT = 'production'
# Opbeat
MIDDLEWARE_CLASSES = MIDDLEWARE_CLASSES + (
'opbeat.contrib.django.middleware.OpbeatAPMMiddleware',
'opbeat.contrib.django.middleware.Opbeat404CatchMiddleware',
)
INSTALLED_APPS = INSTALLED_APPS + (
'opbeat.contrib.django',
)
# Cache
CACHES = {
'default': {
'BACKEND': 'redis_cache.RedisCache',
'LOCATION': 'unix://var/run/redis/redis.sock',
'OPTIONS': {
'CLIENT_CLASS': 'django_redis.client.DefaultClient'
},
'KEY_PREFIX': 'db-{0}'.format(ENVIRONMENT)
}
}
# Celery
CELERY_DEFAULT_QUEUE = 'db-{0}-queue'.format(ENVIRONMENT)
CELERY_BROKER_URL = getenv('CELERY_BROKER_URL', 'unix://var/run/redis/redis.sock')
CELERY_RESULT_BACKEND = getenv('CELERY_RESULT_BACKEND', 'unix://var/run/redis/redis.sock')
# Security
SECURE_HSTS_SECONDS = 60
SECURE_HSTS_INCLUDE_SUBDOMAINS = True
SECURE_CONTENT_TYPE_NOSNIFF = True
SECURE_BROWSER_XSS_FILTER = True
ALLOWED_HOSTS = [
os.getenv('ALLOWED_HOSTS', '*')
]
# Email
EMAIL_HOST = 'localhost'
EMAIL_PORT = 25
EMAIL_TIMEOUT = 300
DEFAULT_FROM_EMAIL = os.getenv('DEFAULT_FROM_EMAIL', 'noreply@example.com')
SERVER_EMAIL = DEFAULT_FROM_EMAIL
# Metrics
OPBEAT = {
'ORGANIZATION_ID': os.getenv('OPBEAT_ORGID', None),
'APP_ID': os.getenv('OPBEAT_APPID', None),
'SECRET_TOKEN': os.getenv('OPBEAT_SECRET', None),
}

View File

@ -1,49 +0,0 @@
import os
from base import * # flake8: noqa
ENVIRONMENT = 'stage'
# Opbeat
MIDDLEWARE_CLASSES = MIDDLEWARE_CLASSES + (
'opbeat.contrib.django.middleware.OpbeatAPMMiddleware',
'opbeat.contrib.django.middleware.Opbeat404CatchMiddleware',
)
INSTALLED_APPS = INSTALLED_APPS + (
'opbeat.contrib.django',
)
# Cache
CACHES = {
'default': {
'BACKEND': 'redis_cache.RedisCache',
'LOCATION': 'unix://var/run/redis/redis.sock',
'OPTIONS': {
'CLIENT_CLASS': 'django_redis.client.DefaultClient'
},
'KEY_PREFIX': 'db-{0}'.format(ENVIRONMENT)
}
}
# Celery
CELERY_DEFAULT_QUEUE = 'db-{0}-queue'.format(ENVIRONMENT)
CELERY_BROKER_URL = getenv('CELERY_BROKER_URL', 'redis+socket:///var/run/redis/redis.sock')
CELERY_RESULT_BACKEND = getenv('CELERY_RESULT_BACKEND', 'redis+socket:///var/run/redis/redis.sock')
# Security
ALLOWED_HOSTS = [
os.getenv('ALLOWED_HOSTS', '*')
]
# Mail
EMAIL_HOST = 'localhost'
EMAIL_PORT = 25
EMAIL_TIMEOUT = 300
DEFAULT_FROM_EMAIL = os.getenv('DEFAULT_FROM_EMAIL', 'noreply@example.com')
SERVER_EMAIL = DEFAULT_FROM_EMAIL
# Metrics
OPBEAT = {
'ORGANIZATION_ID': os.getenv('OPBEAT_ORGID', None),
'APP_ID': os.getenv('OPBEAT_APPID', None),
'SECRET_TOKEN': os.getenv('OPBEAT_SECRET', None),
}

View File

@ -1,6 +1,9 @@
#!/usr/bin/env python
import os
import dotenv
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'db.settings')
dotenv.read_dotenv(dotenv='.env')
application = get_wsgi_application()

View File

@ -30,9 +30,8 @@ web:
- redis
- celery
environment:
- DJANGO_SETTINGS_MODULE=db.settings.docker
- DEFAULT_FROM_EMAIL=noreply@example.com
- ALLOWED_HOSTS=*
- ENVIRONMENT=stage
- DEBUG=True
- DATABASE_URL=mysql://satnogsdb:satnogsdb@db/satnogsdb
command:
./docker/run-web.sh

View File

@ -1,11 +1,11 @@
#!/usr/bin/env python
import os
import sys
import dotenv
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'db.settings')
if __name__ == "__main__":
dotenv.read_dotenv()
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)

View File

@ -1,4 +1,4 @@
[pytest]
addopts = -v --cov --cov-report term-missing
python_files = tests.py
DJANGO_SETTINGS_MODULE=db.settings.dev
DJANGO_SETTINGS_MODULE=db.settings