diff --git a/mcp-server/whoosh-mcp.service b/mcp-server/whoosh-mcp.service new file mode 100644 index 00000000..5028ac58 --- /dev/null +++ b/mcp-server/whoosh-mcp.service @@ -0,0 +1,52 @@ +[Unit] +Description=WHOOSH MCP Server - Distributed AI Orchestration +Documentation=https://github.com/anthropics/whoosh-mcp-server +After=network-online.target +Wants=network-online.target +StartLimitIntervalSec=30 +StartLimitBurst=3 + +[Service] +Type=simple +User=tony +Group=tony +WorkingDirectory=/home/tony/chorus/project-queues/active/WHOOSH/mcp-server + +# Environment variables +Environment=NODE_ENV=production +Environment=WHOOSH_API_URL=https://whoosh.home.deepblack.cloud/api +Environment=WHOOSH_WS_URL=wss://whoosh.home.deepblack.cloud/socket.io +Environment=LOG_LEVEL=info +Environment=AUTO_DISCOVERY=true +Environment=DISCOVERY_INTERVAL=300000 + +# Main service command +ExecStart=/usr/bin/node dist/index.js --daemon +ExecReload=/bin/kill -HUP $MAINPID + +# Restart policy +Restart=always +RestartSec=10 +TimeoutStartSec=30 +TimeoutStopSec=15 + +# Security settings +NoNewPrivileges=true +PrivateTmp=true +ProtectSystem=strict +ProtectHome=read-only +ReadWritePaths=/home/tony/chorus/project-queues/active/WHOOSH/mcp-server/logs +ReadWritePaths=/home/tony/chorus/project-queues/active/WHOOSH/mcp-server/data + +# Resource limits +LimitNOFILE=65536 +MemoryMax=512M +CPUQuota=50% + +# Logging +StandardOutput=journal +StandardError=journal +SyslogIdentifier=whoosh-mcp + +[Install] +WantedBy=multi-user.target \ No newline at end of file diff --git a/push-images.sh b/push-images.sh index 0b06e9f8..e86b0ecc 100755 --- a/push-images.sh +++ b/push-images.sh @@ -1,22 +1,22 @@ #!/bin/bash -# Push Hive images to local registry for swarm deployment +# Push WHOOSH images to local registry for swarm deployment set -e LOCAL_REGISTRY="registry.home.deepblack.cloud" REGISTRY_PORT="5000" NAMESPACE="tony" -BACKEND_IMAGE="hive-backend" -FRONTEND_IMAGE="hive-frontend" +BACKEND_IMAGE="whoosh-backend" +FRONTEND_IMAGE="whoosh-frontend" # Registry authentication REGISTRY_USERNAME="tony" -REGISTRY_PASSWORD_FILE="/home/tony/AI/secrets/passwords_and_tokens/tony-pass" +REGISTRY_PASSWORD_FILE="/home/tony/chorus/business/secrets/tony-pass" -echo "🏗️ Building and pushing Hive images to local registry..." +echo "🏗️ Building and pushing WHOOSH images to local registry..." -# Change to hive directory +# Change to whoosh directory cd "$(dirname "$0")" # Login to registry @@ -33,15 +33,15 @@ echo "🔨 Building images with docker compose..." docker compose -f docker-compose.swarm.yml build # Get the actual image names from docker compose -BACKEND_COMPOSE_IMAGE=$(docker compose -f docker-compose.swarm.yml config | grep "image.*hive-backend" | cut -d: -f2- | xargs) -FRONTEND_COMPOSE_IMAGE=$(docker compose -f docker-compose.swarm.yml config | grep "image.*hive-frontend" | cut -d: -f2- | xargs) +BACKEND_COMPOSE_IMAGE=$(docker compose -f docker-compose.swarm.yml config | grep "image.*whoosh-backend" | cut -d: -f2- | xargs) +FRONTEND_COMPOSE_IMAGE=$(docker compose -f docker-compose.swarm.yml config | grep "image.*whoosh-frontend" | cut -d: -f2- | xargs) echo "📦 Found backend image: $BACKEND_COMPOSE_IMAGE" echo "📦 Found frontend image: $FRONTEND_COMPOSE_IMAGE" # Tag and push backend with v2 echo "📦 Tagging and pushing backend image..." -LOCAL_BACKEND_IMAGE=$(docker images --format "table {{.Repository}}:{{.Tag}}" | grep hive.*backend | head -1) +LOCAL_BACKEND_IMAGE=$(docker images --format "table {{.Repository}}:{{.Tag}}" | grep whoosh.*backend | head -1) if [[ -n "$LOCAL_BACKEND_IMAGE" ]]; then docker tag "$LOCAL_BACKEND_IMAGE" "${LOCAL_REGISTRY}/${NAMESPACE}/${BACKEND_IMAGE}:v2" fi @@ -49,7 +49,7 @@ docker push "${LOCAL_REGISTRY}/${NAMESPACE}/${BACKEND_IMAGE}:v2" # Tag and push frontend with v2 echo "📦 Tagging and pushing frontend image..." -LOCAL_FRONTEND_IMAGE=$(docker images --format "table {{.Repository}}:{{.Tag}}" | grep hive.*frontend | head -1) +LOCAL_FRONTEND_IMAGE=$(docker images --format "table {{.Repository}}:{{.Tag}}" | grep whoosh.*frontend | head -1) if [[ -n "$LOCAL_FRONTEND_IMAGE" ]]; then docker tag "$LOCAL_FRONTEND_IMAGE" "${LOCAL_REGISTRY}/${NAMESPACE}/${FRONTEND_IMAGE}:v2" fi