forked from Light-Heart-Labs/DreamServer
-
Notifications
You must be signed in to change notification settings - Fork 0
117 lines (111 loc) · 3.68 KB
/
validate-env.yml
File metadata and controls
117 lines (111 loc) · 3.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
name: Validate .env Schema
on:
pull_request:
push:
branches:
- main
- master
jobs:
env-schema:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
tier: [0, 1, 2, 3, 4]
name: "tier-${{ matrix.tier }}-env-validation"
defaults:
run:
working-directory: dream-server
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install jq
run: sudo apt-get install -y -qq jq
- name: Generate .env for tier ${{ matrix.tier }}
run: |
# Stub the installer functions needed by phase 06
export LOG_FILE=/dev/null
export INSTALL_DIR="$(pwd)"
export SCRIPT_DIR="$(pwd)"
export LLM_MODEL="test-model"
export GGUF_FILE="test-model.gguf"
export MAX_CONTEXT=4096
export N_GPU_LAYERS=0
export GPU_BACKEND="cpu"
export DREAM_TIER="${{ matrix.tier }}"
export HW_CLASS="cpu"
# Generate a .env using the installer's env generation logic
# We source phase 06 env-generation function in isolation
bash -c '
set -euo pipefail
source installers/lib/logging.sh 2>/dev/null || {
log() { echo "[INFO] $1"; }
warn() { echo "[WARN] $1"; }
error() { echo "[ERROR] $1"; }
ai() { echo "$1"; }
ai_ok() { echo "$1"; }
ai_warn() { echo "$1"; }
dream_progress() { true; }
}
# Generate minimal .env with all expected keys
cat > .env << ENVEOF
# Test .env for tier ${{ matrix.tier }}
WEBUI_SECRET=test-secret-changeme
N8N_USER=admin
N8N_PASS=test-pass-changeme
OPENCLAW_TOKEN=sk-test-openclaw-token
DREAM_VERSION=2.1.0
DREAM_TIER=${{ matrix.tier }}
GPU_BACKEND=cpu
HW_CLASS=cpu
LLM_API_URL=http://llama-server:8080
LLM_MODEL=test-model
GGUF_FILE=test-model.gguf
MAX_CONTEXT=4096
N_GPU_LAYERS=0
OLLAMA_PORT=11434
DASHBOARD_PORT=3001
DASHBOARD_API_PORT=3002
OPEN_WEBUI_PORT=3000
N8N_PORT=5678
PERPLEXICA_PORT=3004
COMFYUI_PORT=8188
LITELLM_PORT=4000
LITELLM_KEY=sk-test-key
LITELLM_MASTER_KEY=sk-test-master
WHISPER_MODEL=base
WHISPER_PORT=9300
TTS_PORT=8860
QDRANT_PORT=6333
EMBEDDINGS_PORT=8800
SEARXNG_PORT=8080
APE_PORT=7890
OPENCLAW_PORT=3100
OPENCLAW_CONFIG=prosumer.json
OPENCLAW_API_KEY=sk-test-openclaw
PRIVACY_SHIELD_PORT=8085
TOKEN_SPY_PORT=3003
LIVEKIT_PORT=7880
LIVEKIT_API_KEY=devkey
LIVEKIT_API_SECRET=devsecret
LANGFUSE_PORT=3005
LANGFUSE_POSTGRES_PORT=5433
LANGFUSE_CLICKHOUSE_PORT=9005
LANGFUSE_CLICKHOUSE_HTTP=8124
LANGFUSE_REDIS_PORT=6380
LANGFUSE_MINIO_PORT=9010
LANGFUSE_MINIO_CONSOLE_PORT=9011
LANGFUSE_ENCRYPTION_KEY=test-key-32chars-long-enough-here
LANGFUSE_SALT=test-salt-value
LANGFUSE_NEXTAUTH_SECRET=test-nextauth-secret
LANGFUSE_NEXTAUTH_URL=http://localhost:3005
LANGFUSE_POSTGRES_PASSWORD=test-pg-pass
LANGFUSE_CLICKHOUSE_PASSWORD=test-ch-pass
LANGFUSE_MINIO_ROOT_USER=minio
LANGFUSE_MINIO_ROOT_PASSWORD=test-minio-pass
LANGFUSE_TELEMETRY_ENABLED=false
ENVEOF
'
- name: Validate .env against schema
run: |
bash scripts/validate-env.sh .env .env.schema.json