Standort-Installation
End-to-End-Anleitung für die erstmalige Inbetriebnahme eines ProfiPOS- Standorts. Dauer realistisch: 2–4 Stunden für einen kleinen Standort, ein Tag für einen größeren Standort mit mehreren Kassen, Küchendisplay und Bondrucker pro Bereich.
Inhalt
- Hardware-Voraussetzungen
- Netzwerk-Voraussetzungen
- Bondrucker-Verkabelung
- EC-Terminal-Anschluss
- TSE-Anschluss
- MQTT-Broker-Setup
- Server-Installer-Schritte
- Smoke-Test nach Installation
Hardware-Voraussetzungen
Standort-Server
| Komponente | Minimum | Empfohlen |
|---|---|---|
| CPU | 2 Cores | 4 Cores |
| RAM | 4 GB | 8 GB |
| SSD | 64 GB | 128 GB NVMe |
| Netzwerk | 1× Gigabit-LAN | 2× Gigabit-LAN (Bond/LACP) |
| USB | 2× USB-A (TSE-Stick + Reserve) | 4× USB-A |
| Stromversorgung | 230 V | 230 V + USV |
OS-Empfehlung: Debian 12 oder Ubuntu 24.04 LTS für Linux, Windows Server 2022 oder Windows 11 IoT Enterprise für Windows.
Hinweis Standort-Server vs. Cloud: Der Standort-Server hält ausschließlich Standort-eigene Daten (Bestellungen, Sessions, TSE-Log). Stammdaten kommen aus der Cloud. Bei Ausfall der Cloud arbeitet der Standort autark weiter und synchronisiert nach Wiederverbindung.
Kasse (Windows-Thin-Client)
| Komponente | Minimum |
|---|---|
| OS | Windows 10/11 Pro 64-Bit |
| RAM | 4 GB |
| SSD | 32 GB |
| Touchscreen | 15" oder 21" kapazitiv |
| Schnittstellen | 1× LAN, 2× USB (TSE + Drucker), Kassenlade RJ12 |
Bondrucker
- ESC/POS-kompatibel (Epson TM-T20, TM-T88, Star TSP-Reihe)
- LAN-Anbindung (TCP 9100) — empfohlen
- USB direkt an Kasse — Fallback
- Bonbreite 80 mm Standard, 58 mm möglich
EC-Terminal (optional, falls Kartenzahlung)
- ZVT-Protokoll über TCP/IP (Standard Port 22000)
- Verax VX 520, Ingenico Move/5000, CCV A35 — getestet
- Aktiviertes ZVT-Subset auf dem Terminal
TSE (Pflicht ab Sprint AX!)
- Swissbit USB-TSE (Standard, BSI-zertifiziert bis 2032)
- Ein Stick pro physikalischer Kasse
- USB-A direkt an der Kasse (nicht am Hub!)
Optionale Zusatzgeräte
- Kundendisplay (WPF auf Mini-PC oder Touch-PC seitlich an Kasse)
- Küchendisplay (Tablet 10–13" wandmontiert mit Bumper)
- Selfservice-Terminal (kapazitiver Touch ≥ 21", Bondrucker integriert)
- Werbedisplay (TV mit Android-Stick, HDMI-CEC für Standby-Steuerung)
- MDB-Terminal (Vending-Adapter mit MDB-Bus, RS485-Anschluss)
- LED-Modul (ESP32 mit WS2812-LEDs + 4× Relais, Ethernet W5500)
Netzwerk-Voraussetzungen
LAN-Topologie
Internet (Provider)
│
┌────┴────┐
│ Router │
└────┬────┘
│
┌────┴────┐
│ Switch │ Managed L2 (VLAN-fähig empfohlen)
└─┬─┬─┬─┬─┘
│ │ │ │
┌───────────┘ │ │ └───────────┐
│ │ │ │
Standort- Kassen + Bondrucker +
Server Kunden-Display EC-Terminal +
(statisch (DHCP-Reser- Küchendisplay +
192.168.1.10) vierung) LED-Modul
IP-Schema (Empfehlung)
| Bereich | IP-Range | Zweck |
|---|---|---|
| Server | .10 | Standort-Server (statisch) |
| Drucker | .20–.29 | Bondrucker (statisch oder DHCP-Reservierung) |
| Kassen | .30–.59 | Windows-Kassen (DHCP-Reservierung anhand MAC) |
| Displays | .60–.79 | Kundendisplay, Küchendisplay |
| Mobil | .80–.149 | goapp, Lieferapp, Selfservice (DHCP) |
| Hardware | .150–.199 | EC-Terminal, TSE, LED-Modul |
Pflicht-Ports (Standort-LAN)
| Port | Protokoll | Zweck |
|---|---|---|
| 80, 443 | TCP | Cloud-Sync HTTPS |
| 1883 | TCP | MQTT |
| 8883 | TCP | MQTT TLS (optional) |
| 8080 | TCP | Standort-Server REST |
| 9100 | TCP | Bondrucker (ESC/POS) |
| 22000 | TCP | EC-Terminal (ZVT) |
| 34567 | UDP | Geräte-Discovery (Broadcast) |
| 34568 | TCP | Geräte-Pairing |
Firewall
- Cloud-Verbindung: ausgehend nur HTTPS-443 zu
*.profipos.deundapi.esrv.center(Telegram-Proxy). - Eingehend: alle oben genannten Ports nur im LAN, NIEMALS WAN.
- VPN: Wartungs-VPN auf den Standort-Server (Wireguard empfohlen, Anesda-Wartungs-VPN-Profil per Telegram).
Bondrucker-Verkabelung
LAN-Variante (empfohlen)
- Drucker per Patchkabel an Switch.
- IP per DHCP-Reservierung oder manuell über die Drucker-Konsole.
- Standort-Server scannt beim ersten Start via
arp-scanund meldet neue Drucker im Backoffice unter „Geräte → Bondrucker (unzugeordnet)". - Backoffice: Drucker auswählen, Bereich (Theke/Küche/Bar) zuordnen, Bonbreite (58/80) und Auto-Cut konfigurieren.
USB-Variante
- Drucker per USB an Windows-Kasse.
- Windows installiert generischen ESC/POS-Treiber.
- In der ProfiPOS-Kasse unter „Einstellungen → Drucker" das Gerät wählen und einen Testbon drucken.
Kassenlade
- Per RJ12-Kabel an den Drucker.
- Trigger über ESC/POS
ESC p 0 50 50(Pin 2, 50 ms). - Konfiguration im Backoffice unter dem jeweiligen Drucker.
EC-Terminal-Anschluss
- Terminal per LAN an Switch.
- Statische IP oder DHCP-Reservierung.
- ZVT-Port (Standard 22000) auf dem Terminal aktivieren — siehe Hersteller-Doku (z. B. Verifone Konfig-Menü 3-3-2-1).
- Im Backoffice unter „Geräte → EC-Terminals" hinzufügen:
IP, Port, Passwort (Default
000000), Provider (Concardis, PaymentLink, …). - Testtransaktion über die Kasse („Einstellungen → EC-Test").
Achtung: Das Terminal muss vom Provider auf ZVT-Subset freigeschaltet sein. Reine VAS-Geräte sprechen kein ZVT.
TSE-Anschluss
Swissbit USB-TSE
- Stick vor dem ersten Start in eine USB-A-Buchse der Kasse stecken.
- ProfiPOS-Kasse startet, erkennt den Stick und fragt nach der
Admin-PIN (Default
12345). - Kasse initialisiert die TSE mit Mandanten-ID + Standort-Kürzel.
- Backoffice zeigt unter „Geräte → TSE" Seriennummer + Zertifikats- Gültigkeit (Pflicht-Erinnerung 90 Tage vor Ablauf).
Mehrere Kassen — ein TSE pro Kasse?
Empfehlung: Ja, eine TSE pro Kasse. Cloud-TSE (Fiskaly) als Fallback ist geplant, aber USB-TSE ist offline-fähig und billiger.
TSE-Ausfall
- Kasse blockt nach 24 h neue Verkäufe.
- Bons werden mit
[TSE AUSFALL]gedruckt. - Backoffice + Telegram-Alert sofort.
- Nach Wiederinbetriebnahme werden gepufferte Transaktionen nachsigniert.
MQTT-Broker-Setup (Mosquitto)
Wird vom Server-Installer automatisch installiert. Manuelle Konfiguration nur falls externer Broker gewünscht.
Linux (apt)
sudo apt install mosquitto mosquitto-clients
sudo systemctl enable --now mosquitto
Windows
Wird vom Server-Installer als Service mosquitto registriert.
Konfiguration
Datei /etc/mosquitto/conf.d/profipos.conf (Linux) bzw.
C:\Program Files\Mosquitto\conf\profipos.conf (Windows):
listener 1883
allow_anonymous false
password_file /etc/mosquitto/passwd
acl_file /etc/mosquitto/acl
log_dest file /var/log/mosquitto/mosquitto.log
log_type error
log_type warning
persistence true
persistence_location /var/lib/mosquitto/
Benutzer + ACL legt der Standort-Server beim Pairing der Geräte automatisch an.
Server-Installer-Schritte
Linux
curl -L https://github.com/freezweb/de.profipos.server/releases/latest/download/install.sh | sudo bash
Das Skript:
- Installiert
dotnet-runtime-8.0,mosquitto,mariadb-server - Legt User
profiposan - Kopiert Binaries nach
/opt/profipos/server - Erstellt systemd-Unit
profipos-server.service - Öffnet Ports in
ufw - Druckt am Ende den Pairing-Code zur Cloud-Freischaltung
Windows
ProfiPOS-Server-Setup-6.x.x.exeals Administrator ausführen.- Standard-Pfad
C:\Program Files\ProfiPOS\Server. - Installer richtet ein:
- .NET 8 self-contained (im Installer enthalten)
- Mosquitto-Service (1883)
- MariaDB (separate Installation empfohlen)
- Windows-Service
ProfiposServer(Auto-Start + Restart-Policy) - Firewall-Regeln (UDP/34567, TCP/34568, TCP/8080, TCP/1883)
- Beim ersten Service-Start steht im Log der Pairing-Code für die Cloud-Freischaltung.
appsettings.json — Defaults und manueller Overlay
Der Installer legt eine appsettings.json mit sicheren Defaults an.
Folgende Module sind standardmäßig deaktiviert und müssen pro
Standort explizit eingeschaltet werden:
Tse.Aktiv = false— TSE-Provider hochfahrenEc.Aktiv = false— ZVT-Terminal aktivierenReservierfix.Aktiv = false— Reservierfix-Bridge aktivieren
Standardmäßig aktiv (für Vending-/Schank-Standorte):
Schank.Aktiv = true— WMF-E-Protokoll-ListenerMobilePay.Aktiv = true— TWINT/Bluecode/Apple Pay über WebhookAutoUpdate.Aktiv = true— Backoffice-gesteuertes Rollout
Werte werden im Backoffice unter „Standorte → {Standort} → Server-Config"
zentral verwaltet und beim nächsten Cloud-Poll auf den Server gepusht.
Smoke-Test nach Installation
https://{server-ip}:8080/api/v1/health→{"status":"ok"}- Backoffice „Standorte →
{Standort}" zeigt Heartbeat ≤ 60 s alt - Pairing-Code in Backoffice eingeben → Standort-Server bekommt Initial-Snapshot (Artikel, Steuern, Mandant-Konfig)
- Erste Kasse paaren über Discovery (UDP 34567)
- Testbon drucken
- Test-EC-Transaktion (1 € → sofort stornieren)
- TSE-Status grün im Backoffice
- Telegram-Test über Backoffice „Benachrichtigungen"
Wenn alles grün ist → Standort produktiv. Sonst siehe Inbetriebnahme.