This commit is contained in:
@@ -29,35 +29,20 @@ SECRET_KEY = os.getenv('DJANGO_SECRET_KEY')
|
||||
# SECURITY WARNING: don't run with debug turned on in production!
|
||||
DEBUG = os.getenv('DJANGO_DEBUG', 'False') == 'True'
|
||||
|
||||
ALLOWED_HOSTS = ['*'] # Разрешаем доступ с любых хостов для разработки
|
||||
# Allowed hosts из переменных окружения
|
||||
ALLOWED_HOSTS = os.getenv('DJANGO_ALLOWED_HOSTS', 'localhost,127.0.0.1').split(',')
|
||||
|
||||
# CSRF trusted origins из переменных окружения
|
||||
CSRF_TRUSTED_ORIGINS = os.getenv('DJANGO_CSRF_TRUSTED_ORIGINS', '').split(',') if os.getenv('DJANGO_CSRF_TRUSTED_ORIGINS') else []
|
||||
|
||||
# Отключаем APPEND_SLASH для корректной работы API с Next.js proxy
|
||||
APPEND_SLASH = False
|
||||
APPEND_SLASH = os.getenv('DJANGO_APPEND_SLASH', 'False') == 'True'
|
||||
|
||||
CORS_ALLOWED_ORIGINS = [
|
||||
"http://127.0.0.1:3000",
|
||||
"http://localhost:3000",
|
||||
"http://127.0.0.1:3001",
|
||||
"http://localhost:3001",
|
||||
"http://192.168.219.108:3000",
|
||||
"http://192.168.219.108:3001",
|
||||
"http://192.168.219.108:8000",
|
||||
"http://192.168.219.108:8001",
|
||||
]
|
||||
|
||||
CORS_ALLOW_ALL_ORIGINS = True # Для разработки
|
||||
CORS_ALLOW_CREDENTIALS = True
|
||||
CORS_ALLOW_HEADERS = [
|
||||
'accept',
|
||||
'accept-encoding',
|
||||
'authorization',
|
||||
'content-type',
|
||||
'dnt',
|
||||
'origin',
|
||||
'user-agent',
|
||||
'x-csrftoken',
|
||||
'x-requested-with',
|
||||
]
|
||||
# CORS настройки из переменных окружения
|
||||
CORS_ALLOWED_ORIGINS = os.getenv('CORS_ALLOWED_ORIGINS', '').split(',') if os.getenv('CORS_ALLOWED_ORIGINS') else []
|
||||
CORS_ALLOW_ALL_ORIGINS = os.getenv('CORS_ALLOW_ALL_ORIGINS', 'False') == 'True'
|
||||
CORS_ALLOW_CREDENTIALS = os.getenv('CORS_ALLOW_CREDENTIALS', 'True') == 'True'
|
||||
CORS_ALLOW_HEADERS = os.getenv('CORS_ALLOW_HEADERS', 'accept,accept-encoding,authorization,content-type,dnt,origin,user-agent,x-csrftoken,x-requested-with').split(',')
|
||||
|
||||
# Application definition
|
||||
|
||||
@@ -126,8 +111,8 @@ REST_FRAMEWORK = {
|
||||
|
||||
from datetime import timedelta
|
||||
SIMPLE_JWT = {
|
||||
'ACCESS_TOKEN_LIFETIME': timedelta(minutes=60),
|
||||
'REFRESH_TOKEN_LIFETIME': timedelta(days=1),
|
||||
'ACCESS_TOKEN_LIFETIME': timedelta(minutes=int(os.getenv('JWT_ACCESS_TOKEN_LIFETIME_MINUTES', '60'))),
|
||||
'REFRESH_TOKEN_LIFETIME': timedelta(days=int(os.getenv('JWT_REFRESH_TOKEN_LIFETIME_DAYS', '1'))),
|
||||
'AUTH_HEADER_TYPES': ('Bearer',),
|
||||
}
|
||||
|
||||
@@ -170,13 +155,13 @@ AUTH_PASSWORD_VALIDATORS = [
|
||||
# Internationalization
|
||||
# https://docs.djangoproject.com/en/5.2/topics/i18n/
|
||||
|
||||
LANGUAGE_CODE = 'ru-ru'
|
||||
LANGUAGE_CODE = os.getenv('DJANGO_LANGUAGE_CODE', 'ru-ru')
|
||||
|
||||
TIME_ZONE = 'UTC'
|
||||
TIME_ZONE = os.getenv('DJANGO_TIME_ZONE', 'UTC')
|
||||
|
||||
USE_I18N = True
|
||||
USE_I18N = os.getenv('DJANGO_USE_I18N', 'True') == 'True'
|
||||
|
||||
USE_TZ = True
|
||||
USE_TZ = os.getenv('DJANGO_USE_TZ', 'True') == 'True'
|
||||
|
||||
|
||||
# Static files (CSS, JavaScript, Images)
|
||||
@@ -185,7 +170,7 @@ USE_TZ = True
|
||||
STATIC_ROOT = BASE_DIR / 'staticfiles'
|
||||
|
||||
# URL, по которому статика будет доступна
|
||||
STATIC_URL = '/static/'
|
||||
STATIC_URL = os.getenv('DJANGO_STATIC_URL', '/static/')
|
||||
|
||||
# WhiteNoise настройки
|
||||
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
|
||||
@@ -195,5 +180,14 @@ STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
|
||||
|
||||
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
|
||||
|
||||
MEDIA_URL = '/storage/'
|
||||
MEDIA_ROOT = BASE_DIR / 'storage'
|
||||
MEDIA_URL = os.getenv('DJANGO_MEDIA_URL', '/storage/')
|
||||
MEDIA_ROOT = BASE_DIR / 'storage'
|
||||
|
||||
# Настройки безопасности из переменных окружения
|
||||
SECURE_SSL_REDIRECT = os.getenv('DJANGO_SECURE_SSL_REDIRECT', 'False') == 'True'
|
||||
SECURE_HSTS_SECONDS = int(os.getenv('DJANGO_SECURE_HSTS_SECONDS', '0'))
|
||||
SECURE_HSTS_INCLUDE_SUBDOMAINS = os.getenv('DJANGO_SECURE_HSTS_INCLUDE_SUBDOMAINS', 'False') == 'True'
|
||||
SECURE_HSTS_PRELOAD = os.getenv('DJANGO_SECURE_HSTS_PRELOAD', 'False') == 'True'
|
||||
SECURE_CONTENT_TYPE_NOSNIFF = os.getenv('DJANGO_SECURE_CONTENT_TYPE_NOSNIFF', 'True') == 'True'
|
||||
SECURE_BROWSER_XSS_FILTER = os.getenv('DJANGO_SECURE_BROWSER_XSS_FILTER', 'True') == 'True'
|
||||
X_FRAME_OPTIONS = os.getenv('DJANGO_X_FRAME_OPTIONS', 'DENY')
|
||||
Reference in New Issue
Block a user