/
AlexandrNarbaev
/
opencode_initializer
Обзор
Документация
Войти
/
AlexandrNarbaev
/
opencode_initializer
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
main
src/lib/33-services.sh
68 строк
2 KB
Alexandr Narbaev
v3.1.0: core hardening + SSOT completion + macOS compat + SDD commands
08 авг 2026, 22:20
08 авг 2026, 22:20
af6ca43
Код
Авторство
О чём код?
#!/usr/bin/env bash # lib/33-services.sh — Unified Service Configuration Layer # Manages: port resolution, service modes (local/external/disabled), # deployment profiles (personal/corporate/airgapped/hybrid), # external service URLs for corporate environments. set -euo pipefail _step_skip step_services && return 0 section "Service Configuration" # ── Resolve all service ports ────────────────────────────────────────────── info "Deployment profile: ${DEPLOYMENT_PROFILE}" for svc in postgres qdrant redis prometheus grafana node_exporter metrics_exporter gui ollama vllm sglang chromadb memorylayer kafka neo4j minio searxng open_webui; do mode=$(_service_mode "$svc") default_port=$(_get_service_port "$svc") port="" case "$mode" in disabled) info " ${svc}: disabled — skipping" continue ;; external) url_var="$(printf '%s' "$svc" | tr '[:lower:]' '[:upper:]')_EXTERNAL_URL" ext_url="${!url_var:-}" if [ -f "$SETUP_CONF" ]; then # shellcheck disable=SC1090 . "$SETUP_CONF" 2>/dev/null ext_url="${!url_var:-$ext_url}" fi if [ -n "$ext_url" ]; then info " ${svc}: external → ${ext_url}" _set_config "$(printf '%s' "$svc" | tr '[:lower:]' '[:upper:]')_PORT" "0" else info " ${svc}: external mode but no URL set — falling back to local" mode="local" fi ;; esac if [ "$mode" = "local" ]; then port=$(_resolve_service_port "$svc" "$default_port") _set_config "$(printf '%s' "$svc" | tr '[:lower:]' '[:upper:]')_MODE" "local" _set_config "$(printf '%s' "$svc" | tr '[:lower:]' '[:upper:]')_PORT" "$port" if [ "$port" != "$default_port" ]; then info " ${svc}: port ${port} (shifted from ${default_port})" else info " ${svc}: port ${port}" fi fi done # ── Export resolved values for other modules ─────────────────────────────── if [ -f "$SETUP_CONF" ]; then while IFS='=' read -r key value; do [[ "$key" =~ ^[A-Z_]+$ ]] || continue [[ "$key" == *_API_KEY ]] && continue [[ "$key" == *_PASSWORD ]] && continue [[ "$key" == GIT_* ]] && continue value="${value#\"}"; value="${value%\"}" printf -v "${key?}" '%s' "$value" export "${key?}" done < "$SETUP_CONF" fi _step_done step_services