# # Copyright © 2012 - 2020 Michal Čihař # # This file is part of Weblate # # 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 . # 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 = ""