Skip to content
by

Self-hosted client portal for service agencies

Your client portal. Your server. Your data.

Sell services, take payment, deliver work, invoice and support clients from one portal under your brand. Installed on a server you control with one command, so your clients' data stays with you.

  • Runs on your own server
  • Client data never leaves it
  • One-time license, no per-seat fees

Built on

The tools serious products run on

  • Next.jsPortal and admin
  • ReactInterface
  • TypeScriptTyped end to end
  • NestJSThe API
  • PostgreSQLYour data
  • RedisLive presence
  • DockerContainers
  • Let's EncryptAutomatic HTTPS
  • Cloudflare R2File storage, optional
  • ResendEmail

How it works

From first click to final invoice

ClientOS follows an order the whole way, so nothing falls between tools.

  1. 01Sell

    Every service gets its own page on your domain. Visitors pick what they need and order on the spot, without a sales call.

  2. 02Get paid

    Card, PayPal or crypto, straight to your accounts. The order exists only once the payment is confirmed.

  3. 03Brief

    Right after paying, the client answers your questions in their portal. Work starts with everything you need.

  4. 04Deliver

    Hand over the files on the order. The client approves or asks for a revision, and it approves itself if they go quiet.

  5. 05Bill and report

    Invoices settle themselves when clients pay, and every month adds up in your reports.

Self-hosted, for real

Your clients' data never touches our servers

Hosted portals keep your clients, contracts and invoices on someone else's computer. ClientOS runs entirely on a server you rent and control. We never see what is inside it.

Your server

Hetzner · DigitalOcean · AWS · any Linux VPS

Client portal

portal.youragency.com

Admin

admin.youragency.com

API

api.youragency.com

PostgreSQL

every client, order and invoice

File storage

deliverables and attachments

Caddy

HTTPS, certificates renewed for you

Clients, orders, messages, invoices, files and your staff accounts all live here, in your own PostgreSQL database and storage.

The only things that leave it

  • Your Resend accountthe emails you send
  • Your payment gatewaysStripe, PayPal, crypto
  • Vibemonk license check-inlicense and version only, twice a day

The check-in carries your signed license and the version you run. No client, order or invoice data, ever.

  • Keys sealed with AES-256-GCM

    Gateway, email and storage keys are encrypted in the database with a secret that exists only on your server.

  • A least-privilege database login

    The API cannot change the schema, and refuses to start as a superuser or the table owner.

  • Private files, short-lived links

    Every file except your logo is private and reached through a signed link that expires, after 15 minutes by default.

  • HTTPS on every address

    Certificates are issued and renewed automatically, with HSTS. Only ports 80 and 443 are open.

  • 2FA, roles and an audit trail

    Two-factor sign-in, 122 staff permissions, and a logged, read-only, time-limited "sign in as".

  • Backups you hold

    One command dumps the database, files and settings into a folder you can copy anywhere.

Want the details? See exactly what runs on your server.

Installation

Self-hosting without the server headache

No Docker files to write, no environment variables to fill in, no proxy to configure. If you can paste a command into a terminal, you can run ClientOS.

$ sudo ./install.sh==> Checking the server    2 CPU, 3911 MB memory, 74 GB free disk==> Checking your license    ClientOS 1.4.0 is available to this key==> Checking DNS    portal.clients.youragency.com → 203.0.113.24    admin.clients.youragency.com  → 203.0.113.24==> Writing deploy/.env    secrets generated==> Downloading ClientOS 1.4.0==> Starting    the API is up ✓ ClientOS is running.    https://admin.clients.youragency.com/setup
  1. 1

    Point your domain at a server

    One wildcard DNS record. Any Ubuntu or Debian server with 2 to 4 GB of memory.

  2. 2

    Run the installer

    It installs Docker, generates every password, downloads ClientOS with your license key and turns on HTTPS.

  3. 3

    Finish in the browser

    Name your agency, pick your colours and create the owner account. About two minutes.

After that, one command each

  • clientos updatebacks up, downloads the new release, restarts
  • clientos rollbackback to the release before
  • clientos backupdatabase, files and settings to a folder
Read the installation guide

White-label

Your clients see your brand. Never ours.

Pick two colours in Settings. ClientOS repaints the portal, the sign-in screen, every email and every invoice to match, on your own domain.

By the numbers

Deep where agencies need depth

staff permissions
122staff permissionsgrouped into roles you build
notification types
76notification typesin-app and email
payment gateways
5payment gatewaysplus manual crypto and credit
currencies
21currenciesnever silently converted
form field types
17form field typeswith rules and multi-page
optional modules
7optional modulesswitch off what you do not use

Technology

Production-grade, not a weekend template

The same stack modern SaaS companies run on, packaged so it installs on a single server. Typed from the database to the button.

Apps

The client portal and the admin

  • Next.js

    Server-rendered pages

  • React

    Interface

  • Tailwind CSS

    Styling, themed from your two brand colours

  • TypeScript

    End to end, one typed monorepo

API

Every rule, permission and payment

  • NestJS on Fastify

    The server

  • Better Auth

    Sign-in codes, passwords, 2FA, Google

  • Drizzle ORM

    Typed queries and migrations

  • Zod

    Every input and setting validated

