Sign inSign up

drinklist/print-proxy

By drinklist

•Updated 3 days ago

Druck-Proxy für Getränkeliste.de/drinklist.app: Bons an ESC/POS-Bondrucker im Vereinsnetz

Image
0

293

drinklist/print-proxy repository overview

⁠Drinklist Druck-Proxy / Print Proxy

Bons von Getränkeliste.de⁠ / drinklist.app⁠ auf günstigen ESC/POS-Bondruckern im Vereinsnetz – per USB oder Netzwerk, ohne Portfreigabe. English below.


⁠Deutsch

Der Druck-Proxy ist ein kleines Programm für einen Raspberry Pi, ein NAS oder einen PC im Vereinsnetz. Er baut die Verbindung zu Getränkeliste.de von sich aus auf (WebSocket, Rückfall Long-Polling) und gibt Kassenbons, Z-Bons und Bestellbons an ESC/POS-Bondrucker weiter.

  • Drucker: Netzwerk (nur private Adressen, Ports 9100–9109) oder USB (/dev/usb/lp0). Nur Bondrucker mit automatischem Abschneider – jeder Bon endet mit einem Teilschnitt.
  • Plattformen: linux/amd64 (PC, NAS), linux/arm64 (Raspberry Pi 3/4/5 mit 64-Bit-System), linux/arm/v7 (Raspberry Pi 2/3/4 mit 32-Bit-System). Raspberry Pi 1 und Zero der ersten Generation werden nicht unterstützt.
  • Schlank und sicher: .NET-10-Laufzeit „chiseled“ (ohne Shell und Paketverwaltung), läuft als Benutzer 1654, Speichergrenze 128 MB, typisch 20–40 MB.
⁠Einrichten
  1. In der Verwaltung (/admin): Betrieb → Bondrucker → Druck-Proxys → Proxy koppeln. Das Geräte-Token wird nur einmal angezeigt.
  2. Dort den fertigen Startbefehl (docker run) oder die docker-compose.yml kopieren und auf dem Raspberry Pi, NAS oder PC ausführen.
  3. Sobald der Proxy „verbunden“ ist: Bondrucker mit Anbindung „Druck-Proxy“ anlegen und „Testdruck“ wählen.

Anleitung: Bondrucker einrichten⁠

⁠docker run
docker run -d --name drinklist-print-proxy --restart unless-stopped \
  -e DRINKLIST_SERVER=https://drinklist.app \
  -e DRINKLIST_PROXY_TOKEN=dlp_… \
  -v drinklist-print-proxy:/data \
  drinklist/print-proxy:latest

USB-Drucker zusätzlich: --device /dev/usb/lp0 --group-add 7 (Gruppe lp auf Raspberry Pi OS/Debian/Ubuntu).

⁠docker compose
name: drinklist-print-proxy
services:
  print-proxy:
    image: drinklist/print-proxy:latest
    container_name: drinklist-print-proxy
    restart: unless-stopped
    environment:
      DRINKLIST_SERVER: "https://drinklist.app"
      DRINKLIST_PROXY_TOKEN: "dlp_…"
    volumes:
      - proxy-data:/data
    # nur für USB-Drucker:
    # devices:
    #   - /dev/usb/lp0:/dev/usb/lp0
    # group_add:
    #   - "7"
    logging:
      driver: json-file
      options:
        max-size: "1m"
        max-file: "3"
volumes:
  proxy-data:

Starten mit docker compose up -d, Protokoll mit docker compose logs -f.

⁠Drucker ohne Server prüfen
docker run --rm drinklist/print-proxy --probe 192.168.1.50        # erreichbar? Papier/Deckel (falls der Drucker antwortet)
docker run --rm drinklist/print-proxy --test-print 192.168.1.50   # Testseite mit Schnitt
docker run --rm --device /dev/usb/lp0 --group-add 7 drinklist/print-proxy --test-print /dev/usb/lp0
⁠Einstellungen (Umgebungsvariablen)
VariableBedeutung
DRINKLIST_PROXY_TOKEN / DRINKLIST_PROXY_TOKEN_FILEGeräte-Token aus der Verwaltung (Pflicht)
DRINKLIST_SERVERServer, Standard https://drinklist.app
DRINKLIST_PROXY_TRANSPORTauto | websockets | longpolling
DRINKLIST_PROXY_DATADatenordner, im Image /data (Liste gedruckter Aufträge gegen Doppeldruck nach einem Neustart)
DRINKLIST_PROXY_STATUSDruckerstatus abfragen: query | connect | off
DRINKLIST_PROXY_PORTSerlaubte Druckerports, Standard 9100-9109
DRINKLIST_PROXY_LOG_LEVELInformation | Debug | Warning

Token geheim halten: Wer das Token kennt, bekommt die Bons dieses Vereins. In der Verwaltung lässt sich jederzeit ein neues Token erzeugen oder der Proxy entfernen – die alte Verbindung endet sofort.

⁠Tags

latest = aktuelle Fassung, dazu je Fassung ein Datums-Tag (z. B. 2026.10.03) zum Festhalten bzw. Zurückgehen.


⁠English

The print proxy is a small program for a Raspberry Pi, NAS or PC in your club network. It connects to drinklist.app on its own (WebSocket, long-polling fallback) – no port forwarding – and passes receipts, Z reports and order slips to ESC/POS receipt printers.

  • Printers: network (private addresses only, ports 9100–9109) or USB (/dev/usb/lp0). Only receipt printers with an automatic cutter – every receipt ends with a partial cut.
  • Platforms: linux/amd64 (PC, NAS), linux/arm64 (Raspberry Pi 3/4/5, 64-bit OS), linux/arm/v7 (Raspberry Pi 2/3/4, 32-bit OS). Raspberry Pi 1 and the first Zero are not supported.
  • Small and locked down: chiseled .NET 10 runtime (no shell, no package manager), runs as user 1654, 128 MB memory limit, typically 20–40 MB.
⁠Setup
  1. In the admin console (/admin): Operations → Receipt printers → Print proxies → Pair proxy. The device token is shown only once.
  2. Copy the ready-made start command (docker run) or the docker-compose.yml and run it on your Raspberry Pi, NAS or PC (examples above; USB printers additionally need --device /dev/usb/lp0 --group-add 7).
  3. Once the proxy shows as connected: add a receipt printer with connection “Print proxy” and run “Test print”.

Guide: Set up a receipt printer⁠

Check a printer without the server: docker run --rm drinklist/print-proxy --test-print 192.168.1.50 (or --probe). All settings are listed in the table above.

Keep the token secret: anyone with the token receives this club's receipts. You can issue a new token or remove the proxy in the admin console at any time – the old connection ends immediately.

Tags: latest plus a date tag per release (e.g. 2026.10.03) for pinning or rolling back.

Tag summary

Content type

Image

Digest

sha256:09eac1a75…

Size

41 MB

Last updated

3 days ago

docker pull drinklist/print-proxy