basing the django project on rdegges' django-skel
[oweals/karmaworld.git] / karmaworld / settings / prod.py
1 """Production settings and globals."""
2
3
4 from os import environ
5
6 from memcacheify import memcacheify
7 from postgresify import postgresify
8 from S3 import CallingFormat
9
10 from common import *
11
12
13 ########## EMAIL CONFIGURATION
14 # See: https://docs.djangoproject.com/en/dev/ref/settings/#email-backend
15 EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
16
17 # See: https://docs.djangoproject.com/en/dev/ref/settings/#email-host
18 EMAIL_HOST = environ.get('EMAIL_HOST', 'smtp.gmail.com')
19
20 # See: https://docs.djangoproject.com/en/dev/ref/settings/#email-host-password
21 EMAIL_HOST_PASSWORD = environ.get('EMAIL_HOST_PASSWORD', '')
22
23 # See: https://docs.djangoproject.com/en/dev/ref/settings/#email-host-user
24 EMAIL_HOST_USER = environ.get('EMAIL_HOST_USER', 'your_email@example.com')
25
26 # See: https://docs.djangoproject.com/en/dev/ref/settings/#email-port
27 EMAIL_PORT = environ.get('EMAIL_PORT', 587)
28
29 # See: https://docs.djangoproject.com/en/dev/ref/settings/#email-subject-prefix
30 EMAIL_SUBJECT_PREFIX = '[%s] ' % SITE_NAME
31
32 # See: https://docs.djangoproject.com/en/dev/ref/settings/#email-use-tls
33 EMAIL_USE_TLS = True
34
35 # See: https://docs.djangoproject.com/en/dev/ref/settings/#server-email
36 SERVER_EMAIL = EMAIL_HOST_USER
37 ########## END EMAIL CONFIGURATION
38
39
40 ########## DATABASE CONFIGURATION
41 DATABASES = postgresify()
42 ########## END DATABASE CONFIGURATION
43
44
45 ########## CACHE CONFIGURATION
46 # See: https://docs.djangoproject.com/en/dev/ref/settings/#caches
47 CACHES = memcacheify()
48 ########## END CACHE CONFIGURATION
49
50
51 ########## CELERY CONFIGURATION
52 # See: http://docs.celeryproject.org/en/latest/configuration.html#broker-transport
53 BROKER_TRANSPORT = 'amqplib'
54
55 # Set this number to the amount of allowed concurrent connections on your AMQP
56 # provider, divided by the amount of active workers you have.
57 #
58 # For example, if you have the 'Little Lemur' CloudAMQP plan (their free tier),
59 # they allow 3 concurrent connections. So if you run a single worker, you'd
60 # want this number to be 3. If you had 3 workers running, you'd lower this
61 # number to 1, since 3 workers each maintaining one open connection = 3
62 # connections total.
63 #
64 # See: http://docs.celeryproject.org/en/latest/configuration.html#broker-pool-limit
65 BROKER_POOL_LIMIT = 3
66
67 # See: http://docs.celeryproject.org/en/latest/configuration.html#broker-connection-max-retries
68 BROKER_CONNECTION_MAX_RETRIES = 0
69
70 # See: http://docs.celeryproject.org/en/latest/configuration.html#broker-url
71 BROKER_URL = environ.get('RABBITMQ_URL') or environ.get('CLOUDAMQP_URL')
72
73 # See: http://docs.celeryproject.org/en/latest/configuration.html#celery-result-backend
74 CELERY_RESULT_BACKEND = 'amqp'
75 ########## END CELERY CONFIGURATION
76
77
78 ########## STORAGE CONFIGURATION
79 # See: http://django-storages.readthedocs.org/en/latest/index.html
80 INSTALLED_APPS += (
81     'storages',
82 )
83
84 # See: http://django-storages.readthedocs.org/en/latest/backends/amazon-S3.html#settings
85 STATICFILES_STORAGE = DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
86
87 # See: http://django-storages.readthedocs.org/en/latest/backends/amazon-S3.html#settings
88 AWS_CALLING_FORMAT = CallingFormat.SUBDOMAIN
89
90 # See: http://django-storages.readthedocs.org/en/latest/backends/amazon-S3.html#settings
91 AWS_ACCESS_KEY_ID = environ.get('AWS_ACCESS_KEY_ID', '')
92 AWS_SECRET_ACCESS_KEY = environ.get('AWS_SECRET_ACCESS_KEY', '')
93 AWS_STORAGE_BUCKET_NAME = environ.get('AWS_STORAGE_BUCKET_NAME', '')
94 AWS_AUTO_CREATE_BUCKET = True
95 AWS_QUERYSTRING_AUTH = False
96
97 # AWS cache settings, don't change unless you know what you're doing:
98 AWS_EXPIREY = 60 * 60 * 24 * 7
99 AWS_HEADERS = {
100     'Cache-Control': 'max-age=%d, s-maxage=%d, must-revalidate' % (AWS_EXPIREY,
101         AWS_EXPIREY)
102 }
103
104 # See: https://docs.djangoproject.com/en/dev/ref/settings/#static-url
105 STATIC_URL = 'https://s3.amazonaws.com/%s/' % AWS_STORAGE_BUCKET_NAME
106 ########## END STORAGE CONFIGURATION
107
108
109 ########## COMPRESSION CONFIGURATION
110 # See: http://django_compressor.readthedocs.org/en/latest/settings/#django.conf.settings.COMPRESS_OFFLINE
111 COMPRESS_OFFLINE = True
112
113 # See: http://django_compressor.readthedocs.org/en/latest/settings/#django.conf.settings.COMPRESS_STORAGE
114 COMPRESS_STORAGE = DEFAULT_FILE_STORAGE
115
116 # See: http://django_compressor.readthedocs.org/en/latest/settings/#django.conf.settings.COMPRESS_CSS_FILTERS
117 COMPRESS_CSS_FILTERS += [
118     'compressor.filters.cssmin.CSSMinFilter',
119 ]
120
121 # See: http://django_compressor.readthedocs.org/en/latest/settings/#django.conf.settings.COMPRESS_JS_FILTERS
122 COMPRESS_JS_FILTERS += [
123     'compressor.filters.jsmin.JSMinFilter',
124 ]
125 ########## END COMPRESSION CONFIGURATION
126
127
128 ########## SECRET CONFIGURATION
129 # See: https://docs.djangoproject.com/en/dev/ref/settings/#secret-key
130 SECRET_KEY = environ.get('SECRET_KEY', SECRET_KEY)
131 ########## END SECRET CONFIGURATION