Home / Help Center / pos-app / Admin / Devices
📡 Admin

Devices

Devices (Network & Sync) is where you connect other computers and Android phones to this POS server — over the local Wi-Fi network or the internet — and manage how data syncs between them.

📍 Menu path: Admin → Devices
👤 Who uses it: Admin and Manager (create/edit/export permissions vary by action) — desktop/Electron builds only

Overview

This page only exists on the desktop/Electron build, since it is about connecting other devices to this particular computer acting as the server. It is organised into four tabs: LAN / Local Network, Cloud Server, Sync Settings, and Server Status.

The LAN tab shows this computer's network addresses and two QR codes — one for logging the Android app into this server, and one specifically for mobile data sync — plus a live list of currently connected devices.

The Sync Settings tab controls the separate real-time Data-Sync engine (used for offline-friendly, near-real-time sync of products, customers and sales across devices), including its mode, cloud/LAN sync server URLs, and an "Initial Bootstrap" push for first-time setup.

Before You Start

Step-by-Step Guide

1 Connect an Android device over LAN

  1. Open the LAN / Local Network tab.
  2. Install the BazaarPOS Android app on the device and connect it to the same Wi-Fi network as this PC.
  3. In the Android app, tap "Scan QR" on its server setup screen and point the camera at the top QR code shown here (this is the Backend API login QR).
  4. Log in with the same POS credentials used on this computer.
  5. If you also want mobile data sync, configure a LAN sync URL under Sync Settings first so the second "Mobile Data Sync" QR code appears, then scan that from the mobile app's Network & Sync screen.

2 Configure a remote cloud server

  1. Open the Cloud Server tab.
  2. Deploy the POS backend to a hosting provider (Railway, Render, a VPS/DigitalOcean droplet, etc.) — this page lists these as common options but does not perform the deployment itself.
  3. Enter the Remote Server API URL (e.g. https://yourserver.com/api/v1) and click Save — the Android app will also use this URL once configured to do so.

3 Turn on and configure data sync

  1. Open Sync Settings and toggle Data Sync on.
  2. Choose a Sync Mode: Real-time (syncs as soon as a device connects — recommended), Periodic (fixed interval of 5/15/30/60 minutes), or Manual (only when triggered).
  3. Under Data-Sync Server, turn on and fill in a Cloud Sync URL for internet-based sync, and/or a Local (LAN) Sync URL for fast same-network sync (preferred automatically when both devices are on the same LAN), then click Save Sync URLs.
  4. Watch the Live Sync Status panel for connection state, queued items, and last sync time; click Sync Now to trigger a sync immediately.

4 Bootstrap a brand-new sync server

Run this once when you first stand up a sync server, so devices that connect afterward have existing data to pull.

  1. With a Cloud or Local sync URL entered, click Bootstrap Now under Initial Bootstrap.
  2. The app fetches all current backend data and pushes it to the sync server unencrypted (a fresh sync server has no stored encryption key yet).
  3. A summary of how many records were pushed per table is shown once complete.

5 Check live server status

  1. Open the Server Status tab to see live Online/Offline indicators and LAN URLs for the Frontend (Electron app), Backend API, and Data Sync Server, refreshed automatically every 10 seconds.
  2. Use the copy icon next to any URL to copy it to the clipboard for sharing or manual entry elsewhere.

Every Field & Button, Explained

Field / ButtonWhat it does
This Device (Server) cardHostname and platform of the machine acting as the POS server, with a Refresh button.
Backend API QR codeScan from the Android app's server setup screen to point it at this server's API for login.
Mobile Data Sync QR codeScan from the mobile app's Network & Sync screen to configure it for real-time data sync; only shown once a LAN sync URL is configured.
Network Addresses listEvery LAN IP address this server is reachable on, each with a copy-to-clipboard button.
Connected Devices listDevices that have checked in with the sync server in the last 5 minutes, showing platform, IP, and last-seen time.
Remote Server API URL (Cloud tab)The base URL of a hosted backend deployment that all devices should connect to instead of this PC.
Data Sync toggleMaster on/off switch for the real-time data-sync engine.
Sync ModeReal-time, Periodic (with a 5/15/30/60-minute interval), or Manual.
Cloud Sync URL / toggleInternet-reachable sync server address, enabled independently of Local (LAN) Sync.
Local (LAN) Sync URL / toggleSame-network sync server address; preferred automatically over Cloud Sync when both devices are on the same LAN.
Live Sync Status panelShows connection state (Connected/Disconnected/Syncing), queued item count, last sync time, and the last error if any.
Sync NowManually triggers an immediate sync cycle regardless of the configured mode.
Initial BootstrapOne-time push of all existing backend data to a newly set-up sync server, unencrypted, so new devices have data to pull.
Sync Encryption (AUTO)Informational panel — AES-256 keys are derived automatically from your account number; no manual key setup is needed.
Export All Data / Import JSON FileManual JSON export/import of products, customers and sales — useful for one-off transfers between two POS servers, e.g. branch sync.

Tips & Best Practices

Troubleshooting & FAQ

I don't see this page in the sidebar at all.
Devices (Network & Sync) is local-only and only appears in the desktop/Electron build — it is intentionally hidden on the cloud/web version, since there is no single "this computer" acting as a LAN server in that deployment.
No LAN IP found / devices can't connect over Wi-Fi.
Make sure this computer is connected to a Wi-Fi or LAN network, not just using a mobile hotspot with no local network, and that other devices are on the exact same network.
The Mobile Data Sync QR code isn't showing.
That QR code only appears once you have entered and saved a Local (LAN) Sync URL under Sync Settings — until then only the Backend API login QR is shown.
Sync shows "OFFLINE" even though the server is running.
Check that Data Sync is toggled ON and that at least one of Cloud Sync or Local Sync has a valid, reachable URL saved under Sync Settings.

🧑‍💻 Developer Notes

Source component(s):

  • frontend-app/packages/pos-react-lib/src/pages/NetworkSyncPage.jsx

Backend endpoints used:

  • GET /sync/info, GET /sync/settings, PUT /sync/settings
  • GET /sync/bootstrap-data, GET /sync/export, POST /sync/import
  • {dataSyncBase}/sync/devices, {dataSyncBase}/health, {dataSyncBase}/sync/push (calls to the separate data-sync server, not the main backend)

Related tables (db-core repositories):

  • SyncDevice / device registry (best-effort, lives on the data-sync server, not the main backend db)
  • SyncLog (best-effort)

Feature flag key: network

This page talks to two separate backends: the main POS backend API (for /sync/* settings and bootstrap/export/import) and a standalone Node.js "data-sync" server (for device registry, health checks and the real-time push/pull sync protocol via dataSyncEngine). Encryption keys for sync payloads are derived from the account's 10-digit account number (see the License page) rather than requiring manual key management.