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.