212 lines
6.7 KiB
Python
212 lines
6.7 KiB
Python
#
|
|
# Copyright © 2012 - 2020 Michal Čihař <michal@cihar.com>
|
|
#
|
|
# This file is part of Weblate <https://weblate.org/>
|
|
#
|
|
# This program is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
#
|
|
|
|
import os
|
|
import platform
|
|
from logging.handlers import SysLogHandler
|
|
|
|
from weblate.settings_example import * # noqa
|
|
|
|
ADMINS = (("Weblate Admin", "noreply@your-host.xyz"),)
|
|
MANAGERS = ADMINS
|
|
|
|
DATABASES = {
|
|
"default": {
|
|
# Use "postgresql" or "mysql".
|
|
"ENGINE": "django.db.backends.postgresql",
|
|
# Database name.
|
|
"NAME": "weblate",
|
|
# Database user.
|
|
"USER": "weblate",
|
|
# Name of role to alter to set parameters in PostgreSQL,
|
|
# use in case role name is different than user used for authentication.
|
|
# "ALTER_ROLE": "weblate",
|
|
# Database password.
|
|
# "PASSWORD": "",
|
|
# Set to empty string for localhost.
|
|
"HOST": "localhost",
|
|
# Set to empty string for default.
|
|
"PORT": "5431",
|
|
# Customizations for databases.
|
|
"OPTIONS": {
|
|
# In case of using an older MySQL server,
|
|
# which has MyISAM as a default storage
|
|
# "init_command": "SET storage_engine=INNODB",
|
|
# Uncomment for MySQL older than 5.7:
|
|
# "init_command": "SET sql_mode='STRICT_TRANS_TABLES'",
|
|
# Set emoji capable charset for MySQL:
|
|
# "charset": "utf8mb4",
|
|
# Change connection timeout in case you get MySQL gone away error:
|
|
# "connect_timeout": 28800,
|
|
},
|
|
}
|
|
}
|
|
|
|
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
|
|
|
# Data Directory
|
|
DATA_DIR = "/var/lib/weblate"
|
|
|
|
# Local time zone for this installation. Choices can be found here:
|
|
# http://en.wikipedia.org/wiki/List_of_tz_zones_by_name
|
|
# although not all choices may be available on all operating systems.
|
|
# In a Windows environment this must be set to your system time zone.
|
|
TIME_ZONE = "UTC"
|
|
|
|
|
|
# ENABLE THIS 3 IN PRODUCTION AND USE NGINX WITH SSL ENABLED
|
|
ENABLE_HTTPS = False
|
|
SECURE_SSL_REDIRECT = False
|
|
SESSION_COOKIE_SECURE = False
|
|
|
|
SECRET_KEY = "RANDOM SECRET KEY"
|
|
SITE_DOMAIN = "your-host.xyz"
|
|
|
|
MEDIA_ROOT = os.path.join(DATA_DIR, "media")
|
|
STATIC_ROOT = os.path.join(DATA_DIR, "static")
|
|
|
|
CELERY_BEAT_SCHEDULE_FILENAME = os.path.join(DATA_DIR, "celery", "beat-schedule")
|
|
CELERY_TASK_ALWAYS_EAGER = False
|
|
CELERY_BROKER_URL = "redis://localhost:6379"
|
|
CELERY_RESULT_BACKEND = CELERY_BROKER_URL
|
|
|
|
# Needed for makemessages, otherwise it does not discover all available locales
|
|
# and the -a parameter does not work
|
|
LOCALE_PATHS = [os.path.join(os.path.dirname(__file__), "locale")]
|
|
|
|
DEBUG = False
|
|
|
|
# Silent logging setup
|
|
LOGGING = {
|
|
"version": 1,
|
|
"disable_existing_loggers": True,
|
|
"filters": {"require_debug_false": {"()": "django.utils.log.RequireDebugFalse"}},
|
|
"formatters": {"simple": {"format": "%(levelname)s %(message)s"}},
|
|
"handlers": {
|
|
"mail_admins": {
|
|
"level": "ERROR",
|
|
"filters": ["require_debug_false"],
|
|
"class": "django.utils.log.AdminEmailHandler",
|
|
},
|
|
"console": {
|
|
"level": "DEBUG",
|
|
"class": "logging.StreamHandler",
|
|
"formatter": "simple",
|
|
},
|
|
},
|
|
"loggers": {
|
|
"django.request": {
|
|
"handlers": ["mail_admins"],
|
|
"level": "ERROR",
|
|
"propagate": True,
|
|
},
|
|
"weblate": {"handlers": [], "level": "ERROR"},
|
|
"social": {"handlers": [], "level": "ERROR"},
|
|
},
|
|
}
|
|
|
|
# Reset caches
|
|
CACHES = {
|
|
"default":
|
|
{
|
|
"BACKEND": "django_redis.cache.RedisCache",
|
|
"LOCATION": "redis://127.0.0.1:6379/0",
|
|
# 'LOCATION': 'unix:///var/run/redis/redis.sock?db=0',
|
|
"OPTIONS": {
|
|
"CLIENT_CLASS": "django_redis.client.DefaultClient",
|
|
"PARSER_CLASS": "redis.connection.HiredisParser",
|
|
}
|
|
},
|
|
"avatar": {
|
|
"BACKEND": "django.core.cache.backends.filebased.FileBasedCache",
|
|
"LOCATION": os.path.join(DATA_DIR, "avatar-cache"),
|
|
"TIMEOUT": 604800,
|
|
"OPTIONS": {
|
|
"MAX_ENTRIES": 1000,
|
|
},
|
|
}
|
|
}
|
|
|
|
TEMPLATES = [
|
|
{
|
|
'BACKEND': 'django.template.backends.django.DjangoTemplates',
|
|
'DIRS': [
|
|
os.path.join(BASE_DIR, 'templates'),
|
|
],
|
|
'OPTIONS': {
|
|
'context_processors': [
|
|
'django.contrib.auth.context_processors.auth',
|
|
'django.template.context_processors.debug',
|
|
'django.template.context_processors.i18n',
|
|
'django.template.context_processors.request',
|
|
'django.template.context_processors.csrf',
|
|
'django.contrib.messages.context_processors.messages',
|
|
'weblate.trans.context_processors.weblate_context',
|
|
],
|
|
'loaders': [
|
|
('django.template.loaders.cached.Loader', [
|
|
'django.template.loaders.filesystem.Loader',
|
|
'django.template.loaders.app_directories.Loader',
|
|
]),
|
|
],
|
|
},
|
|
},
|
|
]
|
|
|
|
SESSION_COOKIE_HTTPONLY = True
|
|
|
|
# Use database backed sessions for transaction consistency in tests
|
|
SESSION_ENGINE = "django.contrib.sessions.backends.db"
|
|
|
|
# Use weak password hasher in tests, there is no point in spending CPU time
|
|
# in hashing test passwords
|
|
PASSWORD_HASHERS = [
|
|
'django.contrib.auth.hashers.PBKDF2PasswordHasher',
|
|
'django.contrib.auth.hashers.PBKDF2SHA1PasswordHasher',
|
|
'django.contrib.auth.hashers.Argon2PasswordHasher',
|
|
'django.contrib.auth.hashers.BCryptSHA256PasswordHasher',
|
|
'django.contrib.auth.hashers.CryptPasswordHasher'
|
|
]
|
|
|
|
AUTHENTICATION_BACKENDS = (
|
|
"social_core.backends.email.EmailAuth",
|
|
"social_core.backends.github.GithubOAuth2",
|
|
"social_core.backends.gitlab.GitLabOAuth2",
|
|
"weblate.accounts.auth.WeblateUserBackend",
|
|
)
|
|
|
|
SOCIAL_AUTH_GITLAB_KEY = ""
|
|
SOCIAL_AUTH_GITLAB_SECRET = ""
|
|
SOCIAL_AUTH_GITLAB_SCOPE = ["read_user"]
|
|
|
|
SOCIAL_AUTH_GITHUB_KEY = ""
|
|
SOCIAL_AUTH_GITHUB_SECRET = ""
|
|
SOCIAL_AUTH_GITHUB_SCOPE = ["user:email"]
|
|
|
|
AUTH_VALIDATE_PERMS = True
|
|
|
|
SERVER_EMAIL = ""
|
|
DEFAULT_FROM_EMAIL = ""
|
|
|
|
EMAIL_USE_TLS = True
|
|
EMAIL_HOST = "smtp.gmail.com"
|
|
EMAIL_PORT = 587
|
|
EMAIL_HOST_PASSWORD = ""
|
|
EMAIL_HOST_USER = ""
|