Skip to main content
Vorrex GMS

For IT & infrastructure

On-premises TypeScript. PostgreSQL. Your infrastructure.

One Node.js artifact running as a supervised service on your plant LAN, PostgreSQL as the database. No cloud dependency in the operational path. If the internet goes down, the plant keeps scanning.

Tech stack

What’s under the hood

Everything your team needs to evaluate, deploy, and maintain the system — without surprises.

Stack

TypeScript, Node.js, Remix, PostgreSQL

One codebase, one deployable artifact. Vorrex Server is a TypeScript application on Node.js, serving Remix through its own Fastify server. Vorrex Terminal runs in a browser in kiosk mode. Vorrex Manager and Vorrex Portal are server-rendered routes of the same app. Vorrex Me and Vorrex Go are installable PWA routes.

Deployment

One artifact, plant or hosted mode

Vorrex Server installs as a supervised OS service — systemd on Linux, a wrapped Windows Service on Windows. Vorrex Setup handles the first-time install including database provisioning. Your team controls the deployment topology.

Data Ownership

PostgreSQL — your database, your backups

Standard PostgreSQL — your team can query it directly, back it up with standard tooling, and export at any time. No proprietary formats. No vendor-only access to your own records. If you leave, you take everything.

Authentication

First-party sessions + capability gating

Opaque session ids stored hashed in Postgres, with Argon2id password hashing and TOTP for admin roles. Every capability is resolved server-side per request — a wash operator cannot access inspection screens. Registered-device PIN authentication on Vorrex Terminal for plant-floor speed without sacrificing identity.

Audit Trail Integrity

PostgreSQL constraint-enforced immutability

The compliance event table is insert-only. A PostgreSQL trigger blocks UPDATE and DELETE at the database layer — not application code. No bug, no DBA mistake, and no future developer can erase compliance history. Your auditors will appreciate this.

Continuous Verification

Invariant suite run against real PostgreSQL

Every state machine transition and every compliance rule is proved against a real PostgreSQL container in CI — the suite proves the database refuses invalid writes, not just that the app avoids them. Runs on every change. Zero tolerance for regressions in compliance logic.

Integrations

Hardware and services

Standard protocols and self-hosted services where possible. No per-scan API fees, no mandatory cloud subscriptions for core functionality.

Scanning

Code 128 barcode at every station. RFID-ready architecture for future UHF tunnel scanning.

Label Printing

Zebra thermal printers. ZPL over CUPS. Barcode labels from the system.

Route Planning

Self-hosted route optimisation engine. No per-request API fees.

SMS

Twilio SMS via an outbox with delivery evidence, for wearer notifications, delivery confirmations, and coverage alerts.

Rules, not code

Ordered routing rules, configured in Vorrex Manager.

Laundry managers configure garment routing as ordered first-match rule lists per garment type in Vorrex Manager. Rules are versioned, and every routing decision records the rule that fired. IT configures once — operations owns it after that.

Platform capabilities

Built for operational teams. Inspectable by IT.

Features your team will want to evaluate — authentication architecture, CI pipeline, printing infrastructure, and multi-site operations.

Deny-by-default routes

Every route declares its capability, or the server refuses to boot

Every route and endpoint declares its required capability. A boot check walks the full route manifest, and a new route with no declaration stops the process — it does not warn and it does not fall open.

Three auth contexts

Complete isolation between plant, portal, and wearer

Plant staff authenticate with registered-device PIN and capability gating — different capabilities gate different modes on Vorrex Terminal and Vorrex Manager. Fire brigade H&S managers log into Vorrex Portal with their own credentials in a separate session realm. Firefighters use PIN login on Vorrex Me. No shared auth state between the three contexts.

Continuous integration

Gitea Actions + a real PostgreSQL container on every push

Every code change triggers typecheck, lint, module-boundary and schema checks, and the full invariant suite against a real PostgreSQL container before anything reaches your plant. Zero tolerance for regressions in compliance logic. Your team inherits a codebase that's tested to its boundaries.

Print from the product

Zebra ZPL labels, Chromium-rendered PDFs

Labels print automatically on workflow transitions — garment scanned at goods-in, batch label at wash programme assignment, dispatch label at pack. Compliance packs and destruction certificates render from the product's own print routes with headless Chromium, so paper matches screen.

Inter-Plant Transfer

Full audit trail across facilities

Move garments between facilities with transfer manifests, receiving confirmation, and lifecycle events recorded at both ends. The sending plant creates the manifest, the receiving plant confirms receipt. Variances are flagged. Every transfer is a first-class lifecycle event — fully auditable.

Walk through the architecture with your team.

45 minutes. We cover deployment topology, database design, authentication model, and how the invariant suite proves the database refuses invalid writes — whatever your team needs to evaluate before signing off.