QBM System Architecture and Component Flow Guide

Understand how the desktop client, Windows services, web apps, and SQL Server work together in a QBM installation.

Guide Summary

AudienceEnd users, support staff, implementation team, AI agents, and developers.
Applies ToQBM Client, QBM Server, QBMWServices, QSalesView, QClock, SQL Server, Cloudflare Tunnel, ZeroTier, hosted deployments.
PurposeExplain the normal component flow so connection, login, report, dashboard, and integration issues can be diagnosed in the right order.
Last Updated2026-05-18

Components

ComponentRoleSupport Notes
QBM ClientC# desktop application used by office users, cashiers, accountants, inventory teams, and managers.It normally connects to QBM Server, not directly to public web apps.
QBM ServerWindows service layer that handles business access to the company database.Keep it private on the LAN, VPN, or server network.
SQL ServerStores the QBM company database.Check SQL Server service, instance name, disk space, and database status when login or reports fail.
QBMWServices.NET service API bridge for browser apps and integrations.Common local API port is 8053; it calls QBM Server internally.
QSalesViewBrowser sales dashboard and manager reporting experience.Uses QBMWServices and QBM permissions.
QClockBrowser or device clocking experience for employee check-in and checkout.Uses QBMWServices and QBM employee/user records.

Normal Flow

Desktop Flow

QBM Client
-> QBM Server Windows Service
-> SQL Server
-> QBM Company Database

Web App Flow

Browser / QSalesView / QClock
-> Cloudflare Tunnel or hosted URL
-> QBMWServices
-> QBM Server
-> SQL Server
-> QBM Company Database

Expected Result

Users can log in, permissions are checked, reports load, dashboards return data, POS and accounting transactions save, and support can identify the failing layer without guessing.

Ports And Hosting Modes

PortCommon UseNotes
8050Legacy or local QBM service scenarios.Confirm the real customer configuration before changing it.
8051QBM Server connection used by QBM Client or QBMWServices in many web bridge setups.Keep private; do not expose directly to the public internet.
8053QBMWServices local HTTP API.Cloudflare Tunnel commonly forwards public HTTPS traffic to localhost:8053.
  • LAN: QBM Client reaches QBM Server on the internal network.
  • VPN or ZeroTier: Private device-to-device access for trusted users and devices.
  • Cloudflare Tunnel: Public browser access to QBMWServices without opening the server public IP.
  • Hosted VPS: QBM services run in a hosted environment controlled by the implementation team.

Step-By-Step Checks

  1. Confirm the user can sign in to normal QBM Client from the server or a trusted workstation.
  2. Confirm QBM Server is running and listening on the configured private port.
  3. Confirm SQL Server is running and the company database is online.
  4. For browser apps, confirm QBMWServices is running and port 8053 is listening.
  5. For public browser access, confirm the tunnel or hosted URL points to QBMWServices, not directly to QBM Server or SQL Server.
  6. Confirm QSalesView or QClock settings use the correct service address, server name, port, instance, and database.

Common Problems

SymptomLikely LayerFirst Check
QBM Client cannot log inQBM Server, SQL Server, network, credentialsCheck services, server name, SQL instance, and version match.
QSales login is slow or times outQBMWServices, QBM Server, SQL Server, tunnel, permission lookupStart with local QBM Client login, then QBM Server, then QBMWServices.
Cloudflare URL returns 502Cloudflare Tunnel or local QBMWServicesConfirm tunnel target is http://localhost:8053 and service is running.
Reports are empty or blockedPermissions, filters, company database, QBM ServerCheck user security group and selected filters.

Troubleshooting Decision Tree

  1. Does normal QBM Client login work on the server computer? If no, fix QBM Server, SQL Server, credentials, or database first.
  2. Is QBM Server running? If no, start it and check the Windows service logs.
  3. Is SQL Server running and is the company database online? If no, repair SQL service, instance, database, or disk issue.
  4. For web apps, is QBMWServices running and listening on 8053? If no, repair QBMWServices.
  5. Does the public URL reach the local service? If no, repair Cloudflare Tunnel or hosting.
  6. Are QSalesView or QClock settings correct? If no, correct service address, server name, port, instance name, and database name.
  7. If all infrastructure checks pass, review permissions, product key, logs, and exact user error.

What To Send To Support

  • Exact error message and screen name.
  • Whether one user, one workstation, or all users are affected.
  • QBM Client version, QBM Server version, and QBMWServices version if known.
  • Server name, configured port, SQL instance name, and database name.
  • Service status screenshots for QBM Server, QBMWServices, SQL Server, and tunnel service.
  • Relevant logs from the same time as the issue.

Security Notes

  • Do not expose QBM Server, SQL Server, or local service ports directly to the public internet.
  • Do not request passwords, full product keys, tunnel tokens, or public database backups in support chats.
  • Mask customer names, employee names, tokens, product keys, and sensitive figures in screenshots when possible.
  • If assemblies are loaded from the Dependent Dlls folder, that is expected and should not be changed unless development confirms a real issue.