Platform

Your server. Your database. Your customers.

One company per install. Rust for the API, SvelteKit for the UI, PostgreSQL for the system of record. Cloud Hosted after the trial runs only on lightservecrm.com servers. Self Hosted uses Docker Compose or Virtualmin on your host. Staff also get a dedicated mobile-friendly field page at /mobile.

Architecture

Staff UI talks REST with a Bearer session to an Axum API. The API owns PostgreSQL. Outbound webhooks are HMAC-signed. Inbound hooks hit POST /api/v1/webhooks/inbound. Portal and Book Now are public routes on the same UI. The mobile field page is a separate phone-first shell with pinned bottom tabs.

Email assets and job media have dedicated volumes. Job files are also stored in Postgres so an empty media volume after a container recreate does not erase the customer’s photo history.

LayerChoice
APIRust, Axum
UISvelteKit, adapter-node
DatabasePostgreSQL 16
MoneyInteger cents
Email designerGrapesJS newsletter
Local stackDocker Compose
ProductionVirtualmin / Podman / Caddy
ImagesDocker Hub semver and :latest

Run it

Docker Compose

One command brings up Postgres, API, and UI. Host ports are chosen so the stack does not collide with Lightserve POS. First visit is the setup wizard.

Virtualmin

Production recipe: Postgres + API + UI + Caddy. Caddy is the only public process on port 80. /api proxies to the backend. Images publish both a version tag and :latest.

Backups

Project and Postgres dump skills exist for operators. High-risk schema work is supposed to back up tables first. This is a product for people who have lost data once and refuse to do it again.

Versioning

Frontend package.json and backend Cargo.toml stay on the same MAJOR.MINOR.PATCH. In-app About shows the running changelog.

Integrations that are settings, not a marketplace tax

  • SMTP detect and send test — Google Workspace, Microsoft 365, Zoho, Fastmail, Yahoo, iCloud, filtered MX, self-hosted.
  • IMAP discovered and stored for inbound mail later.
  • Twilio SMS.
  • Zulip Chat.
  • Stripe Checkout, webhooks, Connect, technician accounts, application fees, payment links.
  • HMAC outbound webhooks and inbound webhook secret.
  • Public domain for Book Now, portal, and merge-field URLs.