refactor: standardize container names to lowercase kneldevstack-aimiddleware-*
- Update all 29 container_name fields from KNELDevStack-AIMiddleware-* to kneldevstack-aimiddleware-* - Add explicit image: fields to all services for consistent image naming - Fix ghost-mcp and discourse-mcp to use build context instead of direct npx calls - Ensures consistent lowercase naming across all services This resolves confusion between service names, image names, and container names. All three tiers (service, image, container) now use the same lowercase naming convention.
This commit is contained in:
@@ -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}
|
||||
|
||||
Reference in New Issue
Block a user