CatLab Drinks

Open-Source Bar Automation & POS System

A modern, self-hosted point-of-sale system designed for events, parties, and hospitality — with NFC payment support, smartphone ordering, and real-time sales tracking.

Open Web App Install Android App View on GitHub


Why CatLab Drinks?

Running a bar at an event shouldn't mean juggling cash, miscounting change, or losing track of sales. CatLab Drinks gives you a complete digital bar management system that you can deploy on your own server in minutes.

✅ Eliminate errors

No more miscounted change or incorrect totals. Every order is tracked digitally with accurate pricing.

📊 Real-time sales tracking

See exactly what's selling, how much revenue you're generating, and where your orders are coming from — all in real-time.

📱 Smartphone ordering

Let your attendees order drinks from their own phone. Orders go straight to the bar — no waiting in line.

💳 NFC card payments

Issue prepaid NFC cards for cashless payments. Top up, pay, and track balances — no cash needed.

📡 Works offline

Bad WiFi at the venue? No problem. The POS system continues to work offline and syncs when reconnected.

🔓 Self-hosted & open source

Your data stays on your server. Deploy your own instance, customise it to your needs, and keep full control.


Screenshots


Deploy Your Own Instance

CatLab Drinks is designed to be self-hosted. You deploy it on your own server, keeping full control over your data and configuration. Getting started is straightforward:

  1. Clone the repository from GitHub
  2. Configure your environment and database
  3. Run migrations and build the frontend assets
  4. Create an account and set up your first event

A Docker Compose configuration is included for quick deployment. Check the repository for detailed setup instructions.


How NFC Cards Work

CatLab Drinks implements a closed-loop NFC payment system using NTAG213 chips. Here's how it works technically:

Card structure

Each NTAG213 NFC chip stores a unique card ID, balance, transaction counter, and a cryptographic signature. Data is written directly to the card's NDEF-compatible memory sectors.

Encryption & integrity

Card data is protected using AES encryption with an organisation-level secret key. Each transaction updates the balance and a rolling counter, which is signed to prevent tampering or replay attacks. Cards from one organisation cannot be used at another.

Hardware requirements

You need NTAG213 NFC tags for each attendee. For reading cards, you can use the CatLab Drinks Android app on any device with a built-in NFC reader. Alternatively, you can use an ACR122U (or compatible) USB NFC card reader with a lightweight companion service that communicates with the POS browser over a socket.io connection.

Offline support

Because the balance is stored on the card itself, transactions can be processed even when the internet connection is intermittent. Transactions are synced to the server when connectivity is restored.

For USB NFC readers, the companion service runs on a Raspberry Pi or any machine with USB access. See the NFC socket.io service repository for setup instructions.


License

CatLab Drinks is free software released under the GNU General Public License v3. You are free to use, modify, and distribute it.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.