OrderRestro · 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. Plus how to install OrderRestro on every platform.

1. Install on your platform

OrderRestro runs on one computer in your restaurant (the server). Everyone else — tablets, phones, the kitchen screen — opens it in a browser or the mobile app. Pick the server option for your computer:

You haveUse thisEffort
Ubuntu / Debian PC, mini-PC, or 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 app~15 minutes
macOSDocker Desktop + install.sh~10 minutes
CasaOS / ZimaOS home serverOne-click app install2 minutes
Android phone / tablet, iPhone / iPadNot a server. Use the OrderRestro mobile app, or any browser, to connect to your server.1 minute
Recommendation: a small always-on Linux machine is the most reliable server. Use Windows or macOS if that is what you already have in the restaurant.

Ubuntu / Debian / Raspberry Pi

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

Installs Docker if it is missing, checks the download, and starts the app on port 1995.

Windows

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

macOS

  1. brew install --cask docker, then open Docker.app once so the engine is running.
  2. Run the same three commands as Windows (git clone, cd, ./install.sh) 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. Create your restaurant at /signup. To explore with sample data, install with ./install.sh --demo and sign in as owner@demo.local / Password123! (change it before real use).

Updating an existing install? These features add a small database migration. It is applied automatically on start; take a backup first (Settings → Backup).

2. The dashboard

The dashboard is the first screen after sign-in. It answers three questions in order: how much did we make (the large revenue card), what needs me right now (orders, tables, kitchen queue, then pending payments and low stock) and how are we trending (14-day revenue and waste).

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

This release polished the dashboard: a lone card on a phone now spans the full row, an empty chart no longer leaves a large blank panel, and the refund button inside Recent transactions is a separate, labelled control (before, it was a button nested inside a button, which broke keyboard use). Use Customize to hide or reorder cards.

3. Departments

A department is a label for a team — Kitchen, Front of house, Accounts. It helps you find people quickly. It does not grant any access; what a person can do still comes from their role.

Settings, Staff: filter chips for each department, a staff table with department column, and a Departments card
Settings → Staff. Click a chip to filter the list.
  1. Go to Settings → Staff and scroll to Departments.
  2. Type a name and press Add. Use the pencil to rename, the bin to delete (people are kept, just unassigned).
  3. When you Add staff (or edit them), pick a department. Filter the table with the chips above it.

4. Access exceptions

Sometimes one person needs one thing different from their role: a chef covering a stock count, or a waiter who should not give discounts. Instead of making a new role, set an exception for that person.

Access dialog with Role / Allow / Block choices for every permission
Role = follow the role. Allow = add it. Block = remove it.
Access dialog in dark mode
Same dialog in dark mode.
  1. In Settings → Staff, press Access on the person's row (shield icon on phones). The number shows how many exceptions they have.
  2. For each permission choose Role (no change), Allow or Block. Each row says whether the role already includes it.
  3. Optionally set Exceptions end on — access then returns to normal by itself — and a Reason for your records.
  4. Save access. It takes effect on their very next action; they do not need to sign out.

Rules that keep it safe

Access dialog on a phone
On a phone the list scrolls inside the dialog and Save stays visible.

5. Reading invoice text

When a supplier sends an invoice as a PDF or email, copy its text and let OrderRestro fill in the form for you.

Add a vendor invoice dialog with pasted text and the form filled in
Procurement → Vendor invoices → New invoice.
  1. Open Inventory → Procurement, then New invoice.
  2. Paste the invoice text into the box and press Read invoice.
  3. Invoice number, dates and total are filled in. If the supplier name on the invoice matches one of your suppliers exactly, it is picked for you; otherwise choose it.
  4. Check every field, then Add invoice. Nothing is saved until you press it.

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 it cannot find or doubts is listed in an amber note so you review it instead of trusting it.

It reads text only — it does not do OCR on photos or scanned PDFs. For a scan, use your phone's "copy text from image" first. Because it works on plain text it behaves the same on Windows, macOS, Linux, Android and iOS.

6. How it stays safe

7. Troubleshooting

ProblemFix
No Access button on staff rowsYou need both Manage Users and Manage Roles. The button is also hidden on your own row and on the Owner.
"You cannot grant … because you do not hold it yourself"Ask someone who has that permission (usually the Owner) to grant it.
Invoice reader says "Invoice number not found"Make sure the pasted text includes a line like Invoice No: 123; type it in by hand otherwise.
GSTIN warningThe 15th character did not match. Compare it with the invoice; one wrong character is the usual cause.
Can't reach the server from a phonePhone and server must be on the same Wi-Fi; use the server's LAN IP and port 1995.