Requirements
Check this page before you install. Most shared hosting plans already meet every requirement.
Server requirements
| Item | You need |
|---|---|
| PHP | 8.2 or newer (8.3 is recommended) |
| Database | MySQL 5.7 or newer, or MariaDB 10.4 or newer, with utf8mb4 |
| Web server | Apache with mod_rewrite, or Nginx. The document root must be the public folder. |
| Disk space | About 100 MB for the app, plus room for your product pictures and backups |
Required PHP extensions
pdo_mysql, mbstring, openssl, gd, intl, zip, fileinfo, bcmath, ctype and json.
On cPanel you can switch these on in Select PHP Version → Extensions. On a VPS, install them with your package manager. For example, on Ubuntu:
sudo apt install php8.3-fpm php8.3-mysql php8.3-mbstring php8.3-gd php8.3-intl php8.3-zip php8.3-bcmath php8.3-xml
Note: You do not need Node.js or Composer if you use the download package. It already contains the
vendorfolder and the ready-builtpublic/buildassets. You only need Composer 2 and Node.js 18 or newer if you get the source code withoutvendor/, or if you want to change the CSS or JavaScript.
Browser support
Use an up-to-date version of Chrome, Edge, Firefox or Safari. Chrome or Edge is best for the POS screen and for printing receipts. Phones and tablets work too, and the layout adapts to the screen.
HTTPS
Run your shop on an address that starts with https://. Browsers only allow these features on HTTPS (or on localhost, the computer the app is installed on):
- Camera scanning with a phone, tablet or laptop camera.
- Offline mode: the POS page is kept in the browser so it opens without a connection, and the app can be installed. See Offline mode.
Most hosting plans include a free certificate. See Install on web hosting.
Hardware
| Device | Notes |
|---|---|
| Barcode scanner | Any USB or Bluetooth scanner that works like a keyboard. Set it to add an Enter (CR) suffix after each code. No driver is needed. |
| Camera scanning | Phones and tablets can scan with the camera. The browser only allows the camera on HTTPS or on localhost. See HTTPS. |
| Receipt printer | Thermal printers for 58 mm or 80 mm rolls, or any normal A4 printer. POSMaster prints through the browser's print window. |
| Label printer | Print barcode and QR labels on A4 sticker sheets or a label roll. |
| Cash drawer | POSMaster does not control it. If your printer opens the drawer, that is done by the printer driver. |
| Customer display | Optional. A second monitor on the same computer as the POS. See Customer display. |
| Kitchen printer | Optional. Any receipt printer for 58 mm or 80 mm prep tickets. See Kitchen and prep tickets. |
Tip: Pick the receipt paper size in Settings → Sales & receipts and set the same size in your printer's driver. See Troubleshooting if receipts print at the wrong size.
What is in the download package
The download is one ZIP file. Unzip it and you will see:
| File or folder | What it is |
|---|---|
README.md |
A short introduction to the project |
HowToSetup.md |
The setup guide in plain text (the same steps as this help site) |
CLAUDE.md |
Notes for developers and AI assistants that work on the code |
CHANGELOG.md |
What changed in each version |
LICENSE-NOTE.md |
Licence information and third-party credits |
laravel-project/ |
The application itself. Upload or copy this folder to your server. It includes vendor/ and public/build. |
database/schema.sql |
A clean database for a new shop, with one admin account. See Install by importing SQL. |
database/seed.sql |
A database with the full demo shop and demo accounts |
docs/ |
This help site as static HTML. Open docs/index.html in a browser. |
docker-compose.yml and docker/ |
Everything needed to run POSMaster with Docker. See Install with Docker. |
Note: The
databasefolder at the top of the package holds the two SQL files. It is a different folder fromlaravel-project/database, which holds the migrations the app uses.