Building an Offline Cinema ERP on a Raspberry Pi
How we deployed a full LEMP stack on a €60 device and solved Greek thermal printing along the way.
When Tria Asteria Cinema approached us, they had a clear constraint: no cloud, no monthly costs, and it has to work when the internet goes down. Challenge accepted.
Why a Raspberry Pi?
The cinema is a small operation: 4 screens, a single POS terminal, and a tight budget. Paying €50+/month for cloud hosting didn't make sense when a €60 Raspberry Pi 4 could handle the load. We installed Ubuntu Server, set up NGINX, MySQL, and PHP (LEMP stack), and deployed the Laravel application directly on the device.
The Greek Printing Problem
ESC/POS thermal printers (the EPSON TM-T20III in our case) don't natively support Greek characters. The standard code pages don't include the Greek alphabet.
We solved this by building a custom encoding layer that converts Greek UTF-8 text to the printer's Code Page 737, handles accents, and manages line wrapping for receipt formatting. The result: perfect Greek receipts printed in under 1 second.
Remote Access Without a Static IP
The cinema doesn't have a static IP, and opening ports wasn't an option. We used Cloudflare Tunnel to create a secure, outbound-only connection from the Pi. The owner can access the admin panel from anywhere: no VPN, no port forwarding.
Results
The system has been running for 8 months without a single day of downtime. Monthly hosting cost: €0. Ticket print time: under 1 second. The cinema staff learned the system in a single afternoon.