100% Free & Open SourceAGPL-3.0 LicenseOffline-FirstDocker Deploy20+ Currencies incl. HK$ESC/POS Printing

The free POS for every retail shop

Barcode scanning, GST billing, thermal printing, loyalty, returns and online orders — free and open source, on your own machine. No internet, no subscription, no data leaves your store.

$curl -fsSL https://raw.githubusercontent.com/Raktim94/nodedr-pos/master/scripts/quickstart.sh | bash

Installs Docker Desktop and git via Homebrew if either is missing.

12+

Core features

₹0

Forever free

AGPL-3.0

Open license

<10 min

Setup time

NodeDR POS dashboard: today's revenue, 14-day revenue chart, low inventory and online orders waiting

Dashboard — revenue, low stock, online orders waiting

  • AGPL-3.0 LicenseFree to use, modify, self-host
  • Offline-firstRuns fully offline; online features are optional
  • SQLite + DockerOne compose file, your data stays local
  • 20+ currenciesWorks in any country, any tax system
  • ESC/POS printingUSB thermal printers, no driver setup
  • Open sourceAGPL-3.0 — fork it, own it, ship it
Features

Everything a retail shop needs

NodeDR POS ships all the core POS features in one Docker Compose stack — no plug-ins, no paid tiers, no feature gating.

  • Barcode-driven checkout

    Scan to add items, scan again to bump quantity, press Enter to finalize. Unknown barcodes surface a clear toast — no register blocking. Works with any USB HID barcode scanner out of the box.

  • Camera barcode & QR scanning

    No USB scanner needed — scan with a phone or tablet camera at checkout or when adding a product. Requests a 1080p frame with continuous autofocus and feeds the exact same lookup/add-to-cart logic as a hardware scanner.

  • GST billing & compliance

    Per-product GST rates with HSN/SAC codes. MRP is treated as GST-inclusive as required by Indian law — CGST/SGST are broken out on every receipt. Live GSTIN and PAN format validation built in.

  • Cash, UPI & card payments

    Multiple payment methods at checkout — cash (with change calculation), UPI, and card. Mixed payment is supported. Payment method mix is visible on the sales dashboard.

  • Thermal receipt printing

    Three print paths: browser print dialog (any CUPS/OS printer), server-side PDF download, or direct ESC/POS over USB — receipt cuts off the roll without a dialog. Auto-print after every sale is one setting toggle.

  • Loyalty & customer dues

    Customers earn points on every purchase, redeemable at checkout. Udhaar (credit) sales track dues against a customer with full payment history. Top customers ranked by point balance on the dashboard.

  • Offline barcode generator

    No barcode on a product? Generate a valid EAN-13 using the GS1 internal-use prefix range, or print a QR label — all client-side, no network call. Works fully offline.

  • Returns & exchanges

    Look up any past bill by invoice number from the register, queue lines to return, and settle as a refund or fold straight into a new exchange sale. Returned stock auto-restocks. A unit can never be returned twice.

  • Inventory management

    Scan to edit stock, auto-fill the new product form from online product databases on an unknown barcode, product photos, low-stock dashboard alerts, per-product discount %, and an optional 'allow negative stock' mode to keep the register open when counts lag reality.

  • Sales dashboard & CSV export

    Revenue trend, best sellers, payment method mix, top loyalty customers, and today's totals. One-click CSV export of full sales history. Searchable invoice history with reprint from any past sale.

  • Staff accounts & roles

    Admin and cashier roles. Cashiers run the register; admins manage staff, settings, inventory, and exports. Bcrypt-hashed passwords and HttpOnly JWT sessions.

  • Works on LAN tablets & phones

    Access at http://machine:1994 from any device on the shop network — the nav collapses to a slide-out drawer on mobile. No per-device install needed.

  • One-click CasaOS / ZimaOS install

    Already run a CasaOS or ZimaOS home server? Install straight from a compose URL — no terminal, no git clone. Pre-built images for amd64 and arm64, data persists in the standard CasaOS AppData location.

  • Live e-commerce stock sync

    Connect your online store with a key-authenticated API, no extra service to run. Link a product by SKU and stock stays in sync both ways — a sale on your website decrements the shop's real count, and a sale at the counter reflects on the site within moments via a signed webhook.

  • Dark & light theme

    Toggle between a premium dark theme and a light theme from the header. The choice is remembered per device and defaults to your system preference.

  • Private by design

    No analytics, no telemetry, no cloud dependency. The only outbound requests are optional ones you trigger: update checks and the "Find online" product lookup (only the barcode or search text is sent). Your sales data never leaves the shop.

