CLI als Docker-Container
Der Remote-Agent (
zplcloud proxy) als fertiges Multi-Arch-Image für Raspberry Pi, Synology NAS und jeden Docker-Host. Eine ausgehende Verbindung, keine eingehenden Ports.
Überblick
- Image
docker.zplcloud.com/zplcloud-agent:latest-linux/amd64+linux/arm64, öffentlich, ohne Login. - Führt
zplcloud proxyaus: ausgehendes HTTPS/WebSocket zuapi.zplcloud.com; funktioniert hinter NAT und Firewalls. - Drucker im Tab „Remote Printers“ erhalten Jobs, Profile und Probes über den Agenten: LAN (TCP 9100) oder USB (CDC-ACM seriell oder libusb-Druckerklasse).
restart: unless-stoppedsorgt für Autostart; optional tägliche Logdatei.
Voraussetzungen
- Docker (Desktop, Engine oder Synology Container Manager).
- API-Key (Plattform → API).
- Drucker im selben LAN (TCP 9100) oder per USB angeschlossen.
docker-compose.agent.yml
ZPLCLOUD_API_KEY und ZPLCLOUD_AGENT setzen:
Die Plattform generiert diese Datei mit Ihren Werten unter ZPL CLI (Docker Compose oder Kommandozeile, privater oder Firmen-Scope).
Umgebungsvariablen
| Variable | Pflicht | Bedeutung |
|---|---|---|
| ZPLCLOUD_API_KEY | ja | API-Key; authentifiziert den Agenten. |
| ZPLCLOUD_AGENT | ja | Anzeigename im Tab Remote Printers. |
| ZPLCLOUD_API_BASE | nein | Basis-URL (Standard https://api.zplcloud.com). |
| ZPLCLOUD_VERBOSE | nein | true = SignalR-Negotiation-/Transport-Trace. |
| ZPLCLOUD_LOG | nein | true = zplcloud-<yyyy-MM-dd>.log nach ZPLCLOUD_LOG_DIR schreiben. |
| ZPLCLOUD_LOG_DIR | nein | Log-Verzeichnis im Container (Bind-Mount ./logs/zplcloud-logs). |
| ZPLCLOUD_TIMEOUT | nein | Verbindungs-/Lese-Timeout in ms (Standard 5000). |
Start, Logs, Update
Plattformen
linux/amd64- x64 Linux, x64 Synology, Intel-Docker-Hosts, Docker Desktop unter Windows (WSL2).linux/arm64- 64-Bit Raspberry Pi OS, ARM-Synology, Apple Silicon.- 32-Bit Raspberry Pi: kein Image; nativer Installer (
linux-arm) verwenden.
USB-Drucker
privileged: truedeckt Druckerklasse (libusb) und CDC-ACM seriell ab.- Ohne privileged: Geräte explizit durchreichen (
devices:oben) und udev-Regel anlegen, z. B.GROUP="dialout", MODE="0660"für die Zebra-Vendor-ID.
Fehlersuche
| Symptom | Prüfen |
|---|---|
| Agent nicht online | ZPLCLOUD_API_KEY; docker compose logs -f; ZPLCLOUD_VERBOSE=true für den SignalR-Trace. |
| USB-Drucker nicht gefunden | privileged: true oder devices + udev-Regel; /dev/bus/usb muss gemountet sein. |
| TCP 9100 nicht erreichbar | Drucker-IP/Host im Tab Remote Printers; Drucker und Container im selben LAN. |