# ============================================================================= # Пример конфигурации sarex-backend (Django) + sarex-frontend # Значения читаются кодом через django-environ (env(...)) и pydantic-settings # (классы *Settings с env_prefix) в config/settings/*.py. # В кластере переменные приходят из Vault (файлы /vault/secrets/*) и из блока # env Deployment-манифестов (см. base/backend-deployment.yaml, celery-deployment.yaml). # ============================================================================= # ----------------------------------------------------------------------------- # Django core # ----------------------------------------------------------------------------- DJANGO_SETTINGS_MODULE=config.settings.production DJANGO_DEBUG=False DJANGO_ISOLATED=False ALLOWED_HOSTS='*' APPEND_SLASH=True FZ152_COMPLIANCE=False PDM_SYNC=1 OBJECT_STORAGE_SYNC=True # Секретный ключ Django. В production.py по умолчанию задан хардкодом, # при необходимости переопределяется переменной SECRET_KEY. SECRET_KEY= # STATIC_ROOT / MEDIA_ROOT нужны только если раскомментированы в production.py # STATIC_ROOT=/opt/sarex/static # MEDIA_ROOT=/opt/sarex/media DISK_USAGE_ROOT=/ USE_SSL_FOR_URL_SERIALIZATION=True WEB_APP_AUTH_MODE=jwt-session-based # ----------------------------------------------------------------------------- # База данных (PostgreSQL) — читается в config/settings/production.py # В кластере приходит из Vault-секрета secrets/data/postgresql/apps/django # ----------------------------------------------------------------------------- DJANGO_POSTGRES_HOST=postgresql.django.svc.cluster.local DJANGO_POSTGRES_PORTS=5432 DJANGO_POSTGRES_DATABASE=sarex_db DJANGO_POSTGRES_USER=sarex DJANGO_POSTGRES_PASSWORD=password # ----------------------------------------------------------------------------- # JWT (RS512). Ключи в кластере приходят из Vault (rsa_keys), \n экранируются. # ----------------------------------------------------------------------------- JWT_PRIVATE_KEY= JWT_PUBLIC_KEY= JWT_KID=1 DJANGO_JWT_SECRET='Froom too much love of living' SIMPLE_JWT_ISSUER=django # ----------------------------------------------------------------------------- # Celery — брокер (RabbitMQ) и backend результатов (Redis или Postgres) # CELERY_RABBITMQ_* приходит из Vault-секрета secrets/data/rabbitmq/apps/django # ----------------------------------------------------------------------------- CELERY_USE_POSTGRES=False CELERY_RABBITMQ_HOST=rabbitmq.rabbitmq.svc.cluster.local CELERY_RABBITMQ_PORT=5672 CELERY_RABBITMQ_USER=rabbit CELERY_RABBITMQ_PASSWORD=rabbit CELERY_RABBITMQ_VHOST=api CELERY_REDIS_HOST=redis CELERY_REDIS_PORT=6379 CELERY_REDIS_DATABASE=0 # Backend результатов на Postgres (используется при CELERY_USE_POSTGRES=True) CELERY_POSTGRES_DATABASE=celery_db CELERY_POSTGRES_USER=sarex CELERY_POSTGRES_PASSWORD=sarex CELERY_POSTGRES_HOST=localhost CELERY_POSTGRES_PORT=5432 # Дублирующий набор RabbitMQ (django), прокидывается Vault-шаблоном DJANGO_RABBIT_HOSTNAME=rabbitmq.rabbitmq.svc.cluster.local DJANGO_RABBIT_USER=rabbit DJANGO_RABBIT_PASS=rabbit DJANGO_RABBIT_VHOST=api # Redis для Django-кеша/сервисов DJANGO_REDIS_HOST=redis DJANGO_REDIS_PORT=6379 # ----------------------------------------------------------------------------- # Redis-кеш (CacheSettings) # ----------------------------------------------------------------------------- CACHE_HOST=localhost CACHE_PORT=6379 # CACHE_PASSWORD= CACHE_SSL=False # CACHE_SSL_CA_CERTS= # ----------------------------------------------------------------------------- # S3 / объектное хранилище (S3Settings, env_prefix S3_) # S3_* приходит из Vault-секрета secrets/data/minio/apps/django # ----------------------------------------------------------------------------- S3_HOST=https://storage.yandexcloud.net AWS_S3_ENDPOINT_URL=https://storage.yandexcloud.net S3_LOGIN= S3_PASSWORD= S3_BUCKET=sarex-media-storage S3_REGION=ru-central1 # AWS_DEFAULT_REGION=ru-central1 # Нативная библиотека загрузки в S3 (см. Dockerfile) S3TOOLS_LIB_PATH=/opt/sarex/lib/s3tools.so S3TOOLS_WORKERS=10 # ----------------------------------------------------------------------------- # Kafka (KafkaSettings, env_prefix KAFKA_) # Аутентификация приходит из Vault-секрета secrets/data/kafka/apps/django # ----------------------------------------------------------------------------- KAFKA_BOOTSTRAP_SERVERS='["localhost:9092"]' KAFKA_SECURITY_PROTOCOL= KAFKA_SASL_MECHANISM= KAFKA_SASL_PLAIN_USERNAME=user KAFKA_SASL_PLAIN_PASSWORD=password KAFKA_SSL_CAFILE=/usr/local/share/ca-certificates/kafka.crt KAFKA_TOPICS='{"planning": "message-hub-stage", "ams-sync": "ams-sync"}' # ----------------------------------------------------------------------------- # Sentry (SentrySettings, env_prefix SENTRY_) — читается из .env.base/.env # ----------------------------------------------------------------------------- SENTRY_USE=0 SENTRY_HOST="https://sentry.sarex.io/" SENTRY_ENVIRONMENT="production" SENTRY_TRACES_SAMPLE_RATE=1.0 SENTRY_PROFILES_SAMPLE_RATE=0.1 # ----------------------------------------------------------------------------- # Server-флаги приложения (ServerSettings, env_prefix SERVER_) # Ниже — переменные, реально задаваемые в манифестах кластера. # ----------------------------------------------------------------------------- SERVER_HOST=https://lk.sarex.io SERVER_API_HOST=https://api.sarex.io SERVER_ZITADEL_ENABLED=True SERVER_KAFKA_ENABLED=False SERVER_USE_METASHAPE=0 SERVER_USE_CLICKHOUSE=0 SERVER_USE_CHANGELOG=0 SERVER_CHANGELOG_MODE=0 SERVER_CHANGELOG_MODE_SYSTEM_LOG=1 SERVER_SAVE_DIFF_DEM=1 SERVER_S3_STREAM_IMPORT=1 SERVER_USE_DJANGO_STORAGE=1 SERVER_DJANGO_URLS=1 SERVER_CHECK_IMPORT_HASH=1 SERVER_USE_WRORKFLOW_STATUS=1 SERVER_HIDE_USER_SCROLL_PERMISSIONS=0 SERVER_EXTERNAL_FIND_BY_USERNAME_ENABLED=True SERVER_EXTERNAL_FIND_BY_EMAIL_ENABLED=True SERVER_CHUNKED_PATH=/tmp/chunked_uploads/%Y/%m/%d CHECK_IMPORT_HASH=1 # ----------------------------------------------------------------------------- # Workflows / processing (WorkFlowsSettings, env_prefix WORKFLOWS_) # ----------------------------------------------------------------------------- WORKFLOWS_USE=1 WORKFLOWS_HOST=https://api.sarex.io WORKFLOWS_BASE_HOST=https://lk.sarex.io WORKFLOWS_PREFIX=/internal/v1 # WORKFLOWS_TIMEOUT=120 # WORKFLOWS_REGISTRY=cr.yandex/crp3ccidau046kdj8g9q # WORKFLOWS_TAG=stable # ----------------------------------------------------------------------------- # Внешние API-сервисы (наследуют BaseApiServiceMixin: # host / api_prefix / internal_host / internal_prefix / timeout / enable) # ----------------------------------------------------------------------------- # Gateway (env_prefix GATEWAY_) # GATEWAY_HOST=https://api.sarex.io # Gatekeeper (env_prefix GK_) # GK_ENCRYPTION_KEY= # BIM v2 (env_prefix BIMV2_) BIMV2_INTERNAL_HOST=http://bim-backend-v2-service.bim-api BIMV2_TIMEOUT=60 # EAV (env_prefix EAV_) EAV_ENABLE=1 # Documentation (env_prefix DOCUMENTATION_) # DOCUMENTATION_HOST=https://api.sarex.io # Analytics (env_prefix ANALYTICS_) # ANALYTICS_HOST=https://lk.sarex.io # Users (env_prefix USERS_) # USERS_HOST=https://lk.sarex.io # System log (env_prefix SYSTEM_LOG_) # SYSTEM_LOG_INTERNAL_HOST= # Resources (env_prefix RESOURCES_) # RESOURCES_INTERNAL_HOST=http://localhost:8001 # ----------------------------------------------------------------------------- # Measurements (MeasurementSettings, env_prefix MEASUREMENTS_) # ----------------------------------------------------------------------------- MEASUREMENTS_HOST=https://api.sarex.io/measurements/ # MEASUREMENTS_TIMEOUT=180 # MEASUREMENTS_WINDOW_SIZE=1000 # ----------------------------------------------------------------------------- # ClickHouse (ClickHouseSettings, env_prefix CLICKHOUSE_) # ----------------------------------------------------------------------------- # CLICKHOUSE_HOST= # CLICKHOUSE_PORT=9000 # CLICKHOUSE_USER= # CLICKHOUSE_PASSWORD= # CLICKHOUSE_DATABASE=values_db # CLICKHOUSE_TABLE=values # CLICKHOUSE_SECURE=False # CLICKHOUSE_VERIFY=False # CLICKHOUSE_CERT= # ----------------------------------------------------------------------------- # Zitadel (ZitadelSettings, env_prefix ZITADEL_) # ZITADEL_ACCESS_TOKEN приходит из Vault-секрета secrets/data/vault/common/django_auth # ----------------------------------------------------------------------------- ZITADEL_HOST=https://zitadel.contour.infra.sarex.tech ZITADEL_ACCESS_TOKEN= # ZITADEL_USERS_ENDPOINT=/v2/users # ----------------------------------------------------------------------------- # Keycloak (KeyCloakSettings env_prefix KC_, KeyCloakSyncSettings env_prefix KC_SYNC) # ----------------------------------------------------------------------------- KC_SYNC_ENABLE=0 KC_USE_REDIRECT_LOGOUT=False # KC_CLIENT_ID= # KC_CLIENT_SECRET= # KC_DISCOVERY_URL= # KC_REALM=sarex # ----------------------------------------------------------------------------- # Трейсинг (TracingConfig, env_prefix TRACING_) + OpenTelemetry # ----------------------------------------------------------------------------- # TRACING_SERVICE_NAME=backend.sarex-stage # TRACING_ENDPOINT=localhost:4317 # TRACING_INSECURE=False # TRACING_ENVIRONMENT=prod # ----------------------------------------------------------------------------- # Comparator / прочее # ----------------------------------------------------------------------------- COMPARATOR_URL=https://wb.sarex.io/comparator COMPARATOR_SECTION=sarex-production-storage # COMPARATOR_JWT= # COMPARATOR_BASIC_TOKEN= # WORKFLOWSSETTINGS_HOST=https://api.sarex.io # используется в configmap production.py # WORKFLOWSSETTINGS_REGISTRY=cr.yandex/crp3ccidau046kdj8g9q # ----------------------------------------------------------------------------- # Легаси/интеграции (значения по умолчанию есть в base.py) # ----------------------------------------------------------------------------- # PG_NODE_HOST=127.0.0.1:5000 # PG_API_KEY= # PG_MONGO_HOST=localhost # PG_MONGO_PORT=27017 # PG_IMPORT_PATH=/home/sarex/pg/import # WIKIMAPIA_API_KEY= # ANALYTICS_IMPORT_METRICS_SHEET_NAME=SRX # ============================================================================= # Frontend (sarex-frontend) — сборочные переменные (webpack DefinePlugin) # Базовые хосты сервисов берутся из endpoints.js по ключу ENDPOINT. # ============================================================================= # ENDPOINT=prod # stage | prod | preprod | contour | local # SAREX_BACKEND=https://stage.sarex.io/ # прокси-таргет backend при npm start (env.js) # TYPE_OF_HTTP_SERVICE=original # CLIENT_ID= # AMPLITUDE_ENABLED=false