132 lines
3.5 KiB
YAML
132 lines
3.5 KiB
YAML
services:
|
|
proxmox-mcp-pve:
|
|
image: ghcr.io/rekklesna/proxmoxmcp-plus:latest
|
|
container_name: proxmox-mcp-pve
|
|
restart: unless-stopped
|
|
init: true
|
|
stop_grace_period: 30s
|
|
ports:
|
|
- "${MCP_BIND_ADDRESS:-192.168.31.100}:8811:8811"
|
|
environment:
|
|
PROXMOX_API_KEY: ${PROXMOX_PVE_API_KEY:?PROXMOX_PVE_API_KEY is required}
|
|
volumes:
|
|
- type: bind
|
|
source: ${MCP_CONFIG_ROOT:-/mnt/ssd/apps/mcp}/pve/config.json
|
|
target: /app/proxmox-config/config.json
|
|
read_only: true
|
|
read_only: true
|
|
tmpfs:
|
|
- /tmp:size=64m,noexec,nosuid,nodev
|
|
pids_limit: 128
|
|
mem_limit: 256m
|
|
cpus: 0.5
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
cap_drop:
|
|
- ALL
|
|
logging: &default-logging
|
|
driver: json-file
|
|
options:
|
|
max-size: "10m"
|
|
max-file: "3"
|
|
networks:
|
|
- mcp-network
|
|
|
|
proxmox-mcp-kybinka:
|
|
image: ghcr.io/rekklesna/proxmoxmcp-plus:latest
|
|
container_name: proxmox-mcp-kybinka
|
|
restart: unless-stopped
|
|
init: true
|
|
stop_grace_period: 30s
|
|
ports:
|
|
- "${MCP_BIND_ADDRESS:-192.168.31.100}:8812:8811"
|
|
environment:
|
|
PROXMOX_API_KEY: ${PROXMOX_KYBINKA_API_KEY:?PROXMOX_KYBINKA_API_KEY is required}
|
|
volumes:
|
|
- type: bind
|
|
source: ${MCP_CONFIG_ROOT:-/mnt/ssd/apps/mcp}/kybinka/config.json
|
|
target: /app/proxmox-config/config.json
|
|
read_only: true
|
|
read_only: true
|
|
tmpfs:
|
|
- /tmp:size=64m,noexec,nosuid,nodev
|
|
pids_limit: 128
|
|
mem_limit: 256m
|
|
cpus: 0.5
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
cap_drop:
|
|
- ALL
|
|
logging: *default-logging
|
|
networks:
|
|
- mcp-network
|
|
|
|
proxmox-mcp-pve1:
|
|
image: ghcr.io/rekklesna/proxmoxmcp-plus:latest
|
|
container_name: proxmox-mcp-pve1
|
|
restart: unless-stopped
|
|
init: true
|
|
stop_grace_period: 30s
|
|
ports:
|
|
- "${MCP_BIND_ADDRESS:-192.168.31.100}:8813:8811"
|
|
environment:
|
|
PROXMOX_API_KEY: ${PROXMOX_PVE1_API_KEY:?PROXMOX_PVE1_API_KEY is required}
|
|
volumes:
|
|
- type: bind
|
|
source: ${MCP_CONFIG_ROOT:-/mnt/ssd/apps/mcp}/pve1/config.json
|
|
target: /app/proxmox-config/config.json
|
|
read_only: true
|
|
read_only: true
|
|
tmpfs:
|
|
- /tmp:size=64m,noexec,nosuid,nodev
|
|
pids_limit: 128
|
|
mem_limit: 256m
|
|
cpus: 0.5
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
cap_drop:
|
|
- ALL
|
|
logging: *default-logging
|
|
networks:
|
|
- mcp-network
|
|
|
|
truenas-mcp:
|
|
build:
|
|
context: ./truenas
|
|
dockerfile: Dockerfile
|
|
container_name: truenas-mcp
|
|
restart: unless-stopped
|
|
init: true
|
|
stop_grace_period: 30s
|
|
ports:
|
|
- "${MCP_BIND_ADDRESS:-192.168.31.100}:8814:8000"
|
|
environment:
|
|
TRUENAS_URL: ${TRUENAS_URL:-http://192.168.31.100}
|
|
TRUENAS_API_KEY: ${TRUENAS_API_KEY:?TRUENAS_API_KEY is required}
|
|
TRUENAS_VERIFY_SSL: ${TRUENAS_VERIFY_SSL:-false}
|
|
TRUENAS_ENABLE_DESTRUCTIVE_OPS: ${TRUENAS_ENABLE_DESTRUCTIVE_OPS:-false}
|
|
TRUENAS_LOG_LEVEL: ${TRUENAS_LOG_LEVEL:-INFO}
|
|
volumes:
|
|
- type: bind
|
|
source: ${MCP_CONFIG_ROOT:-/mnt/ssd/apps/mcp}/truenas/config.json
|
|
target: /app/config.json
|
|
read_only: true
|
|
read_only: true
|
|
tmpfs:
|
|
- /tmp:size=64m,noexec,nosuid,nodev
|
|
pids_limit: 128
|
|
mem_limit: 256m
|
|
cpus: 0.5
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
cap_drop:
|
|
- ALL
|
|
logging: *default-logging
|
|
networks:
|
|
- mcp-network
|
|
|
|
networks:
|
|
mcp-network:
|
|
name: mcp-network
|
|
driver: bridge
|