Screenshots

See it in action

Real screenshots from a running NodeDR POS instance — dashboard, inventory, barcode tools, and settings.

NodeDR POS dashboard with today's revenue, a 14-day revenue chart, low inventory and online orders waiting
Dashboard — today's revenue, 14-day trend, low stock, online orders waiting, customer dues
NodeDR POS Online orders board with New, Packing, Ready and Collected columns you drag cards across
Online orders — drag a card New → Packing → Ready and your store hears about it
NodeDR POS checkout with a cart, a weighed item and a dynamic UPI QR code
POS checkout — scan, weigh, and take UPI with a QR for the exact amount
NodeDR POS reports with revenue, margin, category split and an hourly heatmap
Reports — revenue, margin, category split, hourly heatmap, week-on-week
NodeDR POS inventory list with bulk import and label actions
Inventory — bulk import, low-stock highlights, per-product GST and labels
NodeDR POS add product dialog with Generate barcode and Scan with camera buttons
Add product — generate a barcode offline or scan one with the camera
NodeDR POS A4 tax invoice with warranty table and authorised signature
A4 tax invoice — GST breakdown, warranty table and the shop's authorised signature
NodeDR POS checkout asking for the IMEI of each unit being sold
Optional IMEI capture — asked at the moment of sale, never in stock
NodeDR POS warranty lookup showing sale date and warranty status for an IMEI
Warranty lookup — scan an IMEI to see the sale date and what's left
Global

Built for shops everywhere

NodeDR POS supports 20+ currencies out of the box and works with any tax system — VAT, GST, sales tax, or none. Switch currency in Settings and every screen, receipt, and report adapts instantly.

🇺🇸
🇬🇧
🇩🇪
🇫🇷
🇮🇳
🇦🇪
🇸🇦
🇦🇺
🇨🇦
🇸🇬
🇯🇵
🇧🇷
🇿🇦
🇳🇬
🇲🇾
🇵🇭
🇰🇪
🇧🇩
🇲🇽
🇳🇿

+ any currency your business needs — fully configurable

Works everywhere — right now

Any device on your network

NodeDR POS runs in any browser — desktop or mobile. Open it from the shop computer, a counter tablet, or a phone on the same Wi-Fi. No app installation, no internet connection.

🐧LinuxWorks now
🍎macOSWorks now
🪟WindowsWorks now
📱AndroidWorks now
🍏iOSWorks now
Architecture

How it works

One port exposed. The frontend proxies API calls to the backend over the internal Docker network — the backend never touches your LAN.

  Browser / LAN tablet
        │  http://<machine>:1994   (the ONLY exposed port)
        ▼
