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.
| Layer | Choice |
|---|---|
| API | Rust, Axum |
| UI | SvelteKit, adapter-node |
| Database | PostgreSQL 16 |
| Money | Integer cents |
| Email designer | GrapesJS newsletter |
| Local stack | Docker Compose |
| Production | Virtualmin / Podman / Caddy |
| Images | Docker 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.