|
import os |
|
import logging |
|
import sys |
|
from pathlib import Path |
|
|
|
import dj_database_url |
|
from django.core.exceptions import ImproperlyConfigured |
|
|
|
|
|
BASE_DIR = Path(__file__).resolve().parent.parent |
|
|
|
|
|
SECRET_KEY = os.getenv('DJANGO_SECRET_KEY', 'django-insecure-development-key') |
|
|
|
DEBUG = os.getenv('DEBUG', 'False').lower() == 'true' |
|
|
|
ALLOWED_HOSTS = ['*'] |
|
|
|
|
|
INSTALLED_APPS = [ |
|
'django.contrib.admin', |
|
'django.contrib.auth', |
|
'django.contrib.contenttypes', |
|
'django.contrib.sessions', |
|
'django.contrib.messages', |
|
'django.contrib.staticfiles', |
|
'django_celery_beat', |
|
'debug_toolbar', |
|
'users', |
|
'tgbot', |
|
] |
|
|
|
MIDDLEWARE = [ |
|
'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', |
|
'debug_toolbar.middleware.DebugToolbarMiddleware', |
|
] |
|
|
|
ROOT_URLCONF = 'dtb.urls' |
|
|
|
TEMPLATES = [ |
|
{ |
|
'BACKEND': 'django.template.backends.django.DjangoTemplates', |
|
'DIRS': [], |
|
'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', |
|
], |
|
}, |
|
}, |
|
] |
|
|
|
WSGI_APPLICATION = 'dtb.wsgi.application' |
|
|
|
|
|
DATABASES = { |
|
'default': dj_database_url.config( |
|
default=os.getenv('DATABASE_URL', 'sqlite:////data/db.sqlite3'), |
|
conn_max_age=600 |
|
) |
|
} |
|
|
|
|
|
AUTH_PASSWORD_VALIDATORS = [ |
|
{ |
|
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator', |
|
}, |
|
{ |
|
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator', |
|
}, |
|
{ |
|
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator', |
|
}, |
|
{ |
|
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator', |
|
}, |
|
] |
|
|
|
|
|
LANGUAGE_CODE = 'en-us' |
|
TIME_ZONE = 'UTC' |
|
USE_I18N = True |
|
USE_L10N = True |
|
USE_TZ = True |
|
|
|
|
|
STATIC_URL = '/static/' |
|
STATIC_ROOT = '/static' |
|
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage' |
|
|
|
|
|
def get_telegram_token(): |
|
token = os.getenv("TELEGRAM_TOKEN") |
|
if not token: |
|
raise ImproperlyConfigured("TELEGRAM_TOKEN must be set in environment") |
|
return token |
|
|
|
TELEGRAM_TOKEN = get_telegram_token() |
|
TELEGRAM_LOGS_CHAT_ID = os.getenv("TELEGRAM_LOGS_CHAT_ID") |
|
|
|
|
|
CELERY_BROKER_URL = os.getenv('REDIS_URL', 'redis://localhost:6379/0') |
|
CELERY_RESULT_BACKEND = os.getenv('REDIS_URL', 'redis://localhost:6379/0') |
|
CELERY_ACCEPT_CONTENT = ['json'] |
|
CELERY_TASK_SERIALIZER = 'json' |
|
|
|
|
|
if not DEBUG: |
|
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https') |
|
SECURE_SSL_REDIRECT = True |
|
SESSION_COOKIE_SECURE = True |
|
CSRF_COOKIE_SECURE = True |
|
|
|
|
|
INTERNAL_IPS = [ |
|
'127.0.0.1', |
|
] |
|
|
|
|
|
LOGGING = { |
|
'version': 1, |
|
'disable_existing_loggers': False, |
|
'handlers': { |
|
'console': { |
|
'class': 'logging.StreamHandler', |
|
}, |
|
}, |
|
'root': { |
|
'handlers': ['console'], |
|
'level': 'INFO', |
|
}, |
|
} |
|
|
|
|
|
AUTH_USER_MODEL = 'users.User' |
|
|
|
|
|
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' |