69 lines
2.2 KiB
JSON
69 lines
2.2 KiB
JSON
{
|
|
"$schema": "https://schemas.runtipi.io/dynamic-compose.json",
|
|
"schemaVersion": 2,
|
|
"services": [
|
|
{
|
|
"name": "mcp-manager",
|
|
"image": "git.alexzaw.dev/alexz/mcp-manager:1.3.0",
|
|
"isMain": true,
|
|
"internalPort": 8001,
|
|
"dependsOn": {
|
|
"mcp-manager-db": { "condition": "service_healthy" }
|
|
},
|
|
"environment": [
|
|
{ "key": "TZ", "value": "${TZ}" },
|
|
{ "key": "MONGO_URL", "value": "mongodb://mcp-manager-db:27017" },
|
|
{ "key": "DB_NAME", "value": "mcp_manager" },
|
|
{ "key": "DATA_DIR", "value": "/data" },
|
|
{ "key": "STATIC_DIR", "value": "/app/static" },
|
|
{ "key": "JWT_SECRET", "value": "${JWT_SECRET}" },
|
|
{ "key": "ADMIN_EMAIL", "value": "${ADMIN_EMAIL}" },
|
|
{ "key": "ADMIN_PASSWORD", "value": "${ADMIN_PASSWORD}" },
|
|
{ "key": "FRONTEND_URL", "value": "${APP_PROTOCOL}://${APP_DOMAIN}" },
|
|
{ "key": "AGENT_PROVIDER", "value": "anthropic" },
|
|
{ "key": "ANTHROPIC_MODEL", "value": "claude-sonnet-4-6" },
|
|
{ "key": "ANTHROPIC_API_KEY", "value": "${ANTHROPIC_API_KEY}" },
|
|
{ "key": "OLLAMA_BASE_URL", "value": "http://192.168.0.32:11434/v1" },
|
|
{ "key": "OLLAMA_MODEL", "value": "gemma4:26b-tuned" },
|
|
{ "key": "OLLAMA_API_KEY", "value": "ollama" },
|
|
{ "key": "AGENT_CHAT_ENABLED", "value": "true" }
|
|
],
|
|
"volumes": [
|
|
{
|
|
"hostPath": "${APP_DATA_DIR}/data/app",
|
|
"containerPath": "/data",
|
|
"readOnly": false
|
|
}
|
|
],
|
|
"healthCheck": {
|
|
"test": "curl -fsS http://127.0.0.1:8001/api/ || exit 1",
|
|
"interval": "30s",
|
|
"timeout": "5s",
|
|
"retries": 3,
|
|
"startPeriod": "30s"
|
|
}
|
|
},
|
|
{
|
|
"name": "mcp-manager-db",
|
|
"image": "mongo:7",
|
|
"isMain": false,
|
|
"command": ["--quiet"],
|
|
"volumes": [
|
|
{
|
|
"hostPath": "${APP_DATA_DIR}/data/db",
|
|
"containerPath": "/data/db",
|
|
"readOnly": false
|
|
}
|
|
],
|
|
"healthCheck": {
|
|
"test": "mongosh --quiet --eval 'db.runCommand({ ping: 1 }).ok' || exit 1",
|
|
"interval": "300s",
|
|
"timeout": "10s",
|
|
"retries": 5,
|
|
"startPeriod": "30s",
|
|
"startInterval": "5s"
|
|
}
|
|
}
|
|
]
|
|
}
|