Initial import from bf-network-r6.opencode — opencode migration
This commit is contained in:
11
mcp/mikromcp/.env.example
Normal file
11
mcp/mikromcp/.env.example
Normal file
@@ -0,0 +1,11 @@
|
||||
# MikroMCP BF — Secrets. Kopiere zu .env (gitignored), fülle Werte.
|
||||
#
|
||||
# Confirmation-Secret (Pflicht im HTTP-Modus): openssl rand -hex 32
|
||||
MIKROMCP_CONFIRMATION_SECRET=
|
||||
|
||||
# Dedizierter RouterOS-User (NICHT admin) — anlegen lt. README.md §RouterOS-User.
|
||||
# Policies nötig: read,write,api,rest-api,test,ssh,sniff (ftp nur für upload_file).
|
||||
ROUTER_AP1_USER=mcp-api
|
||||
ROUTER_AP1_PASS=
|
||||
ROUTER_AP2_USER=mcp-api
|
||||
ROUTER_AP2_PASS=
|
||||
60
mcp/mikromcp/config/routers.yaml
Normal file
60
mcp/mikromcp/config/routers.yaml
Normal file
@@ -0,0 +1,60 @@
|
||||
# MikroMCP Router-Registry — BF Netzwerk (final IPs, TP21)
|
||||
# Credentials NICHT hier, sondern via ENV (envPrefix -> ROUTER_<PREFIX>_USER/PASS in .env).
|
||||
# Alle Geräte sprechen REST über PLAIN HTTP auf Port 80.
|
||||
# -> tls.enabled: false (rest-client.ts: scheme = tls.enabled ? https : http)
|
||||
# Änderungen hier werden erst nach MikroMCP-Neustart wirksam.
|
||||
#
|
||||
# TP21.1-Stand (2026-08-08): crs326-core IST der L3-Router (Routing/DHCP/DNS/NAT/WG-Hub live).
|
||||
# core mgmt = 10.40.99.1 (vlan99-SVI, aus VLAN10-Client via core geroutet erreichbar;
|
||||
# Same-Subnet-Fallback = 10.40.10.1). branch = 10.40.99.2 (L2, .10.2 temp).
|
||||
# ap1/ap2 (.99.11/.99.12) = Zielwerte — ap1 ist derzeit Werksreset/getrennt und kommt
|
||||
# erst mit der WLAN-Neuprovisionierung (eigene Session) zurück.
|
||||
|
||||
routers:
|
||||
ap1:
|
||||
host: "10.40.99.11"
|
||||
port: 80
|
||||
tls:
|
||||
enabled: false
|
||||
rejectUnauthorized: true
|
||||
credentials:
|
||||
source: "env"
|
||||
envPrefix: "ROUTER_AP1"
|
||||
tags: ["bf", "wifi", "access-point"]
|
||||
rosVersion: "7.23"
|
||||
|
||||
ap2:
|
||||
host: "10.40.99.12"
|
||||
port: 80
|
||||
tls:
|
||||
enabled: false
|
||||
rejectUnauthorized: true
|
||||
credentials:
|
||||
source: "env"
|
||||
envPrefix: "ROUTER_AP2"
|
||||
tags: ["bf", "wifi", "access-point"]
|
||||
rosVersion: "7.23"
|
||||
|
||||
crs326-core:
|
||||
host: "10.40.99.1"
|
||||
port: 80
|
||||
tls:
|
||||
enabled: false
|
||||
rejectUnauthorized: true
|
||||
credentials:
|
||||
source: "env"
|
||||
envPrefix: "CRS326_CORE"
|
||||
tags: ["bf", "switch", "core", "l3-router"]
|
||||
rosVersion: "7.19.5"
|
||||
|
||||
crs326-branch:
|
||||
host: "10.40.99.2"
|
||||
port: 80
|
||||
tls:
|
||||
enabled: false
|
||||
rejectUnauthorized: true
|
||||
credentials:
|
||||
source: "env"
|
||||
envPrefix: "CRS326_BRANCH"
|
||||
tags: ["bf", "switch", "branch"]
|
||||
rosVersion: "7.19.5"
|
||||
35
mcp/mikromcp/docker-compose.yml
Normal file
35
mcp/mikromcp/docker-compose.yml
Normal file
@@ -0,0 +1,35 @@
|
||||
# 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)
|
||||
Reference in New Issue
Block a user