Auch verfügbar in:
DE Deutsch
Docker Installation
Inhalt
For the quick version: Quick Start.
docker run vs docker-compose
| Use case | Recommendation |
|---|---|
| Quick test | docker run |
| Permanent installation | docker-compose |
| On Unraid | Community Apps |
Full docker-compose.yml
services:
mesh:
image: ghcr.io/itsweber-official/itsweber-mesh:latest
container_name: itsweber-mesh
restart: unless-stopped
ports:
- "3000:3000"
environment:
MESH_SESSION_SECRET: ${MESH_SESSION_SECRET}
DATA_DIR: /data
PORT: "3000"
TZ: Europe/Berlin
# NODE_OPTIONS: "--max-old-space-size=512" # for low-RAM hosts
volumes:
- ./mesh-data:/data
# Optional — Unraid GraphQL socket for native Unraid stats
# - /var/run/unraid-api.sock:/var/run/unraid-api.sock:ro
healthcheck:
test: ["CMD", "wget", "-qO-", "http://127.0.0.1:3000/api/health"]
interval: 30s
timeout: 5s
retries: 3
Reverse Proxy (Nginx Proxy Manager)
Mesh itself does not handle TLS. Behind NPM:
- Forward stream to
http://<container-ip>:3000 - Wildcard domain e.g.
mesh.yourdomain.com - Enable Force-SSL, HTTP → HTTPS redirect
- Block for WebSockets / SSE:
proxy_read_timeout 3600s;so ESPHome v3 SSE does not drop
Volume layout
/data/
├── config.json ← live config (zod-validated)
├── config.json.pre-v15 ← schema-bump backup
├── config.json.pre-v16 ← never overwritten
├── config.json.pre-v17 ← latest backup
└── memory/ ← optional auto-memory data
Image update
docker pull ghcr.io/itsweber-official/itsweber-mesh:latest
docker stop itsweber-mesh && docker rm itsweber-mesh
docker run -d \
--name itsweber-mesh ... \
-e MESH_SESSION_SECRET="$MESH_SESSION_SECRET" \ # REUSE!
-v /path/mesh-data:/data \
ghcr.io/itsweber-official/itsweber-mesh:latest
Rollback
docker run -d ... ghcr.io/itsweber-official/itsweber-mesh:v1.5.0
cp /path/mesh-data/config.json.pre-v17 /path/mesh-data/config.json
Resource requirements
- RAM: ~80–150 MB idle, peaks up to ~250 MB during large polls
- CPU: <1 % idle, peaks during healthcheck sweeps
- Disk: image ~150 MB, config (
/data) ~100–500 KB