36 lines
1.7 KiB
YAML
36 lines
1.7 KiB
YAML
# MikroMCP — BF, Docker auf Mac mini (10.40.41.167)
|
|
# Prebuilt-Image (kein Source-Build nötig). HTTP/streamable für Remote-Clients.
|
|
#
|
|
# SECURITY: Dieser Endpoint kann RouterOS administrieren. Er ist NUR durch Bearer-Token
|
|
# (identities.yaml, bcrypt) + Confirmation-Secret geschützt. Daher:
|
|
# - ports auf das Mgmt-/LAN-Interface binden, NICHT 0.0.0.0 ins Internet,
|
|
# - später hinter NPM (FQDN + Auth/TLS) hängen,
|
|
# - dedizierter RouterOS-User 'mcp-api' (NICHT admin) — siehe ../README.md.
|
|
#
|
|
# Deploy (auf dem mini):
|
|
# scp -r mcp/mikromcp 10.40.41.167:/opt/docker/mikromcp
|
|
# ssh 10.40.41.167 'cd /opt/docker/mikromcp && cp .env.example .env && $EDITOR .env'
|
|
# ssh 10.40.41.167 'cd /opt/docker/mikromcp && docker compose up -d && docker compose logs -f'
|
|
|
|
services:
|
|
mikromcp:
|
|
image: ghcr.io/alikarami/mikromcp:latest
|
|
container_name: mikromcp
|
|
restart: unless-stopped
|
|
environment:
|
|
MIKROMCP_TRANSPORT: http
|
|
MIKROMCP_PORT: "3000"
|
|
MIKROMCP_BIND_HOST: "0.0.0.0" # im Container; Exposure via ports-Mapping unten begrenzen
|
|
MIKROMCP_CONFIG_PATH: /app/config/routers.yaml
|
|
MIKROMCP_IDENTITIES_PATH: /app/config/identities.yaml
|
|
MIKROMCP_CONFIRMATION_SECRET: ${MIKROMCP_CONFIRMATION_SECRET}
|
|
MIKROMCP_AUDIT_LOG_PATH: /app/config/audit.ndjson
|
|
MIKROMCP_HTTP_RATE_LIMIT_RPM: "60"
|
|
MIKROMCP_LOG_LEVEL: info
|
|
env_file:
|
|
- .env # ROUTER_AP1_USER/PASS, ROUTER_AP2_USER/PASS, secret
|
|
volumes:
|
|
- ./config:/app/config # routers.yaml + identities.yaml + audit.ndjson
|
|
ports:
|
|
- "10.40.41.167:3000:3000" # nur auf LAN-IP des mini binden (nicht überall)
|