1 # Django settings for mygpo project.
3 # This file is part of my.gpodder.org.
5 # my.gpodder.org is free software: you can redistribute it and/or modify it
6 # under the terms of the GNU Affero General Public License as published by
7 # the Free Software Foundation, either version 3 of the License, or (at your
8 # option) any later version.
10 # my.gpodder.org is distributed in the hope that it will be useful, but
11 # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
12 # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
13 # License for more details.
15 # You should have received a copy of the GNU Affero General Public License
16 # along with my.gpodder.org. If not, see <http://www.gnu.org/licenses/>.
21 BASE_DIR
= os
.path
.dirname(os
.path
.abspath(__file__
))
23 # http://code.djangoproject.com/wiki/BackwardsIncompatibleChanges#ChangedthewayURLpathsaredetermined
27 TEMPLATE_DEBUG
= DEBUG
34 # not needed for production, but tests fail otherwise in Django 1.4
37 'ENGINE': 'django.db.backends.sqlite3',
44 {'URL': 'http://127.0.0.1:5984/mygpo'},
47 {'URL': 'http://127.0.0.1:5984/mygpo'},
50 {'URL': 'http://127.0.0.1:5984/mygpo'},
53 {'URL': 'http://127.0.0.1:5984/mygpo'},
56 {'URL': 'http://127.0.0.1:5984/mygpo'},
59 {'URL': 'http://127.0.0.1:5984/mygpo'},
62 {'URL': 'http://127.0.0.1:5984/mygpo_pubsub'},
64 'django_couchdb_utils_auth':
65 {'URL': 'http://127.0.0.1:5984/mygpo'},
67 'django_couchdb_utils_sessions':
68 {'URL': 'http://127.0.0.1:5984/mygpo_sessions'},
70 'django_couchdb_utils_registration':
71 {'URL': 'http://127.0.0.1:5984/mygpo'},
74 {'URL': 'http://127.0.0.1:5984/mygpo_categories'},
77 # Maps design documents to databases. The keys correspond to the directories in
78 # mygpo/couch/, the values are the app labels which are mapped to the actual
79 # databases in COUCHDB_DATABASES. This indirect mapping is used because
80 # COUCHDB_DATABASES is likely to be overwritten in settings_prod.py while
81 # COUCHDB_DDOC_MAPPING is most probably not overwritten.
82 COUCHDB_DDOC_MAPPING
= {
84 'categories': 'categories',
88 # Local time zone for this installation. Choices can be found here:
89 # http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
90 # although not all choices may be available on all operating systems.
91 # If running in a Windows environment this must be set to the same as your
95 # Language code for this installation. All choices can be found here:
96 # http://www.i18nguy.com/unicode/language-identifiers.html
97 LANGUAGE_CODE
= 'en-us'
101 # If you set this to False, Django will make some optimizations so as not
102 # to load the internationalization machinery.
105 STATIC_ROOT
= 'staticfiles'
106 STATIC_URL
= '/media/'
109 os
.path
.abspath(os
.path
.join(BASE_DIR
, '..', 'htdocs', 'media')),
112 # List of callables that know how to import templates from various sources.
114 'django.template.loaders.app_directories.Loader',
117 MIDDLEWARE_CLASSES
= (
118 'django.middleware.cache.UpdateCacheMiddleware',
119 'django.middleware.common.CommonMiddleware',
120 'django.middleware.csrf.CsrfViewMiddleware',
121 'django.middleware.cache.FetchFromCacheMiddleware',
122 'django.contrib.sessions.middleware.SessionMiddleware',
123 'django.contrib.auth.middleware.AuthenticationMiddleware',
124 'django.middleware.locale.LocaleMiddleware',
125 'django.contrib.messages.middleware.MessageMiddleware',
128 ROOT_URLCONF
= 'mygpo.urls'
133 'django.contrib.contenttypes', # unused, but tests fail otherwise (?)
134 'django.contrib.messages',
135 'django.contrib.humanize',
136 'django.contrib.staticfiles',
137 'couchdbkit.ext.django',
138 'django_couchdb_utils.auth',
139 'django_couchdb_utils.sessions',
140 'django_couchdb_utils.registration',
161 TEST_RUNNER
='mygpo.test.MygpoTestSuiteRunner'
163 ACCOUNT_ACTIVATION_DAYS
= 7
165 AUTHENTICATION_BACKENDS
= (
166 'django_couchdb_utils.auth.backends.CouchDBAuthBackend',
167 'mygpo.web.auth.EmailAuthenticationBackend',
170 SESSION_ENGINE
= "django_couchdb_utils.sessions.cached_couchdb"
172 TEMPLATE_CONTEXT_PROCESSORS
= (
173 "django.contrib.auth.context_processors.auth",
174 "django.core.context_processors.debug",
175 "django.core.context_processors.i18n",
176 "django.core.context_processors.media",
177 "django.contrib.messages.context_processors.messages",
178 "mygpo.web.google.analytics",
179 "mygpo.web.google.adsense",
182 MESSAGE_STORAGE
= 'django.contrib.messages.storage.session.SessionStorage'
184 USER_CLASS
= 'mygpo.users.models.User'
186 LOGIN_URL
= '/login/'
188 CSRF_FAILURE_VIEW
='mygpo.web.views.security.csrf_failure'
191 # The following entries should be set in settings_prod.py
192 DEFAULT_FROM_EMAIL
= ''
194 GOOGLE_ANALYTICS_PROPERTY_ID
=''
195 DIRECTORY_EXCLUDED_TAGS
= ()
198 MAINTENANCE
= os
.path
.exists(os
.path
.join(BASE_DIR
, 'MAINTENANCE'))
200 EMAIL_BACKEND
= 'django_couchdb_utils.email.backends.CouchDBEmailBackend'
205 'disable_existing_loggers': True,
208 'format': '%(asctime)s %(name)s %(levelname)s %(message)s',
212 'require_debug_false': {
213 '()': 'django.utils.log.RequireDebugFalse'
219 'class': 'logging.StreamHandler',
220 'formatter': 'verbose'
224 'filters': ['require_debug_false'],
225 'class': 'django.utils.log.AdminEmailHandler'
230 'handlers': ['console'],
235 'handlers': ['console'],
241 # minimum number of subscribers a podcast must have to be assigned a slug
242 PODCAST_SLUG_SUBSCRIBER_LIMIT
= 10
244 # minimum number of subscribers that a podcast needs to "push" one of its
245 # categories to the top
246 MIN_SUBSCRIBERS_CATEGORY
=10
248 # maximum number of episode actions that the API processes immediatelly before
249 # returning the response. Larger requests will be handled in background.
250 # Handler can be set to None to disable
251 API_ACTIONS_MAX_NONBG
=100
252 API_ACTIONS_BG_HANDLER
='mygpo.api.tasks.episode_actions_celery_handler'
256 ADSENSE_SLOT_BOTTOM
= ''
258 # enabled access to staff-only areas with ?staff=<STAFF_TOKEN>
261 # Flattr settings -- available after you register your app
265 # Flattr thing of the webservice. Will be flattr'd when a user sets the "Auto-Flattr gpodder.net" option
266 FLATTR_MYGPO_THING
='https://flattr.com/submit/auto?user_id=stefankoegl&url=http://gpodder.net'
268 # The User-Agent string used for outgoing HTTP requests
269 USER_AGENT
= 'gpodder.net (+https://github.com/gpodder/mygpo)'
271 # Base URL of the website that is used if the actually used parameters is not
272 # available. Request handlers, for example, can access the requested domain.
273 # Code that runs in background can not do this, and therefore requires a
274 # default value. This should be set to something like 'http://example.com'
275 DEFAULT_BASE_URL
= ''
280 BROKER_URL
='redis://localhost'
281 BACKEND_URL
='redis://localhost'
284 # a dictionary containing celery settings from
285 # http://docs.celeryproject.org/en/latest/configuration.html
287 CELERY_SEND_TASK_ERROR_EMAILS
= True,
289 SERVER_EMAIL
= "no-reply@example.com",
296 GOOGLE_CLIENT_SECRET
=''
301 from settings_prod
import *
302 except ImportError, e
:
304 print >> sys
.stderr
, 'create settings_prod.py with your customized settings'