Files
mostovik-backend/src/settings/dev.py
Aleksandr Meshchriakov 0f17ff6773
All checks were successful
CI/CD Pipeline / Quality Gate (push) Successful in 26s
CI/CD Pipeline / Build and Push Images (push) Successful in 6s
CI/CD Pipeline / Internal Notify (push) Successful in 0s
CI/CD Pipeline / Deploy Dev in Dokploy (push) Successful in 1s
Add organizations v2 API and registry enrichment
2026-05-06 19:04:46 +02:00

98 lines
3.0 KiB
Python

"""
Development settings - закрытый контур, без переменных окружения.
"""
import os
from .base import *
SECRET_KEY = "django-insecure-development-key-mostovik-2024"
DEBUG = True
ALLOWED_HOSTS = ["*"]
OPENAPI_USE_ENGLISH_TAGS = True
STATE_CORP_EXCHANGE_URL = os.getenv(
"STATE_CORP_EXCHANGE_URL",
"http://127.0.0.1:8001/api/v1/exchange/packages/upload/",
)
STATE_CORP_EXCHANGE_TOKEN = os.getenv(
"STATE_CORP_EXCHANGE_TOKEN",
"state-corp-dev-exchange-token-v1",
)
# JWT
SIMPLE_JWT["SIGNING_KEY"] = SECRET_KEY
# Dev frontend can run from any workstation/port in the local network.
# Production keeps the restrictive CORS/CSRF policy from settings.production.
CORS_ALLOW_ALL_ORIGINS = True
CORS_ALLOW_CREDENTIALS = True
CORS_ALLOW_PRIVATE_NETWORK = True
CSRF_COOKIE_SECURE = False
SESSION_COOKIE_SECURE = False
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"
# DRF: отключаем throttling в dev, чтобы не мешать фронту тестировать API.
REST_FRAMEWORK = {
**globals().get("REST_FRAMEWORK", {}),
"DEFAULT_THROTTLE_CLASSES": [],
"DEFAULT_THROTTLE_RATES": {},
}
# Dev-only: frontend/scripts can inspect the new v2 organizations API without JWT.
ORGANIZATIONS_V2_ALLOW_ANONYMOUS = True