diff --git a/docker-compose.yml b/docker-compose.yml index 01a8676..8e3b7db 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,10 +7,11 @@ services: # NOTE: Requires KiCAD to be installed on host machine # The MCP server connects to an existing KiCAD instance via TCP kicad-mcp: + image: kneldevstack-aimiddleware-kicad-mcp build: context: ./vendor/KiCAD-MCP-Server dockerfile: Dockerfile - container_name: KNELDevStack-AIMiddleware-kicad-mcp + container_name: kneldevstack-aimiddleware-kicad-mcp restart: unless-stopped environment: - NODE_ENV=production @@ -22,10 +23,11 @@ services: # Blender MCP - 3D modeling and materials blender-mcp: + image: kneldevstack-aimiddleware-blender-mcp build: context: ./vendor/blender-mcp dockerfile: Dockerfile - container_name: KNELDevStack-AIMiddleware-blender-mcp + container_name: kneldevstack-aimiddleware-blender-mcp restart: unless-stopped environment: - PYTHONUNBUFFERED=1 @@ -35,10 +37,11 @@ services: # FreeCAD MCP - CAD modeling freecad-mcp: + image: kneldevstack-aimiddleware-freecad-mcp build: context: ./vendor/freecad-mcp dockerfile: Dockerfile - container_name: KNELDevStack-AIMiddleware-freecad-mcp + container_name: kneldevstack-aimiddleware-freecad-mcp restart: unless-stopped environment: - PYTHONUNBUFFERED=1 @@ -52,10 +55,11 @@ services: # Kubernetes MCP - K8s/OpenShift management kubernetes-mcp: + image: kneldevstack-aimiddleware-kubernetes-mcp build: context: ./vendor/kubernetes-mcp-server dockerfile: Dockerfile - container_name: KNELDevStack-AIMiddleware-kubernetes-mcp + container_name: kneldevstack-aimiddleware-kubernetes-mcp restart: unless-stopped ports: - "8081:8080" @@ -66,10 +70,11 @@ services: # Docker MCP - Container and compose management docker-mcp: + image: kneldevstack-aimiddleware-docker-mcp build: context: ./vendor/docker-mcp dockerfile: Dockerfile - container_name: KNELDevStack-AIMiddleware-docker-mcp + container_name: kneldevstack-aimiddleware-docker-mcp restart: unless-stopped volumes: - /var/run/docker.sock:/var/run/docker.sock @@ -82,10 +87,11 @@ services: # Proxmox MCP - Hypervisor management proxmox-mcp: + image: kneldevstack-aimiddleware-proxmox-mcp build: context: ./vendor/ProxmoxMCP dockerfile: Dockerfile - container_name: KNELDevStack-AIMiddleware-proxmox-mcp + container_name: kneldevstack-aimiddleware-proxmox-mcp restart: unless-stopped environment: - PYTHONUNBUFFERED=1 @@ -99,11 +105,12 @@ services: # Terraform MCP - IaC automation terraform-mcp: + image: kneldevstack-aimiddleware-terraform-mcp build: context: ./vendor/terraform-mcp-server dockerfile: Dockerfile target: dev - container_name: KNELDevStack-AIMiddleware-terraform-mcp + container_name: kneldevstack-aimiddleware-terraform-mcp restart: unless-stopped environment: - HOME=/terraform @@ -115,10 +122,11 @@ services: # Cloudron MCP - Self-hosted app management cloudron-mcp: + image: kneldevstack-aimiddleware-cloudron-mcp build: context: ./vendor/mcp-cloudron dockerfile: Dockerfile - container_name: KNELDevStack-AIMiddleware-cloudron-mcp + container_name: kneldevstack-aimiddleware-cloudron-mcp restart: unless-stopped environment: - CLOUDRON_URL=${CLOUDRON_URL} @@ -132,20 +140,22 @@ services: # Bash Language Server - LSP for bash bash-language-server: + image: kneldevstack-aimiddleware-bash-language-server build: context: ./vendor/bash-language-server dockerfile: ../../dockerfiles/bash-language-server/Dockerfile - container_name: KNELDevStack-AIMiddleware-bash-language-server + container_name: kneldevstack-aimiddleware-bash-language-server restart: "no" profiles: - dev # Context7 MCP - Documentation framework context7-mcp: + image: kneldevstack-aimiddleware-context7-mcp build: context: ./vendor/context7 dockerfile: ../../dockerfiles/context7/Dockerfile - container_name: KNELDevStack-AIMiddleware-context7-mcp + container_name: kneldevstack-aimiddleware-context7-mcp restart: unless-stopped environment: - UPSTASH_REDIS_REST_URL=${UPSTASH_REDIS_REST_URL} @@ -159,10 +169,11 @@ services: # Nextcloud MCP - 90+ tools across 8 apps nextcloud-mcp: + image: kneldevstack-aimiddleware-nextcloud-mcp build: context: ./vendor/nextcloud-mcp-server dockerfile: Dockerfile - container_name: KNELDevStack-AIMiddleware-nextcloud-mcp + container_name: kneldevstack-aimiddleware-nextcloud-mcp restart: unless-stopped environment: - PYTHONUNBUFFERED=1 @@ -175,24 +186,26 @@ services: - ops # Ghost MCP - CMS integration - # Note: Using npx directly with @fanyangmeng/ghost-mcp package ghost-mcp: - image: node:22-alpine - container_name: KNELDevStack-AIMiddleware-ghost-mcp + image: kneldevstack-aimiddleware-ghost-mcp + build: + context: ./vendor/ghost-mcp + dockerfile: ../../dockerfiles/ghost-mcp/Dockerfile + container_name: kneldevstack-aimiddleware-ghost-mcp restart: unless-stopped environment: - GHOST_API_URL=${GHOST_API_URL} - GHOST_ADMIN_API_KEY=${GHOST_ADMIN_API_KEY} - command: ["npx", "-y", "@fanyangmeng/ghost-mcp"] profiles: - ops # ONLYOFFICE DocSpace MCP - Room and file management docspace-mcp: + image: kneldevstack-aimiddleware-docspace-mcp build: context: ./vendor/docspace-mcp dockerfile: Dockerfile - container_name: KNELDevStack-AIMiddleware-docspace-mcp + container_name: kneldevstack-aimiddleware-docspace-mcp restart: unless-stopped environment: - DOCSPACE_HOST=${DOCSPACE_HOST} @@ -202,10 +215,11 @@ services: # WordPress MCP Adapter wordpress-mcp: + image: kneldevstack-aimiddleware-wordpress-mcp build: context: ./vendor/mcp-adapter dockerfile: Dockerfile - container_name: KNELDevStack-AIMiddleware-wordpress-mcp + container_name: kneldevstack-aimiddleware-wordpress-mcp restart: unless-stopped environment: - WORDPRESS_URL=${WORDPRESS_URL} @@ -220,25 +234,27 @@ services: # ========================================== # Discourse MCP - Forum integration - # Note: Using npx directly due to TypeScript compilation errors in 0.2.4 discourse-mcp: - image: node:24-alpine - container_name: KNELDevStack-AIMiddleware-discourse-mcp + image: kneldevstack-aimiddleware-discourse-mcp + build: + context: ./vendor/discourse-mcp + dockerfile: ../../dockerfiles/discourse-mcp/Dockerfile + container_name: kneldevstack-aimiddleware-discourse-mcp restart: unless-stopped environment: - DISCOURSE_URL=${DISCOURSE_URL} - DISCOURSE_API_KEY=${DISCOURSE_API_KEY} - DISCOURSE_API_USERNAME=${DISCOURSE_API_USERNAME} - command: ["npx", "-y", "@discourse/mcp"] profiles: - ops # IMAP MCP - Email processing imap-mcp: + image: kneldevstack-aimiddleware-imap-mcp build: context: ./vendor/imap-mcp dockerfile: Dockerfile - container_name: KNELDevStack-AIMiddleware-imap-mcp + container_name: kneldevstack-aimiddleware-imap-mcp restart: unless-stopped environment: - PYTHONUNBUFFERED=1 @@ -252,10 +268,11 @@ services: # Postiz MCP - Social media management postizz-mcp: + image: kneldevstack-aimiddleware-postizz-mcp build: context: ./vendor/postizz-MCP dockerfile: Dockerfile - container_name: KNELDevStack-AIMiddleware-postizz-mcp + container_name: kneldevstack-aimiddleware-postizz-mcp restart: unless-stopped environment: - POSTIZ_API_KEY=${POSTIZ_API_KEY} @@ -269,10 +286,11 @@ services: # Matomo MCP Client matomo-mcp: + image: kneldevstack-aimiddleware-matomo-mcp build: context: ./vendor/matomo-mcp-client dockerfile: Dockerfile - container_name: KNELDevStack-AIMiddleware-matomo-mcp + container_name: kneldevstack-aimiddleware-matomo-mcp restart: unless-stopped environment: - MATOMO_URL=${MATOMO_URL} @@ -282,10 +300,11 @@ services: # Bitwarden MCP - Password vault bitwarden-mcp: + image: kneldevstack-aimiddleware-bitwarden-mcp build: context: ./vendor/mcp-server dockerfile: Dockerfile - container_name: KNELDevStack-AIMiddleware-bitwarden-mcp + container_name: kneldevstack-aimiddleware-bitwarden-mcp restart: unless-stopped environment: - BITWARDEN_CLIENT_ID=${BITWARDEN_CLIENT_ID} @@ -302,10 +321,11 @@ services: # GIMP MCP - Image editing gimp-mcp: + image: kneldevstack-aimiddleware-gimp-mcp build: context: ./vendor/gimp-mcp dockerfile: Dockerfile - container_name: KNELDevStack-AIMiddleware-gimp-mcp + container_name: kneldevstack-aimiddleware-gimp-mcp restart: unless-stopped environment: - PYTHONUNBUFFERED=1 @@ -315,10 +335,11 @@ services: # Snipe-IT MCP - Asset inventory snipeit-mcp: + image: kneldevstack-aimiddleware-snipeit-mcp build: context: ./vendor/snipeit-mcp dockerfile: Dockerfile - container_name: KNELDevStack-AIMiddleware-snipeit-mcp + container_name: kneldevstack-aimiddleware-snipeit-mcp restart: unless-stopped environment: - PYTHONUNBUFFERED=1 @@ -330,10 +351,11 @@ services: # Redmine MCP - Project management mcp-redmine: + image: kneldevstack-aimiddleware-mcp-redmine build: context: ./vendor/mcp-redmine dockerfile: Dockerfile - container_name: KNELDevStack-AIMiddleware-mcp-redmine + container_name: kneldevstack-aimiddleware-mcp-redmine restart: unless-stopped environment: - PYTHONUNBUFFERED=1 @@ -345,10 +367,11 @@ services: # Ansible MCP - IT automation mcp-ansible: + image: kneldevstack-aimiddleware-mcp-ansible build: context: ./vendor/mcp-ansible dockerfile: Dockerfile - container_name: KNELDevStack-AIMiddleware-mcp-ansible + container_name: kneldevstack-aimiddleware-mcp-ansible restart: unless-stopped environment: - PYTHONUNBUFFERED=1 @@ -361,10 +384,11 @@ services: # Elasticsearch MCP elasticsearch-mcp: + image: kneldevstack-aimiddleware-elasticsearch-mcp build: context: ./vendor/mcp-server-elasticsearch dockerfile: Dockerfile - container_name: KNELDevStack-AIMiddleware-elasticsearch-mcp + container_name: kneldevstack-aimiddleware-elasticsearch-mcp restart: unless-stopped environment: - ELASTICSEARCH_URL=${ELASTICSEARCH_URL:-http://localhost:9200} @@ -377,10 +401,11 @@ services: # Audiobook MCP Server audiobook-mcp: + image: kneldevstack-aimiddleware-audiobook-mcp build: context: ./vendor/audiobook-mcp-server dockerfile: Dockerfile - container_name: KNELDevStack-AIMiddleware-audiobook-mcp + container_name: kneldevstack-aimiddleware-audiobook-mcp restart: unless-stopped environment: - AUDIOBOOK_LIBRARY_PATH=${AUDIOBOOK_LIBRARY_PATH:-/audiobooks} @@ -396,10 +421,11 @@ services: # Draw.io MCP Server drawio-mcp: + image: kneldevstack-aimiddleware-drawio-mcp build: context: ./vendor/drawio-mcp-server dockerfile: Dockerfile - container_name: KNELDevStack-AIMiddleware-drawio-mcp + container_name: kneldevstack-aimiddleware-drawio-mcp restart: unless-stopped environment: - DRAWIO_URL=${DRAWIO_URL:-https://app.diagrams.net} @@ -409,20 +435,22 @@ services: # Docker Language Server docker-language-server: + image: kneldevstack-aimiddleware-docker-language-server build: context: ./vendor/docker-language-server dockerfile: ../../dockerfiles/docker-language-server/Dockerfile - container_name: KNELDevStack-AIMiddleware-docker-language-server + container_name: kneldevstack-aimiddleware-docker-language-server restart: "no" profiles: - dev # Marksman LSP - Markdown language server marksman: + image: kneldevstack-aimiddleware-marksman build: context: ./vendor/marksman dockerfile: ../../dockerfiles/marksman/Dockerfile - container_name: KNELDevStack-AIMiddleware-marksman + container_name: kneldevstack-aimiddleware-marksman restart: "no" profiles: - dev @@ -433,10 +461,11 @@ services: # Penpot MCP - Design collaboration platform penpot-mcp: + image: kneldevstack-aimiddleware-penpot-mcp build: context: ./vendor/penpot-mcp dockerfile: Dockerfile - container_name: KNELDevStack-AIMiddleware-penpot-mcp + container_name: kneldevstack-aimiddleware-penpot-mcp restart: unless-stopped environment: - PENPOT_URL=${PENPOT_URL:-https://design.penpot.app}