Data

On your server, in your hands

  • PostgreSQL

    All of your data

  • S3-compatible storage

    Built in, or your Cloudflare R2

  • Redis

    Live presence only

  • Background jobs

    Renewals and reminders, in PostgreSQL

Server

Installed and updated for you

  • Docker

    Every part in its own container

  • Caddy

    HTTPS with automatic Let’s Encrypt certificates

  • Node.js

    Runtime

  • Verified downloads

    Every release file checked by its SHA-256

Connects to

  • Stripe
  • PayPal
  • NOWPayments
  • CoinGate
  • BTCPay Server
  • Resend
  • Cloudflare R2
  • Cloudflare Turnstile
  • Google sign-in

Why self-hosted

Stop renting the system your business runs on

Hosted portals are quick to start and expensive to stay on. ClientOS is the same idea, installed on infrastructure you control.

What you pay for
Hosted:A monthly plan that grows with seats, clients or features
One license, paid once, plus a server from about $10 a month
Where client data lives
Hosted:On the vendor’s servers, under their terms
In your own database, on your server. We never see it
Who can read it
Hosted:You, the vendor’s staff and their subprocessors
Only the people you give an account to
Payments
Hosted:Some platforms take a cut or limit gateways by plan
Straight to your Stripe, PayPal or crypto account, no cut
Branding
Hosted:Their domain or a paid add-on, and their name in places
Your domains, logos, colours, words and emails
Leaving
Hosted:Export what they let you, then lose the rest
Your database and files are already yours. Back them up any time

Pricing

Pay once. Own it.

One license per domain, paid once. No monthly fee, no per-seat pricing, and no cut of your payments. Your only running cost is the server, from about $10 a month.

Starter

For an agency that installs it themselves.

$990one-time

1 year of updates

  • License for one domain
  • Every feature, no limits on clients or staff
  • One-command installer and the clientos tool
  • 1 year of updates
  • Email support
Most chosen

Pro

We install it on your server and hand it over working.

$1,790one-time

3 years of updates

  • Everything in Starter
  • We install it on your server and domain
  • Email and payments connected for you
  • 3 years of updates
  • Priority support

Agency

Installed, migrated and your team onboarded.

$2,690one-time

Lifetime updates

  • Everything in Pro
  • Migration from Wayfront (SPP) or a CSV import
  • Onboarding call for your team
  • Lifetime updates
  • Priority support

In every package

Prices in US dollars. Need more than one domain? Each extra install is its own license.

  • The full product: store, orders, messages, billing, tickets, reports
  • Unlimited clients, staff and orders
  • Your domain, your brand, no ClientOS name shown to clients
  • Runs on any Ubuntu or Debian server you choose
  • Keeps working when updates end

Get ClientOS

Own your client portal.

Pick a package and tell us a little about your agency. No call needed unless you want one.

  1. 1

    Tell us which package

    A person replies within one working day with payment details, or a demo if you asked for one.

  2. 2

    Your license key arrives

    It appears in your vibemonk.com account under Licenses, with the installer download.

  3. 3

    ClientOS goes live on your server

    Run one command yourself, or on Pro and Agency we install it and hand it over working.

Which package?
Team size
Active clients

No spam, no newsletter. One reply from a person.

FAQ

Questions agencies ask

What does self-hosted mean in practice?
ClientOS runs on a server you control, with its own database, file storage and HTTPS. Email goes through your Resend account and payments go straight to your gateways. Your data never passes through our servers: the only thing ClientOS sends us is a license check-in, twice a day.
What do I need to run it?
A Linux VPS with 2 to 4 GB of RAM, a domain you can add DNS records to, your license key and a Resend account. One command installs everything else. The installation guide walks through it step by step.
I am not technical. Can you set it up?
Yes. Installing is one command, but on the Pro and Agency packages we do it for you: we install it on your server, connect email and payments, and hand over a working portal.
Can I move over from my current client portal?
Coming from Wayfront (Service Provider Pro)? ClientOS has an importer for it, and on the Agency package we run the move with you. From anywhere else, clients come in from a CSV file with column mapping.
Which payment methods can my clients use?
Cards and wallets through Stripe, PayPal, crypto through NOWPayments, CoinGate or your own BTCPay Server, manual payments to your own wallets, and account credit. Money goes straight to your accounts.
Is it white-label?
Completely. It runs on your domains with your logos, colours, client-facing words and email templates. Clients never see ClientOS.
Can you see my clients or their data?
No. ClientOS runs entirely on your server, and your database and files never leave it. The only thing it sends us is a license check-in twice a day: the signed license and the version you run.
What happens when my updates end?
Nothing stops. ClientOS keeps running on the version you have, and you can renew to get newer releases. Lifetime updates come with the Agency package.
Do I get the source code?
You get ClientOS as ready-built, verified Docker images and a one-command installer, which is what keeps installing and updating to a single command. If you need a change, ask us: custom work is available.
What kinds of agencies is it for?
Any team that sells defined services: design, development, marketing, SEO, content, video or consulting, one-off or on retainer. Service types, statuses and client-facing words are all yours to define.
What languages does the portal support?
The interface is in English. You can rename the words your clients see, such as menu labels and headings, from the settings.