overmind-mcp 2.0.9 → 2.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,250 +1,412 @@
1
- #!/bin/bash
2
- # ═══════════════════════════════════════════════════════════════════════════════
3
- # OVERMIND-MCP - INSTALLATION COMPLÈTE Linux/macOS (Docker)
4
- # ═══════════════════════════════════════════════════════════════════════════════
5
- # Ce script installe et configure TOUT automatiquement :
6
- # - npm install -g overmind-mcp
7
- # - Docker (vérification)
8
- # - PostgreSQL + pgvector (si absent)
9
- # - Infrastructure complète (RabbitMQ, Temporal, Prometheus, Grafana, Jaeger)
10
- # - Validation de tous les services
11
- # ═══════════════════════════════════════════════════════════════════════════════
12
-
13
- set -e
14
-
15
- # Couleurs
16
- RED='\033[0;31m'
17
- GREEN='\033[0;32m'
18
- YELLOW='\033[1;33m'
19
- BLUE='\033[0;34m'
20
- MAGENTA='\033[0;35m'
21
- CYAN='\033[0;36m'
22
- WHITE='\033[1;37m'
23
- NC='\033[0m' # No Color
24
-
25
- clear
26
- echo -e "${CYAN}╔════════════════════════════════════════════════════════════════════════════╗${NC}"
27
- echo -e "${CYAN}║${NC} ${WHITE} ${NC} ${CYAN}║${NC}"
28
- echo -e "${CYAN}║${NC} ${MAGENTA} 🚀 OVERMIND-MCP - INSTALLATION COMPLÈTE ${NC} ${CYAN}║${NC}"
29
- echo -e "${CYAN}║${NC} ${WHITE} Linux/macOS + Docker ${NC} ${CYAN}║${NC}"
30
- echo -e "${CYAN}║${NC} ${WHITE} ${NC} ${CYAN}║${NC}"
31
- echo -e "${CYAN}╚════════════════════════════════════════════════════════════════════════════╝${NC}"
32
- echo ""
33
-
34
- # ═══════════════════════════════════════════════════════════════════════════════
35
- # STEP 1: Vérifier Node.js et NPM
36
- # ═══════════════════════════════════════════════════════════════════════════════
37
- echo -e "${CYAN}═════════════════════════════════════════════════════════════════════════════${NC}"
38
- echo -e "${CYAN}║ ÉTAPE 1/7: VÉRIFICATION NODE.JS ET NPM ║${NC}"
39
- echo -e "${CYAN}╚════════════════════════════════════════════════════════════════════════════╝${NC}"
40
- echo ""
41
-
42
- if ! command -v node &> /dev/null; then
43
- echo -e "${RED}❌ Node.js non trouvé. Installation requise...${NC}"
44
- echo -e "${YELLOW}📥 Linux: curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -${NC}"
45
- echo -e "${YELLOW}📥 macOS: brew install node${NC}"
46
- exit 1
47
- fi
48
-
49
- echo -e "${GREEN}✅ Node.js détecté:${NC}"
50
- node --version
51
- echo -e "${GREEN}✅ NPM détecté:${NC}"
52
- npm --version
53
- echo ""
54
-
55
- # ═══════════════════════════════════════════════════════════════════════════════
56
- # STEP 2: Installer OverMind-MCP globalement
57
- # ═══════════════════════════════════════════════════════════════════════════════
58
- echo -e "${CYAN}═════════════════════════════════════════════════════════════════════════════${NC}"
59
- echo -e "${CYAN}║ ÉTAPE 2/7: INSTALLATION OVERMIND-MCP ║${NC}"
60
- echo -e "${CYAN}╚════════════════════════════════════════════════════════════════════════════╝${NC}"
61
- echo ""
62
-
63
- echo -e "${YELLOW}📦 Installation d'overmind-mcp (dernière version)...${NC}"
64
- npm install -g overmind-mcp@latest
65
-
66
- echo -e "${GREEN}✅ overmind-mcp installé:${NC}"
67
- npm view overmind-mcp version
68
- echo ""
69
-
70
- # ═══════════════════════════════════════════════════════════════════════════════
71
- # STEP 3: Vérifier Docker
72
- # ═══════════════════════════════════════════════════════════════════════════════
73
- echo -e "${CYAN}═════════════════════════════════════════════════════════════════════════════${NC}"
74
- echo -e "${CYAN}║ ÉTAPE 3/7: VÉRIFICATION DOCKER ║${NC}"
75
- echo -e "${CYAN}╚════════════════════════════════════════════════════════════════════════════╝${NC}"
76
- echo ""
77
-
78
- if ! command -v docker &> /dev/null; then
79
- echo -e "${RED}❌ Docker non trouvé.${NC}"
80
- echo -e "${YELLOW}📥 Linux: https://docs.docker.com/engine/install/${NC}"
81
- echo -e "${YELLOW}📥 macOS: https://www.docker.com/products/docker-desktop/${NC}"
82
- exit 1
83
- fi
84
-
85
- echo -e "${GREEN}✅ Docker détecté:${NC}"
86
- docker --version
87
- echo ""
88
-
89
- # ═══════════════════════════════════════════════════════════════════════════════
90
- # STEP 4: Installer PostgreSQL + pgvector
91
- # ═══════════════════════════════════════════════════════════════════════════════
92
- echo -e "${CYAN}═════════════════════════════════════════════════════════════════════════════${NC}"
93
- echo -e "${CYAN}║ ÉTAPE 4/7: INSTALLATION POSTGRESQL + PGVECTOR ║${NC}"
94
- echo -e "${CYAN}╚════════════════════════════════════════════════════════════════════════════╝${NC}"
95
- echo ""
96
-
97
- npx overmind-mcp install-dependencies
98
- echo ""
99
-
100
- # ═══════════════════════════════════════════════════════════════════════════════
101
- # STEP 5: Créer configuration OverMind
102
- # ═══════════════════════════════════════════════════════════════════════════════
103
- echo -e "${CYAN}═════════════════════════════════════════════════════════════════════════════${NC}"
104
- echo -e "${CYAN}║ ÉTAPE 5/7: CONFIGURATION OVERMIND ║${NC}"
105
- echo -e "${CYAN}╚════════════════════════════════════════════════════════════════════════════╝${NC}"
106
- echo ""
107
-
108
- OVERMIND_DIR="$HOME/.overmind"
109
- mkdir -p "$OVERMIND_DIR"
110
-
111
- # Créer .env de base
112
- if [ ! -f "$OVERMIND_DIR/.env" ]; then
113
- echo -e "${YELLOW}📝 Création configuration .env...${NC}"
114
- cat > "$OVERMIND_DIR/.env" << EOF
115
- # OverMind-MCP Environment Configuration
116
- # Généré par install-overmind-unix.sh
117
-
118
- # PostgreSQL
119
- POSTGRES_HOST=localhost
120
- POSTGRES_PORT=5432
121
- POSTGRES_USER=postgres
122
- POSTGRES_PASSWORD=overmind_temp_password_change_me
123
- POSTGRES_DB=overmind
124
-
125
- # OpenTelemetry (optionnel)
126
- OTEL_ENABLED=false
127
-
128
- # Workspace
129
- OVERMIND_WORKSPACE=$OVERMIND_DIR
130
- EOF
131
- echo -e "${GREEN}✅ Configuration créée:${NC} $OVERMIND_DIR/.env"
132
- fi
133
-
134
- echo ""
135
-
136
- # ═══════════════════════════════════════════════════════════════════════════════
137
- # STEP 6: Lancer infrastructure Docker complète
138
- # ═══════════════════════════════════════════════════════════════════════════════
139
- echo -e "${CYAN}═════════════════════════════════════════════════════════════════════════════${NC}"
140
- echo -e "${CYAN}║ ÉTAPE 6/7: DÉMARRAGE INFRASTRUCTURE DOCKER ║${NC}"
141
- echo -e "${CYAN}╚════════════════════════════════════════════════════════════════════════════╝${NC}"
142
- echo ""
143
-
144
- # Télécharger docker-compose depuis GitHub
145
- echo -e "${YELLOW}📥 Téléchargement docker-compose.yml...${NC}"
146
- curl -sL https://raw.githubusercontent.com/DeamonDev888/overmind-mcp/main/docker-compose.yml -o "$OVERMIND_DIR/docker-compose.yml"
147
- curl -sL https://raw.githubusercontent.com/DeamonDev888/overmind-mcp/main/docker-compose.exporters.yml -o "$OVERMIND_DIR/docker-compose.exporters.yml"
148
-
149
- echo -e "${YELLOW}🚀 Démarrage de l'infrastructure Docker...${NC}"
150
- cd "$OVERMIND_DIR"
151
- docker-compose -f docker-compose.yml up -d
152
-
153
- echo ""
154
- sleep 10
155
-
156
- # ═══════════════════════════════════════════════════════════════════════════════
157
- # STEP 7: Validation de tous les services
158
- # ═══════════════════════════════════════════════════════════════════════════════
159
- echo -e "${CYAN}═════════════════════════════════════════════════════════════════════════════${NC}"
160
- echo -e "${CYAN}║ ÉTAPE 7/7: VALIDATION DES SERVICES ║${NC}"
161
- echo -e "${CYAN}╚════════════════════════════════════════════════════════════════════════════╝${NC}"
162
- echo ""
163
-
164
- echo -e "${YELLOW}🔍 Vérification des containers Docker...${NC}"
165
- echo ""
166
- docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
167
- echo ""
168
-
169
- echo -e "${YELLOW}🧪 Tests de connexion...${NC}"
170
- echo ""
171
-
172
- # Test PostgreSQL
173
- echo -e "${YELLOW} • PostgreSQL:${NC}"
174
- if docker exec overmind-postgres-pgvector pg_isready -U postgres &> /dev/null; then
175
- echo -e "${GREEN} ✅ PostgreSQL actif${NC}"
176
- else
177
- echo -e "${RED} ❌ PostgreSQL non prêt${NC}"
178
- fi
179
-
180
- # Test RabbitMQ
181
- echo -e "${YELLOW} • RabbitMQ:${NC}"
182
- if docker ps --filter "name=rabbitmq" --format "{{.Names}}" | grep -q rabbitmq; then
183
- echo -e "${GREEN} ✅ RabbitMQ actif${NC}"
184
- else
185
- echo -e "${RED} ❌ RabbitMQ non trouvé${NC}"
186
- fi
187
-
188
- # Test Temporal
189
- echo -e "${YELLOW} • Temporal:${NC}"
190
- if docker ps --filter "name=temporal" --format "{{.Names}}" | grep -q temporal; then
191
- echo -e "${GREEN} ✅ Temporal actif${NC}"
192
- else
193
- echo -e "${RED} ❌ Temporal non trouvé${NC}"
194
- fi
195
-
196
- # Test Prometheus
197
- echo -e "${YELLOW} • Prometheus:${NC}"
198
- if docker ps --filter "name=prometheus" --format "{{.Names}}" | grep -q prometheus; then
199
- echo -e "${GREEN} ✅ Prometheus actif${NC}"
200
- else
201
- echo -e "${RED} ❌ Prometheus non trouvé${NC}"
202
- fi
203
-
204
- # Test Grafana
205
- echo -e "${YELLOW} • Grafana:${NC}"
206
- if docker ps --filter "name=grafana" --format "{{.Names}}" | grep -q grafana; then
207
- echo -e "${GREEN} ✅ Grafana actif${NC}"
208
- else
209
- echo -e "${RED} ❌ Grafana non trouvé${NC}"
210
- fi
211
-
212
- # Test Jaeger
213
- echo -e "${YELLOW} Jaeger:${NC}"
214
- if docker ps --filter "name=jaeger" --format "{{.Names}}" | grep -q jaeger; then
215
- echo -e "${GREEN} Jaeger actif${NC}"
216
- else
217
- echo -e "${RED} ❌ Jaeger non trouvé${NC}"
218
- fi
219
-
220
- echo ""
221
-
222
- # ═══════════════════════════════════════════════════════════════════════════════
223
- # RÉSUMÉ FINAL
224
- # ═══════════════════════════════════════════════════════════════════════════════
225
- echo -e "${GREEN}╔════════════════════════════════════════════════════════════════════════════╗${NC}"
226
- echo -e "${GREEN}║${NC} ${WHITE} ✅ INSTALLATION TERMINÉE AVEC SUCCÈS ! ${NC} ${GREEN}║${NC}"
227
- echo -e "${GREEN}╚════════════════════════════════════════════════════════════════════════════╝${NC}"
228
- echo ""
229
- echo -e "${YELLOW}📋 SERVICES DISPONIBLES:${NC}"
230
- echo ""
231
- echo -e "${CYAN}┌─────────────────────────────────────────────────────────────────┐${NC}"
232
- echo -e "${CYAN}│${NC} ${MAGENTA}Docker:${NC} ${CYAN}│${NC}"
233
- echo -e "${CYAN}│${NC} Ouvrez Docker Desktop pour voir tous les containers ${CYAN}│${NC}"
234
- echo -e "${CYAN}│${NC} ${CYAN}│${NC}"
235
- echo -e "${CYAN}│${NC} ${MAGENTA}URLs utiles:${NC} ${CYAN}│${NC}"
236
- echo -e "${CYAN}│${NC} • Prometheus: http://localhost:9090 ${CYAN}│${NC}"
237
- echo -e "${CYAN}│${NC} • Grafana: http://localhost:3000 (admin/admin) ${CYAN}│${NC}"
238
- echo -e "${CYAN}│${NC} • Jaeger: http://localhost:16686 ${CYAN}│${NC}"
239
- echo -e "${CYAN}│${NC} • RabbitMQ: http://localhost:15672 (guest/guest) ${CYAN}│${NC}"
240
- echo -e "${CYAN}│${NC} • Temporal: http://localhost:8233 ${CYAN}│${NC}"
241
- echo -e "${CYAN}└─────────────────────────────────────────────────────────────────┘${NC}"
242
- echo ""
243
- echo -e "${YELLOW}📚 DOCUMENTATION:${NC}"
244
- echo " • https://github.com/DeamonDev888/overmind-mcp"
245
- echo " • https://www.npmjs.com/package/overmind-mcp"
246
- echo ""
247
- echo -e "${YELLOW}🎉 PROCHAINE ÉTAPE:${NC}"
248
- echo " • Lancez: overmind-setup --full"
249
- echo " • Ou créez votre premier agent: overmind create-agent"
250
- echo ""
1
+ #!/bin/bash
2
+ # ============================================================
3
+ # OVERMIND-MCP - INSTALLATION INTELLIGENTE Linux/macOS
4
+ # ============================================================
5
+ # Ce script détecte et utilise l'infrastructure existante
6
+ # - PostgreSQL existant ? Utilise-le !
7
+ # - Ports occupés ? Adapte la configuration !
8
+ # ============================================================
9
+
10
+ set -e
11
+
12
+ # Couleurs
13
+ RED='\033[0;31m'
14
+ GREEN='\033[0;32m'
15
+ YELLOW='\033[1;33m'
16
+ BLUE='\033[0;34m'
17
+ MAGENTA='\033[0;35m'
18
+ CYAN='\033[0;36m'
19
+ WHITE='\033[1;37m'
20
+ NC='\033[0m'
21
+
22
+ clear
23
+ echo -e "${CYAN}***************************************************************${NC}"
24
+ echo -e "${CYAN}* *${NC}"
25
+ echo -e "${MAGENTA} 🚀 OVERMIND-MCP - INSTALLATION INTELLIGENTE ${NC}"
26
+ echo -e "${CYAN}* Linux/macOS + Docker Desktop *${NC}"
27
+ echo -e "${CYAN}* *${NC}"
28
+ echo -e "${CYAN}***************************************************************${NC}"
29
+ echo ""
30
+
31
+ # ============================================================
32
+ # STEP 1: Vérifier Node.js et NPM
33
+ # ============================================================
34
+ echo -e "${CYAN}=======================================================${NC}"
35
+ echo -e "${CYAN}[ STEP 1/8 ] VERIFICATION NODE.JS${NC}"
36
+ echo -e "${CYAN}=======================================================${NC}"
37
+ echo ""
38
+
39
+ if ! command -v node &> /dev/null; then
40
+ echo -e "${RED}[ERREUR] Node.js non trouvé${NC}"
41
+ echo -e "${YELLOW}Linux: curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -${NC}"
42
+ echo -e "${YELLOW}macOS: brew install node${NC}"
43
+ exit 1
44
+ fi
45
+
46
+ echo -e "${GREEN}[OK] Node.js détecté:${NC}"
47
+ node --version
48
+ echo -e "${GREEN}[OK] NPM détecté:${NC}"
49
+ npm --version
50
+ echo ""
51
+
52
+ # ============================================================
53
+ # STEP 2: Installer OverMind-MCP
54
+ # ============================================================
55
+ echo -e "${CYAN}=======================================================${NC}"
56
+ echo -e "${CYAN}[ STEP 2/8 ] INSTALLATION OVERMIND-MCP${NC}"
57
+ echo -e "${CYAN}=======================================================${NC}"
58
+ echo ""
59
+
60
+ echo -e "${YELLOW}[INFO] Installation d'overmind-mcp...${NC}"
61
+ npm install -g overmind-mcp@latest
62
+
63
+ echo -e "${GREEN}[OK] overmind-mcp installé:${NC}"
64
+ npm view overmind-mcp version
65
+ echo ""
66
+
67
+ # ============================================================
68
+ # STEP 3: Vérifier Docker
69
+ # ============================================================
70
+ echo -e "${CYAN}=======================================================${NC}"
71
+ echo -e "${CYAN}[ STEP 3/8 ] VERIFICATION DOCKER${NC}"
72
+ echo -e "${CYAN}=======================================================${NC}"
73
+ echo ""
74
+
75
+ if ! command -v docker &> /dev/null; then
76
+ echo -e "${RED}[ERREUR] Docker non trouvé${NC}"
77
+ echo -e "${YELLOW}Linux: https://docs.docker.com/engine/install/${NC}"
78
+ echo -e "${YELLOW}macOS: https://www.docker.com/products/docker-desktop/${NC}"
79
+ exit 1
80
+ fi
81
+
82
+ echo -e "${GREEN}[OK] Docker détecté:${NC}"
83
+ docker --version
84
+ echo ""
85
+
86
+ # ============================================================
87
+ # STEP 4: Analyse infrastructure existante
88
+ # ============================================================
89
+ echo -e "${CYAN}=======================================================${NC}"
90
+ echo -e "${CYAN}[ STEP 4/8 ] ANALYSE INFRASTRUCTURE${NC}"
91
+ echo -e "${CYAN}=======================================================${NC}"
92
+ echo ""
93
+
94
+ echo -e "${YELLOW}[INFO] Détection des services existants...${NC}"
95
+ echo ""
96
+
97
+ POSTGRES_EXISTS=0
98
+ POSTGRES_CONTAINER=""
99
+ USE_EXTERNAL_POSTGRES=0
100
+
101
+ # Vérifier PostgreSQL sur port 5432
102
+ if docker ps -a --filter "publish=5432" --format "{{.Names}}" | grep -qi "postgres"; then
103
+ POSTGRES_CONTAINER=$(docker ps -a --filter "publish=5432" --format "{{.Names}}" | head -1)
104
+ POSTGRES_EXISTS=1
105
+ USE_EXTERNAL_POSTGRES=1
106
+ echo -e "${GREEN}[OK] PostgreSQL existant détecté: ${POSTGRES_CONTAINER}${NC}"
107
+ else
108
+ echo -e "${YELLOW}[INFO] PostgreSQL non détecté - installation prévue${NC}"
109
+ fi
110
+
111
+ echo ""
112
+ echo -e "${YELLOW}[INFO] Vérification des ports...${NC}"
113
+ netstat -tuln 2>/dev/null | grep ":5432 " > /dev/null && echo -e "${YELLOW}[WARN] Port 5432 utilisé${NC}" || echo -e "${GREEN}[OK] Port 5432 libre${NC}"
114
+ netstat -tuln 2>/dev/null | grep ":5672 " > /dev/null && echo -e "${YELLOW}[WARN] Port 5672 utilisé${NC}" || echo -e "${GREEN}[OK] Port 5672 libre${NC}"
115
+ netstat -tuln 2>/dev/null | grep ":9090 " > /dev/null && echo -e "${YELLOW}[WARN] Port 9090 utilisé${NC}" || echo -e "${GREEN}[OK] Port 9090 libre${NC}"
116
+ netstat -tuln 2>/dev/null | grep ":3000 " > /dev/null && echo -e "${YELLOW}[WARN] Port 3000 utilisé${NC}" || echo -e "${GREEN}[OK] Port 3000 libre${NC}"
117
+
118
+ echo ""
119
+
120
+ # ============================================================
121
+ # STEP 5: PostgreSQL intelligent
122
+ # ============================================================
123
+ echo -e "${CYAN}=======================================================${NC}"
124
+ echo -e "${CYAN}[ STEP 5/8 ] POSTGRESQL INTELLIGENT${NC}"
125
+ echo -e "${CYAN}=======================================================${NC}"
126
+ echo ""
127
+
128
+ if [ "$USE_EXTERNAL_POSTGRES" -eq 1 ]; then
129
+ echo -e "${GREEN}[OK] Utilisation PostgreSQL existant: ${POSTGRES_CONTAINER}${NC}"
130
+
131
+ # Vérifier pgvector
132
+ if docker exec "${POSTGRES_CONTAINER}" psql -U postgres -c "SELECT extname FROM pg_extension WHERE extname = 'vector';" 2>/dev/null | grep -q vector; then
133
+ echo -e "${GREEN}[OK] pgvector détecté${NC}"
134
+ else
135
+ echo -e "${YELLOW}[WARN] pgvector non détecté${NC}"
136
+ echo ""
137
+ echo -e "${YELLOW}Pour installer pgvector manuellement :${NC}"
138
+ echo " docker exec ${POSTGRES_CONTAINER} psql -U postgres -c \"CREATE EXTENSION vector;\""
139
+ fi
140
+ else
141
+ echo -e "${YELLOW}[INFO] Installation PostgreSQL + pgvector...${NC}"
142
+ npx overmind-mcp install-dependencies
143
+ fi
144
+
145
+ echo ""
146
+
147
+ # ============================================================
148
+ # STEP 6: Configuration intelligente
149
+ # ============================================================
150
+ echo -e "${CYAN}=======================================================${NC}"
151
+ echo -e "${CYAN}[ STEP 6/8 ] CONFIGURATION ADAPTIVE${NC}"
152
+ echo -e "${CYAN}=======================================================${NC}"
153
+ echo ""
154
+
155
+ OVERMIND_DIR="$HOME/.overmind"
156
+ mkdir -p "$OVERMIND_DIR"
157
+
158
+ # Créer .env intelligent
159
+ if [ ! -f "$OVERMIND_DIR/.env" ]; then
160
+ echo -e "${YELLOW}[INFO] Création configuration .env...${NC}"
161
+ cat > "$OVERMIND_DIR/.env" << EOF
162
+ # OverMind-MCP Environment Configuration
163
+ # Généré par install-overmind-unix.sh
164
+
165
+ # PostgreSQL
166
+ POSTGRES_HOST=localhost
167
+ POSTGRES_PORT=5432
168
+ POSTGRES_USER=postgres
169
+ POSTGRES_PASSWORD=overmind_temp_password_change_me
170
+ POSTGRES_DB=overmind
171
+
172
+ # Infrastructure détectée
173
+ EOF
174
+
175
+ if [ "$USE_EXTERNAL_POSTGRES" -eq 1 ]; then
176
+ echo "POSTGRES_EXTERNAL=${POSTGRES_CONTAINER}" >> "$OVERMIND_DIR/.env"
177
+ fi
178
+
179
+ cat >> "$OVERMIND_DIR/.env" << EOF
180
+
181
+ # OpenTelemetry
182
+ OTEL_ENABLED=false
183
+
184
+ # Workspace
185
+ OVERMIND_WORKSPACE=$OVERMIND_DIR
186
+ EOF
187
+ echo -e "${GREEN}[OK] Configuration créée: ${OVERMIND_DIR}/.env${NC}"
188
+ fi
189
+
190
+ echo ""
191
+
192
+ # ============================================================
193
+ # STEP 7: Télécharger docker-compose
194
+ # ============================================================
195
+ echo -e "${CYAN}=======================================================${NC}"
196
+ echo -e "${CYAN}[ STEP 7/8 ] TÉLECHARGEMENT CONFIG${NC}"
197
+ echo -e "${CYAN}=======================================================${NC}"
198
+ echo ""
199
+
200
+ echo -e "${YELLOW}[INFO] Téléchargement docker-compose.yml...${NC}"
201
+ curl -sL https://raw.githubusercontent.com/DeamonDev888/overmind-mcp/main/docker-compose.yml -o "$OVERMIND_DIR/docker-compose.yml"
202
+ curl -sL https://raw.githubusercontent.com/DeamonDev888/overmind-mcp/main/docker-compose.exporters.yml -o "$OVERMIND_DIR/docker-compose.exporters.yml"
203
+
204
+ # Adapter docker-compose si PostgreSQL externe
205
+ if [ "$USE_EXTERNAL_POSTGRES" -eq 1 ]; then
206
+ echo -e "${YELLOW}[INFO] Adaptation docker-compose (PostgreSQL externe)...${NC}"
207
+ sed -i.bak 's/^ postgres:/# postgres:/' "$OVERMIND_DIR/docker-compose.yml"
208
+ sed -i.bak 's/^ image: pgvector/# image:/' "$OVERMIND_DIR/docker-compose.yml"
209
+ sed -i.bak 's/^ container_name: overmind-postgres/# container_name:/' "$OVERMIND_DIR/docker-compose.yml"
210
+ echo -e "${GREEN}[OK] Docker-compose adapté (postgres désactivé)${NC}"
211
+ fi
212
+
213
+ echo -e "${GREEN}[OK] Fichers téléchargés${NC}"
214
+
215
+ echo -e "${YELLOW}[INFO] Création fichiers de configuration...${NC}"
216
+ mkdir -p "$OVERMIND_DIR/config/grafana/provisioning/datasources"
217
+
218
+ echo -e "${YELLOW}[INFO] Création config OTEL collector...${NC}"
219
+ cat > "$OVERMIND_DIR/config/otel-collector.yml" << 'EOF'
220
+ receivers:
221
+ otlp:
222
+ protocols:
223
+ grpc:
224
+ endpoint: 0.0.0.0:4317
225
+ http:
226
+ endpoint: 0.0.0.0:4318
227
+
228
+ processors:
229
+ batch:
230
+
231
+ exporters:
232
+ otlp/jaeger:
233
+ endpoint: jaeger:4317
234
+ tls:
235
+ insecure: true
236
+
237
+ prometheusremotewrite:
238
+ endpoint: http://prometheus:9090/api/v1/write
239
+
240
+ service:
241
+ pipelines:
242
+ traces:
243
+ receivers: [otlp]
244
+ processors: [batch]
245
+ exporters: [otlp/jaeger]
246
+
247
+ metrics:
248
+ receivers: [otlp]
249
+ processors: [batch]
250
+ exporters: [prometheusremotewrite]
251
+ EOF
252
+
253
+ echo -e "${YELLOW}[INFO] Création config Prometheus...${NC}"
254
+ cat > "$OVERMIND_DIR/config/prometheus.yml" << 'EOF'
255
+ global:
256
+ scrape_interval: 15s
257
+ evaluation_interval: 15s
258
+
259
+ scrape_configs:
260
+ - job_name: 'prometheus'
261
+ static_configs:
262
+ - targets: ['localhost:9090']
263
+
264
+ - job_name: 'otel-collector'
265
+ static_configs:
266
+ - targets: ['otel-collector:9464']
267
+ EOF
268
+
269
+ echo -e "${YELLOW}[INFO] Création config Grafana datasource...${NC}"
270
+ cat > "$OVERMIND_DIR/config/grafana/provisioning/datasources/prometheus.yml" << 'EOF'
271
+ apiVersion: 1
272
+
273
+ datasources:
274
+ - name: Prometheus
275
+ type: prometheus
276
+ access: proxy
277
+ url: http://prometheus:9090
278
+ isDefault: true
279
+ EOF
280
+
281
+ echo -e "${GREEN}[OK] Fichiers de configuration créés${NC}"
282
+
283
+ echo -e "${YELLOW}[INFO] Création init-db.sql...${NC}"
284
+ curl -sL https://raw.githubusercontent.com/DeamonDev888/overmind-mcp/main/init-db.sql -o "$OVERMIND_DIR/init-db.sql"
285
+ echo -e "${GREEN}[OK] init-db.sql téléchargé${NC}"
286
+
287
+
288
+ echo ""
289
+
290
+ # ============================================================
291
+ # STEP 8: Démarrage intelligent
292
+ # ============================================================
293
+ echo -e "${CYAN}=======================================================${NC}"
294
+ echo -e "${CYAN}[ STEP 8/8 ] DÉMARRAGE DOCKER${NC}"
295
+ echo -e "${CYAN}=======================================================${NC}"
296
+ echo ""
297
+
298
+ echo -e "${YELLOW}[INFO] Démarrage infrastructure Docker...${NC}"
299
+ cd "$OVERMIND_DIR"
300
+ docker-compose -f docker-compose.yml up -d
301
+
302
+ if [ $? -ne 0 ]; then
303
+ echo -e "${YELLOW}[WARN] Certains services ont pu échouer${NC}"
304
+ echo -e "${YELLOW}[INFO] Vérification des services démarrés...${NC}"
305
+ fi
306
+
307
+ echo ""
308
+ sleep 15
309
+
310
+ # ============================================================
311
+ # VALIDATION INTELLIGENTE
312
+ # ============================================================
313
+ echo ""
314
+ echo -e "${CYAN}=======================================================${NC}"
315
+ echo -e "${CYAN}[ VALIDATION DES SERVICES ]${NC}"
316
+ echo -e "${CYAN}=======================================================${NC}"
317
+ echo ""
318
+
319
+ echo -e "${YELLOW}[INFO] Vérification des containers...${NC}"
320
+ echo ""
321
+ docker ps --filter "name=overmind" --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
322
+ echo ""
323
+
324
+ echo -e "${YELLOW}[INFO] Tests de connexion...${NC}"
325
+ echo ""
326
+
327
+ # Test PostgreSQL
328
+ echo -e " • PostgreSQL:"
329
+ if [ "$USE_EXTERNAL_POSTGRES" -eq 1 ]; then
330
+ docker exec "${POSTGRES_CONTAINER}" pg_isready -U postgres > /dev/null 2>&1
331
+ if [ $? -eq 0 ]; then
332
+ echo -e "${GREEN} [OK] PostgreSQL actif (${POSTGRES_CONTAINER})${NC}"
333
+ else
334
+ echo -e "${RED} [FAIL] PostgreSQL non prêt${NC}"
335
+ fi
336
+ else
337
+ docker ps --filter "name=overmind-postgres" --format "{{.Names}}" | grep -q postgres
338
+ if [ $? -eq 0 ]; then
339
+ docker exec overmind-postgres pg_isready -U postgres > /dev/null 2>&1
340
+ if [ $? -eq 0 ]; then
341
+ echo -e "${GREEN} [OK] OverMind PostgreSQL actif${NC}"
342
+ else
343
+ echo -e "${RED} [FAIL] PostgreSQL non prêt${NC}"
344
+ fi
345
+ else
346
+ echo -e "${RED} [FAIL] OverMind PostgreSQL non trouvé${NC}"
347
+ fi
348
+ fi
349
+
350
+ # Test RabbitMQ
351
+ echo -e " • RabbitMQ:"
352
+ docker ps --filter "name=overmind-rabbitmq" --format "{{.Names}}" | grep -q rabbitmq
353
+ if [ $? -eq 0 ]; then
354
+ echo -e "${GREEN} [OK] RabbitMQ actif${NC}"
355
+ else
356
+ echo -e "${RED} [FAIL] RabbitMQ non trouvé${NC}"
357
+ fi
358
+
359
+ # Test Temporal
360
+ echo -e " • Temporal:"
361
+ echo -e "${YELLOW} [INFO] Désactivé (requiert init DB)${NC}"
362
+
363
+ # Test Prometheus
364
+ echo -e " • Prometheus:"
365
+ docker ps --filter "name=overmind-prometheus" --format "{{.Names}}" | grep -q prometheus
366
+ if [ $? -eq 0 ]; then
367
+ echo -e "${GREEN} [OK] Prometheus actif${NC}"
368
+ else
369
+ echo -e "${RED} [FAIL] Prometheus non trouvé${NC}"
370
+ fi
371
+
372
+ # Test Grafana
373
+ echo -e " • Grafana:"
374
+ docker ps --filter "name=overmind-grafana" --format "{{.Names}}" | grep -q grafana
375
+ if [eq $? -eq 0 ]; then
376
+ echo -e "${GREEN} [OK] Grafana actif${NC}"
377
+ else
378
+ echo -e "${RED} [FAIL] Grafana non trouvé${NC}"
379
+ fi
380
+
381
+ # Test Jaeger
382
+ echo -e " • Jaeger:"
383
+ docker ps --filter "name=overmind-jaeger" --format "{{.Names}}" | grep -q jaeger
384
+ if [ $? -eq 0 ]; then
385
+ echo -e "${GREEN} [OK] Jaeger actif${NC}"
386
+ else
387
+ echo -e "${RED} [FAIL] Jaeger non trouvé${NC}"
388
+ fi
389
+
390
+ echo ""
391
+ echo -e "${GREEN}***************************************************************${NC}"
392
+ echo -e "${GREEN}* *${NC}"
393
+ echo -e "${GREEN}* ✅ INSTALLATION TERMINÉE ! *${NC}"
394
+ echo -e "${GREEN}* *${NC}"
395
+ echo -e "${GREEN}***************************************************************${NC}"
396
+ echo ""
397
+ echo -e "${YELLOW}[SERVICES ACTIFS]"
398
+ echo ""
399
+ echo " Ouvrez Docker Desktop → onglet Containers"
400
+ echo ""
401
+ echo " URLs utiles:"
402
+ echo " • Prometheus: http://localhost:9090"
403
+ echo " • Grafana: http://localhost:3000 (admin/admin)"
404
+ echo " • Jaeger: http://localhost:16686"
405
+ echo " • RabbitMQ: http://localhost:15672 (guest/guest)"
406
+ echo " • Temporal: http://localhost:8233"
407
+ echo ""
408
+ echo -e "${YELLOW}[PROCHAINE ÉTAPE]"
409
+ echo ""
410
+ echo " • Créez votre premier agent: overmind create-agent"
411
+ echo " • Ou listez les agents: overmind list-agents"
412
+ echo ""