Рефакторинг инфраструктуры и конфигурации проекта
- Перенесена структура Django-конфига в src/core и src/settings - Унифицирована Docker-сборка и docker-compose для dev/prod - Добавлены startup-checks (DB/Redis) и обновлены env-шаблоны - Расширена OpenAPI-документация и ответы API - Удалены устаревшие deploy/requirements/служебные скрипты - Обновлены CI/CD, README и тесты
This commit is contained in:
71
src/settings/dev.py
Normal file
71
src/settings/dev.py
Normal file
@@ -0,0 +1,71 @@
|
||||
"""
|
||||
Development settings - закрытый контур, без переменных окружения.
|
||||
"""
|
||||
|
||||
import os
|
||||
|
||||
from .base import *
|
||||
|
||||
SECRET_KEY = "django-insecure-development-key-mostovik-2024"
|
||||
DEBUG = True
|
||||
ALLOWED_HOSTS = ["*"]
|
||||
OPENAPI_USE_ENGLISH_TAGS = True
|
||||
|
||||
# JWT
|
||||
SIMPLE_JWT["SIGNING_KEY"] = SECRET_KEY
|
||||
|
||||
|
||||
def _normalize_local_host(host: str) -> str:
|
||||
"""Нормализует host для локального запуска backend на хосте."""
|
||||
if host == "host.docker.internal":
|
||||
return "127.0.0.1"
|
||||
return host
|
||||
|
||||
|
||||
_postgres_host = _normalize_local_host(os.getenv("POSTGRES_HOST", "127.0.0.1"))
|
||||
_redis_host = _normalize_local_host(os.getenv("REDIS_HOST", "127.0.0.1"))
|
||||
|
||||
# Database
|
||||
DATABASES = {
|
||||
"default": {
|
||||
"ENGINE": "django.db.backends.postgresql",
|
||||
"NAME": os.getenv("POSTGRES_DB", "mostovik"),
|
||||
"USER": os.getenv("POSTGRES_USER", "postgres"),
|
||||
"PASSWORD": os.getenv("POSTGRES_PASSWORD", "postgres"),
|
||||
# При локальном запуске backend (не в контейнере) подключаемся к портам,
|
||||
# проброшенным docker-compose.service.yml
|
||||
"HOST": _postgres_host,
|
||||
"PORT": os.getenv("POSTGRES_PORT", "5432"),
|
||||
}
|
||||
}
|
||||
|
||||
# Celery
|
||||
_default_redis_broker = f"redis://{_redis_host}:6379/0"
|
||||
_default_redis_cache = f"redis://{_redis_host}:6379/1"
|
||||
|
||||
CELERY_BROKER_URL = os.getenv("CELERY_BROKER_URL", _default_redis_broker).replace(
|
||||
"host.docker.internal", "127.0.0.1"
|
||||
)
|
||||
CELERY_RESULT_BACKEND = os.getenv(
|
||||
"CELERY_RESULT_BACKEND", _default_redis_broker
|
||||
).replace("host.docker.internal", "127.0.0.1")
|
||||
CELERY_ACCEPT_CONTENT = ["json"]
|
||||
CELERY_TASK_SERIALIZER = "json"
|
||||
CELERY_RESULT_SERIALIZER = "json"
|
||||
CELERY_TIMEZONE = "Europe/Moscow"
|
||||
|
||||
# Cache
|
||||
CACHES = {
|
||||
"default": {
|
||||
"BACKEND": "django_redis.cache.RedisCache",
|
||||
"LOCATION": os.getenv("REDIS_CACHE_URL", _default_redis_cache).replace(
|
||||
"host.docker.internal", "127.0.0.1"
|
||||
),
|
||||
"OPTIONS": {
|
||||
"CLIENT_CLASS": "django_redis.client.DefaultClient",
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
# Email
|
||||
EMAIL_BACKEND = "django.core.mail.backends.console.EmailBackend"
|
||||
Reference in New Issue
Block a user