46 lines
1.3 KiB
Bash
Executable File
46 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
cd "$ROOT_DIR"
|
|
|
|
if [[ ! -f .env ]]; then
|
|
cp .env.example .env
|
|
echo "Created .env from .env.example. Update secrets before production use."
|
|
fi
|
|
|
|
mkdir -p config
|
|
if [[ ! -f config/kubeconfig ]]; then
|
|
echo "No config/kubeconfig found. Create one or set KUBECONFIG_PATH in .env."
|
|
fi
|
|
|
|
echo "Pulling base images..."
|
|
docker compose -f docker-compose.yaml -f docker-compose.mcp.yaml pull || true
|
|
|
|
echo "Building custom MCP service images..."
|
|
docker compose -f docker-compose.yaml -f docker-compose.mcp.yaml build mcp-filesystem mcp-k8s mcp-media
|
|
|
|
echo "Starting full stack..."
|
|
docker compose -f docker-compose.yaml -f docker-compose.mcp.yaml up -d
|
|
|
|
echo "Waiting for Ollama to become available..."
|
|
for _ in {1..30}; do
|
|
if curl -sf http://localhost:11434/api/tags >/dev/null 2>&1; then
|
|
break
|
|
fi
|
|
sleep 2
|
|
done
|
|
|
|
MODEL_NAME="$(grep -E '^OLLAMA_DEFAULT_MODEL=' .env | cut -d'=' -f2- || true)"
|
|
MODEL_NAME="${MODEL_NAME:-llama3.1:8b}"
|
|
|
|
echo "Ensuring Ollama model is available: ${MODEL_NAME}"
|
|
docker compose exec -T ollama ollama pull "$MODEL_NAME" || true
|
|
|
|
echo
|
|
echo "Stack is up."
|
|
echo "Open WebUI: http://localhost:11435"
|
|
echo "LiteLLM: http://localhost:4000"
|
|
echo "MCPO: http://localhost:8001"
|
|
echo "ContextForge (tools profile): http://localhost:8787"
|