This repository has been archived by the owner on Mar 8, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathproduction.py
129 lines (99 loc) · 3.41 KB
/
production.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
from .base import *
from ec2_tag_conditional.util import InstanceTags
import os
import raven
import socket
def get_env():
tags = InstanceTags()
server_env = None
if tags['Env']:
server_env = tags['Env']
if server_env not in ['test', 'prod', 'packer-ami-build']:
# if we can't work out our environment, don't attempt to guess
# fail to bootstrap the application and complain loudly about it
raise Exception('Failed to infer a valid environment')
return server_env
# settings that are the same across all instance types
DEBUG = False
TEMPLATE_DEBUG = DEBUG
SECRET_KEY = '{{ vault_django_secret }}'
RAVEN_CONFIG = {
'dsn': '{{ vault_sentry_dsn }}',
}
ADMINS = (
('DC developers', 'developers@democracyclub.org.uk'),
)
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': '{{ project_name }}',
'USER': '',
'PASSWORD': '',
'HOST': '',
'PORT': '',
},
}
DATABASE_ROUTERS = ['polling_stations.db_routers.LoggerRouter',]
STATIC_URL = 'https://s3-eu-west-1.amazonaws.com/pollingstations-assets2/{{ image_id.stdout }}/'
PIPELINE['SASS_BINARY'] = "/var/www/polling_stations/env/bin/sassc"
GOOGLE_API_KEYS = [
'{{ vault_google_maps_api_key1 }}',
#'{{ vault_google_maps_api_key2 }}',
#'{{ vault_google_maps_api_key3 }}',
]
EMAIL_SIGNUP_API_KEY = '{{ vault_email_signup_api_key }}'
CUSTOM_UA = "DemocracyClub/wheredoivote.co.uk"
# when you change this, remember to turn sync back on
# in roles/every_election/tasks/main.yml and
# deploy to a meatier instance than a t3.micro
# EE_BASE = 'http://localhost:8000/'
#NEXT_CHARISMATIC_ELECTION_DATE = "2019-05-23"
CACHES = {
"default": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://wdiv-micro-cache.5ww5u6.0001.euw1.cache.amazonaws.com:6379",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
}
}
}
# infer environment from the EC2 tags
SERVER_ENVIRONMENT = get_env()
# settings that are conditional on env
RAVEN_CONFIG['environment'] = SERVER_ENVIRONMENT
local_ip_addresses = [(s.connect(('8.8.8.8', 53)), s.getsockname()[0], s.close())[1] for s in [socket.socket(socket.AF_INET, socket.SOCK_DGRAM)]]
if SERVER_ENVIRONMENT == 'packer-ami-build':
ALLOWED_HOSTS = ['*']
if SERVER_ENVIRONMENT == 'test':
ALLOWED_HOSTS = local_ip_addresses + [
"stage.wheredoivote.co.uk",
]
if SERVER_ENVIRONMENT == 'prod':
ALLOWED_HOSTS = local_ip_addresses + [
{% for domain in domains %}
"{{ domain }}",
{% endfor %}
]
if SERVER_ENVIRONMENT == 'packer-ami-build':
PRIVATE_DATA_PATH = '{{ private_data_path }}'
if SERVER_ENVIRONMENT in ['prod', 'test']:
DATABASES['logger'] = {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'USER': 'polling_stations',
'PASSWORD': '{{ vault_logger_prod_password }}',
'HOST': 'logger-prod.c0jvejtwfveq.eu-west-1.rds.amazonaws.com',
'PORT': '5432',
}
if SERVER_ENVIRONMENT == 'prod':
DATABASES['logger']['NAME'] = 'logger_prod'
if SERVER_ENVIRONMENT == 'test':
DATABASES['logger']['NAME'] = 'logger_staging'
if SERVER_ENVIRONMENT == 'test':
BASICAUTH_DISABLE = False
BASICAUTH_REALM = 'Staging'
BASICAUTH_USERS = {
'staging': 'staging'
}
BASICAUTH_ALWAYS_ALLOW_URLS = [
r'^/status_check/$',
]