Skip to content

Installation and operations

OdbavTo is an open-source Django application you can run yourself. This section is for administrators: installation, configuration, printers, updates and backups.

Deployment options

Server (Docker) Local PC
For whom Multiple users and events, access from anywhere One event, one laptop at the entrance
Database PostgreSQL 17 SQLite (file)
Runs as Docker Compose: web + Postgres + Redis Python in a virtual environment
HTTPS Reverse proxy (e.g. Caddy) with a certificate Self-signed certificate
Printing WebUSB, agent, network (if the printer is reachable from the server) WebUSB, network, Direct (Windows)
Guide Docker installation Local installation

Recommendation

For permanent operation and multiple users, choose Docker on a server. A local installation is useful when the venue has no reliable internet or when you just want to try the app.

Architecture

flowchart LR
    U[Browser<br/>scanner / kiosk] -- HTTPS + WebSocket --> P[Reverse proxy<br/>Caddy]
    P --> W[web<br/>Django + Daphne :8000]
    W --> DB[(PostgreSQL 17)]
    W --> R[(Redis 7<br/>WebSocket channels)]
    W -- TCP 9100 --> N[Network printer]
    A[Print agent<br/>PC at the entrance] -- WebSocket / polling --> P
    U -- WebUSB --> T[USB printer]
  • web: the Django application under the Daphne ASGI server. Serves HTTP and WebSockets (real-time delivery of print jobs).
  • PostgreSQL: application data.
  • Redis: only the channel layer for WebSockets, nothing is stored permanently.
  • Reverse proxy: terminates HTTPS. Without HTTPS, neither the camera nor WebUSB works.

Browser requirements

  • Scanner and kiosk: any modern browser with a camera (Chrome, Edge, Safari, Firefox).
  • WebUSB printing: Chromium only (Chrome, Edge) on Windows, macOS and Linux. Does not work on iOS.