┌──────────────────────────┐  /api/* proxied server-side  ┌──────────────────────┐
│   frontend  :1994        │ ──────────────────────────▶  │  backend (internal)  │
│   Next.js / React        │ ◀──────────────────────────  │  Express + Prisma    │
└──────────────────────────┘   (internal Docker network)   └──────────┬───────────┘
                                                                       │
                                                                       ▼
                                                         SQLite  (Docker volume)
                                                         Your data never leaves

One port, one origin

Port 1994 is the only exposed port. No CORS complexity — session cookies are first-party and the API isn't exposed on your network.

LAN access built in

Any tablet or phone on the same network can open the register in a browser. No per-device app or install needed.

Data in a Docker volume

SQLite lives in the nodedr-pos_data named volume. Containers restart and rebuild; your data stays untouched.

Beyond the counter

Connect your online store to the same stock

If your shop also sells online, the counter and the website don’t have to keep two separate stock counts. A key-authenticated External Stock API links them.

Your website reads and writes real stock

Link a product by its SKU, and your e-commerce storefront’s backend can call the External Stock API to check what’s actually on the shelf, and report a stock change when an online order goes through — the same product record the counter uses, not a second copy that drifts out of sync.

Stock changes push to you, live

Add a webhook URL to a key and the shop notifies your storefront the moment a linked product’s stock changes at the counter — a sale, a return, or a manual edit — so the site can mirror it instantly instead of polling on a timer.

Comparison

How NodeDR POS stacks up

Versus hosted SaaS POS subscriptions and the spreadsheet-and-calculator approach.

FeatureNodeDR POSHosted SaaS POSSpreadsheet
One-time costFreeMonthly feeFree
Works offline
Barcode scanning
GST billing (India)Paid add-onManual
Thermal printing
Loyalty programPaid tier
Returns & exchangePaid tier
Sales dashboardManual
Data stays on-prem
No vendor lock-in
Open source (AGPL-3.0)
Quick start

Up and running in under 10 minutes

One command handles everything, including Docker and git themselves if they're not already installed — no manual database setup, no config files to edit.

1

Install Docker (if needed) and run the app

One command checks for Docker and git, installs either if missing, then clones the repo and runs the installer script — builds both images, starts the stack, and prints the URL when ready.

$curl -fsSL https://raw.githubusercontent.com/Raktim94/nodedr-pos/master/scripts/quickstart.sh | bash

Installs Docker Desktop and git via Homebrew if either is missing.

2

Complete guided onboarding

First launch shows a setup wizard: create your admin account, enter your shop name, address, currency, and optionally GSTIN. Takes about 2 minutes.

$
# Open in browser:
http://localhost:1994
3

Add products and start selling

Add inventory by scanning barcodes or typing. Then go to POS, scan items to add to cart, select payment method, and print the receipt. Done.

$
# Access from any LAN device:
http://<your-machine-ip>:1994
Updating: pull the latest code and re-run ./install.sh — it rebuilds images and restarts the containers. Your data in the Docker volume is never touched.

On Windows 10 or 11? Skip Docker entirely.

Get NodeDR POS from the Microsoft Store. It updates itself through the Store and runs sandboxed — no terminal, no Docker, no Node.js install required.

Get NodeDR POS from the Microsoft Store
Roadmap

What’s coming next

NodeDR POS is actively developed. Here’s what’s shipped, what’s next, and where we’re heading. Items marked with a note are built but need real hardware or an account to confirm — pilot them before relying on them.

v1.0

Core POS

Shipped
  • Barcode-driven checkout — HID scanner support, cart management, unknown-barcode toast.
  • GST billing (India) — MRP-inclusive tax, CGST/SGST breakdown, GSTIN on receipt.
  • Cash, UPI & card payments — Multi-payment method with cash change calculation.
  • Thermal receipt printing — Browser print dialog, server-side PDF, direct ESC/POS over USB.
  • Loyalty program — Point earning, redemption at checkout, dashboard ranking.
  • Customer dues (udhaar) — Credit sales, due ledger, payment history.
  • Returns & exchanges — Partial returns, exchange netting, store credit.
  • Discounts — Percentage or flat-amount per sale, plus a standing per-product discount % that applies automatically at checkout.
  • Inventory management — Scan to edit, low-stock alerts, allow negative stock.
  • Offline barcode generator — EAN-13 / QR code generation and label printing — fully offline.
  • Sales dashboard — Revenue trend, best sellers, payment mix, CSV export.
  • Staff accounts & roles — Admin and cashier with scoped permissions.
  • Multi-currency — 20+ currencies switchable in Settings — symbol flows through the whole app and receipts.
  • Customizable receipts — Set a header and footer; HTML print, server-side PDF, and direct ESC/POS USB printing.
  • Customers directory — Visit counts, total spend, loyalty balances, and phone-number lookup at checkout.
  • GST / PAN validation & reference data — Live GSTIN/PAN format validation; HSN/SAC, PIN code, and IFSC bulk CSV import for autocomplete.
  • Guided onboarding — First-launch wizard for admin account creation and shop configuration before you see the dashboard.
  • Works on any device — Responsive layout with slide-out nav — fully usable from a counter tablet or phone on the LAN.
  • Docker one-command install — git clone + ./install.sh — up in under 10 minutes.
  • Microsoft Store app — No Docker, no Node.js — install from the Microsoft Store on Windows 10/11.
v1.1

Desktop App (System Tray)

Shipped
  • Native system tray icon — Quick access to the POS, status indicator, and restart option from the taskbar/menu bar on Windows, Linux and macOS.Tested in code; pilot on your desktop
  • macOS app — A .dmg that bundles its own runtime — no Docker needed.Unsigned unless you add signing keys
v1.2

Payments & Integrations

Shipped
  • UPI QR display at checkout — A dynamic UPI QR for the exact sale amount, on the till and on the customer display; the A4 invoice prints one for any balance due.
  • WhatsApp receipt sharing — Send the receipt to the customer's phone with a signed PDF link — no WhatsApp Business account needed.
  • Multi-currency sale — Accept payment in another currency with a live or manual exchange rate.
  • Stripe / Square terminal integration — Card terminal payments, verified with the provider before the sale is accepted.Needs a terminal and account to pilot
v1.3

Reporting & Analytics

Shipped
  • Advanced reporting module — Category revenue, profit margin, hourly sales heatmap, day/week/month comparisons.
  • Profit & cost tracking — Cost is recorded on every sale line, so margin per product and category stays correct.
  • GSTR-1 compatible export — b2b, b2cs, HSN, documents and credit notes, plus a generic tax summary.Review with your accountant before filing
  • Supplier and purchase orders — Add, edit and delete suppliers; reorder suggestions; create purchase orders by hand or from low stock; PDF, cancel, and receive stock into inventory.
  • Scheduled email reports — Daily or weekly sales summary sent from your own SMTP account.Needs a mail account to confirm delivery
v1.4

Hardware & Peripherals

Shipped
  • Customer-facing display — A live second screen — now on any phone, tablet or PC over your network with a private link. Shows the cart, the total and the UPI payment QR.
  • Cash drawer support — Opens the drawer on cash sales through the receipt printer.Needs the hardware to pilot
  • Weighing scale integration — Read weight from a scale and bill fractional quantities.Needs a scale to pilot
  • Label printer support (ZPL / EPL) — Print product labels to Zebra / Dymo printers.Needs a label printer to pilot
  • NFC card-id reader — USB NFC readers that type a card id identify loyalty customers. Contactless payments go through the card terminal.
v1.5

Catalog, Display & Online Orders

Shipped
  • Find products online — Search free community databases (Open Food / Beauty / Products Facts) by name or barcode. Results are checked — barcode check digit, junk names, wrong-code records — and reviewed by you before anything is added.
  • Auto-fill on barcode scan — Scan an unknown barcode in Inventory and the form opens pre-filled from the online record; with no internet it simply opens blank.
  • Check online & replace — In any product form, compare the name, category and photo with the online record and replace each one separately.
  • Product photos — Add a photo from a file or a phone camera when registering or editing a product.
  • Smart online-order billing — Orders already paid on the website are handed over without a POS bill; pay-at-pickup orders are billed in the POS at hand-over.
  • Connect your own website — Build a custom store and connect it through the API — orders in, live status updates back by signed webhook. Developer guide with Node and Python examples.
  • Payment confirmation sound — A chime — and a spoken amount for UPI and card — when a sale completes.
  • One-click updates — Settings → Updates checks for new versions and updates the app with your password; Docker and CasaOS.
v1.6

Next up

Planned
  • Automatic UPI payment confirmation — Confirm a UPI payment automatically through a payment gateway or soundbox integration, instead of the cashier confirming it.
  • Live-store verification — Test and harden the WooCommerce and Shopify stock and status push against real stores with pilot shops.
  • Hardware pilots — Verify the card terminal, cash drawer, scale and label printers with shops that have them.
v2.0

Multi-Location & Teams

Shipped
  • Multi-branch inventory — Consolidated stock across branches with stock transfers, and a read-only franchise mode for the franchisor.
  • Optional sync — on your own server — Encrypted branch-to-hub sync (AES-256-GCM). Your data goes only to a server you run, never ours.Branches over a real network are still being piloted
  • Role-based permissions (granular) — Per-user permissions and a discount cap, e.g. block returns for specific users.
  • Shift management — Open and close registers by shift with opening float, cash in/out, counted close and variance.
  • Customer app (PWA) — Customers can see their loyalty balance and receipts from a link.
v2.1

E-commerce & Omni-channel

Shipped
  • Click-and-collect & delivery orders — An Online orders board — New, Packing, Ready, Collected — with pickup codes and stock reservation, for orders from your site, WooCommerce or Shopify.
  • WooCommerce & Shopify order sync — Signed order webhooks in; order status and stock pushed back out.Outbound push needs a live store to pilot
  • External REST API + MCP server — Scoped API keys for stock, bills, orders and warranty — for stores, apps and AI agents.

Want to shape the roadmap?

Open a feature request on GitHub or contact us — community feedback drives what gets built next.

NodeDR POS is made and maintained by NODEDR INFOTECH PRIVATE LIMITED. It is free, open-source software released under the AGPL-3.0 License — you can use it, fork it, and run it commercially; if you run a modified version as a network service for others, you must share that modified source under the same license.

Official website: www.nodedr.com

FAQ

Common questions

Ready to run your shop for free?

One command. Your own machine. Your data stays where it belongs — with you.