# Standalone stack env (Linux): stack.microvps-full.yaml # Использование: # cp .env.stack.microvps-full.example .env.stack.microvps-full # docker compose --env-file .env.stack.microvps-full -f stack.microvps-full.yaml up -d # Образы EvoBGP EVOBGP_REGISTRY=git.shx.one/denozord EVOBGP_IMAGE_TAG=latest # Защищенный Web UI (Traefik + Let's Encrypt + Cloudflare DNS challenge) WEBUI_DOMAIN=bgp.shz.su WEBUI_IP_WHITELIST=109.174.26.78/32,87.103.241.8/32 LETSENCRYPT_EMAIL=admin@shz.su CF_DNS_API_TOKEN=cfut_3D1i0MNBVX6MNSsjcFytsfSlyB4B15t7H3DYXuzq22011588 # Файловые runtime-логи (sidecar stack-runtime-logs + API /v1/runtime-logs/* на evobgp-all). # Dev (рядом с compose): ./runtime-logs # Prod на хосте: /opt/evobgp/runtime-logs # EVOBGP_RUNTIME_LOGS_HOST_DIR=./runtime-logs # Auto-updater (проверка registry образов и точечный restart контейнеров) # 0 = выключен, 1 = включен AUTO_UPDATE_ENABLED=0 # Интервал проверки обновлений (сек), минимум 30 AUTO_UPDATE_INTERVAL_SEC=300 # Сервисы для автообновления (через запятую) AUTO_UPDATE_SERVICES=evobgp-all,evobgp-web # Защищенные сервисы, которые updater никогда не перезапускает AUTO_UPDATE_PROTECTED_SERVICES=bird2 # --------------------------------------------------------------------------- # Auth-portal SSO (прокидывается в контейнер evobgp-all) # VITE_* в runtime .env НЕ влияют на уже собранный web-образ — # UI читает GET /v1/auth/config с API (AUTH_REQUIRED / AUTH_PORTAL_URL). # --------------------------------------------------------------------------- AUTH_REQUIRED=true AUTH_JWT_SECRET= AUTH_ISSUER=https://auth.shnt.top AUTH_PORTAL_URL=https://auth.shnt.top # UUID tenant из БД (обязателен для JWT). При EVOBGP_SEED_DEMO=1 смотрите лог # старта evobgp-all / SELECT id FROM tenant LIMIT 1; EVOBGP_PORTAL_TENANT_ID=