initial commit
This commit is contained in:
45
scripts/bootstrap.sh
Executable file
45
scripts/bootstrap.sh
Executable file
@@ -0,0 +1,45 @@
|
||||
#!/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"
|
||||
Reference in New Issue
Block a user