import os import environ import sentry_sdk from sentry_sdk.integrations.django import DjangoIntegration BASE_DIR = environ.Path(__file__) - 2 env = environ.Env() env_file = str(BASE_DIR.path('.env')) if os.path.exists(env_file): env.read_env(env_file) SECRET_KEY = '6)mck*tk2eq++!01pr2!7qo7#zf_e(hi_m=-qa4x-ah)lvvt4-' DEBUG = env.bool('DJANGO_DEBUG', True) ALLOWED_HOSTS = ['bots.bakatrouble.me'] # env.list('DJANGO_ALLOWED_HOSTS', []) CSRF_TRUSTED_ORIGINS = ['https://bots.bakatrouble.me'] INSTALLED_APPS = [ 'django_extensions', 'bootstrap4', 'crispy_forms', 'crispy_bootstrap4', 'djconfig', 'jsoneditor', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'cabinet.apps.CabinetConfig', 'feeds.apps.FeedsConfig', 'aggregator.apps.AggregatorConfig', 'bots.apps.BotsConfig', ] MIDDLEWARE = [ 'djconfig.middleware.DjConfigMiddleware', 'django.middleware.security.SecurityMiddleware', 'whitenoise.middleware.WhiteNoiseMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', # 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] ROOT_URLCONF = 'config.urls' TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [str(BASE_DIR.path('templates'))], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', 'djconfig.context_processors.config', 'config.utils.turbolinks', 'cabinet.utils.cabinet_context_processor', ], }, }, ] WSGI_APPLICATION = 'config.wsgi.application' DEFAULT_AUTO_FIELD = 'django.db.models.AutoField' DATABASES = { 'default': env.db('DATABASE_URL', default='sqlite:///db.sqlite3'), } DATABASES['default']['ATOMIC_REQUESTS'] = True LANGUAGE_CODE = 'en-us' TIME_ZONE = 'Europe/Moscow' USE_I18N = True USE_L10N = True USE_TZ = True STATICFILES_DIRS = [ str(BASE_DIR.path('static')), ] STATICFILES_FINDERS = [ 'django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder', ] CACHES = { "default": { "BACKEND": "redis_cache.RedisCache", "LOCATION": ["127.0.0.1:6379"], "OPTIONS": { 'DB': 4, 'PARSER_CLASS': 'redis.connection.HiredisParser', 'CONNECTION_POOL_CLASS': 'redis.BlockingConnectionPool', 'CONNECTION_POOL_CLASS_KWARGS': { 'max_connections': 50, 'timeout': 20, }, 'MAX_CONNECTIONS': 1000, 'PICKLE_VERSION': -1, } } } SESSION_ENGINE = "django.contrib.sessions.backends.cache" SESSION_CACHE_ALIAS = "default" PUBLIC_ROOT = BASE_DIR.path('public') STATIC_URL = '/static/' STATIC_ROOT = str(PUBLIC_ROOT.path('static')) MEDIA_URL = '/uploads/' MEDIA_ROOT = str(PUBLIC_ROOT.path('uploads')) DATA_UPLOAD_MAX_MEMORY_SIZE = 20 * 1024 * 1024 LOGIN_URL = 'cabinet:login' LOGIN_REDIRECT_URL = 'cabinet:index' LOGOUT_REDIRECT_URL = LOGIN_URL CRISPY_TEMPLATE_PACK = 'bootstrap4' JSON_EDITOR_JS = 'https://cdnjs.cloudflare.com/ajax/libs/jsoneditor/7.0.4/jsoneditor.min.js' JSON_EDITOR_CSS = 'https://cdnjs.cloudflare.com/ajax/libs/jsoneditor/7.0.4/jsoneditor.min.css' sentry_sdk.init( dsn=env.str('SENTRY_DSN', None), integrations=[DjangoIntegration()], )