/
default.py
233 lines (198 loc) · 8.34 KB
/
default.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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
# -*- coding: utf-8 -*-
"""
flaskbb.configs.default
~~~~~~~~~~~~~~~~~~~~~~~
This is the default configuration for FlaskBB that every site should have.
You can override these configuration variables in another class.
:copyright: (c) 2014 by the FlaskBB Team.
:license: BSD, see LICENSE for more details.
"""
import os
import sys
import datetime
class DefaultConfig(object):
# Get the app root path
# <_basedir>
# ../../ --> flaskbb/flaskbb/configs/base.py
basedir = os.path.join(os.path.abspath(os.path.dirname(os.path.dirname(
os.path.dirname(__file__)))))
# Python version
py_version = '{0.major}{0.minor}'.format(sys.version_info)
# Flask Settings
# ------------------------------
# There is a whole bunch of more settings available here:
# http://flask.pocoo.org/docs/0.11/config/#builtin-configuration-values
DEBUG = False
TESTING = False
# Server Name
# The name and port number of the server.
# Required for subdomain support (e.g.: 'myapp.dev:5000') and
# URL generation without a request context but with an application context
# which we need in order to generate URLs (with the celery application)
# Note that localhost does not support subdomains so setting this to
# “localhost” does not help.
# Example for the FlaskBB forums: SERVER_NAME = "forums.flaskbb.org"
#SERVER_NAME =
# The preferred url scheme. In a productive environment it is highly
# recommended to use 'https'.
# This only affects the url generation with 'url_for'.
PREFERRED_URL_SCHEME = "http"
# Logging Settings
# ------------------------------
# This config section will deal with the logging settings
# for FlaskBB, adjust as needed.
# Logging Config Path
# see https://docs.python.org/library/logging.config.html#logging.config.fileConfig
# for more details. Should either be None or a path to a file
# If this is set to a path, consider setting USE_DEFAULT_LOGGING to False
# otherwise there may be interactions between the log configuration file
# and the default logging setting.
#
# If set to a file path, this should be an absolute file path
LOG_CONF_FILE = None
# When set to True this will enable the default
# FlaskBB logging configuration which uses the settings
# below to determine logging
USE_DEFAULT_LOGGING = True
# Log format FlaskBB will use
LOG_FORMAT = '%(asctime)s %(levelname)s: %(message)s [in %(pathname)s:%(lineno)d]'
# Log level FlaskBB will use
LOG_LEVEL = "INFO"
# If SEND_LOGS is set to True, the admins (see the mail configuration) will
# recieve the error logs per email.
SEND_LOGS = False
# Path to store the INFO and ERROR logs
# If None this defaults to flaskbb/logs
#
# If set to a file path, this should be an absolute path
LOG_PATH = None
# The filename for the info and error logs. The logfiles are stored
# at the path specified in LOG_PATH
INFO_LOG = "info.log"
ERROR_LOG = "error.log"
# Database
# ------------------------------
# For PostgresSQL:
#SQLALCHEMY_DATABASE_URI = "postgresql://flaskbb@localhost:5432/flaskbb"
# For SQLite:
SQLALCHEMY_DATABASE_URI = 'sqlite:///' + basedir + '/' + \
'flaskbb.sqlite'
# This option will be removed as soon as Flask-SQLAlchemy removes it.
# At the moment it is just used to suppress the super annoying warning
SQLALCHEMY_TRACK_MODIFICATIONS = False
# This will print all SQL statements
SQLALCHEMY_ECHO = False
ALEMBIC = {
'script_location': os.path.join(basedir, "migrations"),
'version_locations': '',
'file_template': '%%(year)d%%(month).2d%%(day).2d%%(hour).2d%%(minute).2d_%%(rev)s_%%(slug)s'
}
ALEMBIC_CONTEXT = {
'render_as_batch': True
}
# Security
# ------------------------------
# This is the secret key that is used for session signing.
# You can generate a secure key with os.urandom(24)
SECRET_KEY = 'secret key'
# You can generate the WTF_CSRF_SECRET_KEY the same way as you have
# generated the SECRET_KEY. If no WTF_CSRF_SECRET_KEY is provided, it will
# use the SECRET_KEY.
WTF_CSRF_ENABLED = True
WTF_CSRF_SECRET_KEY = "reallyhardtoguess"
# Full-Text-Search
# ------------------------------
# This will use the "whoosh_index" directory to store the search indexes
WHOOSHEE_DIR = os.path.join(basedir, "whoosh_index", py_version)
# How long should whooshee try to acquire write lock? (defaults to 2)
WHOOSHEE_WRITER_TIMEOUT = 2
# Minimum number of characters for the search (defaults to 3)
WHOOSHEE_MIN_STRING_LEN = 3
# Auth
# ------------------------------
LOGIN_VIEW = "auth.login"
REAUTH_VIEW = "auth.reauth"
LOGIN_MESSAGE_CATEGORY = "info"
REFRESH_MESSAGE_CATEGORY = "info"
# The name of the cookie to store the “remember me” information in.
REMEMBER_COOKIE_NAME = "remember_token"
# The amount of time before the cookie expires, as a datetime.timedelta object.
REMEMBER_COOKIE_DURATION = datetime.timedelta(days=365)
# If the “Remember Me” cookie should cross domains,
# set the domain value here (i.e. .example.com would allow the cookie
# to be used on all subdomains of example.com).
REMEMBER_COOKIE_DOMAIN = None
# Limits the “Remember Me” cookie to a certain path.
REMEMBER_COOKIE_PATH = "/"
# Restricts the “Remember Me” cookie’s scope to secure channels (typically HTTPS).
REMEMBER_COOKIE_SECURE = None
# Prevents the “Remember Me” cookie from being accessed by client-side scripts.
REMEMBER_COOKIE_HTTPONLY = False
# Rate Limiting via Flask-Limiter
# -------------------------------
# A full list with configuration values is available at the flask-limiter
# docs, but you actually just need those settings below.
# You can disabled the Rate Limiter here as well - it will overwrite
# the setting from the admin panel!
# RATELIMIT_ENABLED = True
# You can choose from:
# memory:// (default)
# redis://host:port
# memcached://host:port
# Using the redis storage requires the installation of the redis package,
# which will be installed if you enable REDIS_ENABLE while memcached
# relies on the pymemcache package.
#RATELIMIT_STORAGE_URL = "redis://localhost:6379"
# Caching
# ------------------------------
# For all available caching types, have a look at the Flask-Cache docs
# https://pythonhosted.org/Flask-Caching/#configuring-flask-caching
CACHE_TYPE = "simple"
# For redis:
#CACHE_TYPE = "redis"
CACHE_DEFAULT_TIMEOUT = 60
# Mail
# ------------------------------
# Google Mail Example
#MAIL_SERVER = "smtp.gmail.com"
#MAIL_PORT = 465
#MAIL_USE_SSL = True
#MAIL_USERNAME = "your_username@gmail.com"
#MAIL_PASSWORD = "your_password"
#MAIL_DEFAULT_SENDER = ("Your Name", "your_username@gmail.com")
# Local SMTP Server
MAIL_SERVER = "localhost"
MAIL_PORT = 25
MAIL_USE_SSL = False
MAIL_USE_TLS = False
MAIL_USERNAME = "noreply@example.org"
MAIL_PASSWORD = ""
MAIL_DEFAULT_SENDER = ("Default Sender", "noreply@example.org")
# Where to logger should send the emails to
ADMINS = ["admin@example.org"]
# Redis
# ------------------------------ #
# If redis is enabled, it can be used for:
# - Sending non blocking emails via Celery (Task Queue)
# - Caching
# - Rate Limiting
REDIS_ENABLED = False
REDIS_URL = "redis://localhost:6379" # or with a password: "redis://:password@localhost:6379"
REDIS_DATABASE = 0
# Celery
CELERY_BROKER_URL = 'redis://localhost:6379'
CELERY_RESULT_BACKEND = 'redis://localhost:6379'
if not REDIS_ENABLED: CELERY_ALWAYS_EAGER = True
# FlaskBB Settings
# ------------------------------ #
# URL Prefixes
FORUM_URL_PREFIX = ""
USER_URL_PREFIX = "/user"
MESSAGE_URL_PREFIX = "/message"
AUTH_URL_PREFIX = "/auth"
ADMIN_URL_PREFIX = "/admin"
# Remove dead plugins - useful if you want to migrate your instance
# somewhere else and forgot to reinstall the plugins.
# If set to `False` it will NOT remove plugins that are NOT installed on
# the filesystem (virtualenv, site-packages).
REMOVE_DEAD_PLUGINS = False