Tutorial

Departments, access exceptions & invoice reading

Group your staff by team, give one person a little more (or less) access than their role, and fill in supplier invoices from pasted text. Install steps for every platform are at the top.

Prefer to read offline? Download the PDF or open the standalone HTML.

Install on your platform

OrderRestro runs on one computer in the restaurant. Every other device just opens it in a browser or the mobile app.

You haveUse thisEffort
Ubuntu / Debian PC, mini-PC, Raspberry Pi 4/5 (64-bit)One-line installer (.deb, amd64 and arm64)2 minutes. Best choice.
Windows 10 / 11Docker Desktop + install.sh from WSL2 or Git Bash, or the Microsoft Store appAbout 15 minutes
macOSDocker Desktop + install.shAbout 10 minutes
CasaOS / ZimaOS home serverOne-click app install2 minutes
Android phone or tablet, iPhone or iPadNot a server. Use the OrderRestro mobile app or any browser to connect to your server.1 minute

A small always-on Linux machine is the most reliable server. Use Windows or macOS if that is what you already have.

Ubuntu, Debian, Raspberry Pi

curl -fsSL https://orderrestro.nodedr.com/install-linux.sh | sudo bash

Windows

  1. In PowerShell: winget install Docker.DockerDesktop. Reboot if asked, accept the WSL2 backend, open Docker Desktop once.
  2. Open WSL2 (Ubuntu) or Git Bash. Plain PowerShell cannot run the install script.
  3. Run the three commands below.
git clone https://github.com/Raktim94/nodedr-restaurant-pos.git
cd nodedr-restaurant-pos
./install.sh

macOS

Run brew install --cask docker, open Docker.app once, then the same three commands in Terminal.

First sign-in

Open http://localhost:1995 on the server, or http://<server-ip>:1995 from another device on the same Wi-Fi, and create your restaurant at /signup. Updating an existing install runs a small database migration automatically; take a backup first (Settings, then Backup).

The dashboard

Revenue first, then what needs you now, then trends.

OrderRestro dashboard on desktop with revenue card, order and table counts and revenue trend
Desktop. Every card links to the records behind the number.
Dashboard on a phone
Phone (375 px).
Dashboard in dark mode
Dark mode is designed separately, not inverted.

Departments

A label for a team. It never grants access by itself.

Settings, Staff page with department filter chips, staff table and a Departments card
Settings, then Staff. Click a chip to filter.
  1. Go to Settings, Staff and scroll to Departments.
  2. Type a name and press Add. Rename with the pencil; delete with the bin (people are kept, just unassigned).
  3. Pick a department when you add or edit staff, and filter the table with the chips.

Access exceptions

Allow or block single permissions for one person, optionally until a date.

Access dialog with Role, Allow and Block choices for each permission
Role follows the role. Allow adds it. Block removes it.
  1. Press Access on the person’s row (a shield icon on phones).
  2. Choose Role, Allow or Block per permission.
  3. Optionally set an end date and a reason, then Save access. It applies on their next action; no sign-out needed.

Safety rules

  • Block always wins over the role and over an Allow.
  • You can only allow what you hold yourself; the server enforces this too.
  • You cannot edit your own exceptions, and the Owner cannot have any, so nobody can lock the business out.
  • Needs Manage Users and Manage Roles. Every change goes in the Audit Log.
Access dialog in dark mode
Dark mode.
Access dialog on a phone
Phone.

Reading invoice text

Paste text from a supplier invoice and the form fills itself. You confirm before anything is saved.

Add a vendor invoice dialog with pasted text and the form filled in
Inventory, Procurement, New invoice.

It understands Indian formats: 03/11/2026, 3 Nov 2026, ₹ 1,24,410.50, Rs.250/-, CGST/SGST/IGST lines and GSTIN with a check-digit test. Anything missing or doubtful is listed so you review it. It reads text only (no OCR on photos or scans), so it behaves the same on every platform.

How it stays safe

  • Permissions are checked on the server for every request, using the person’s current role and exceptions.
  • Departments and permissions from another restaurant are rejected.
  • The invoice reader needs Manage Inventory, caps input at 20,000 characters and never stores the text.
  • The new screens pass an automated WCAG 2.1 AA scan with zero violations and work by keyboard.

Back to the documentation index.