Self-hosted service manager
Your server.
Your services.
Under control.
bases takes a plain description of your application and turns it into a running, proxied, authenticated service on your own hardware — in minutes, not days.
What it is
A self-hosted server shouldn't require a weekend of config files. bases gives you containers, routing, and auth as one coherent tool — describe a service once, run it anywhere.
How it works
Three steps from zero
to running service.
01
Write a Basefile
A small, readable file that describes your service — the image it runs on, the port it listens on, and the commands to install and start it.
name: wiki image: ubuntu:24.04 port: 3000 install: - apt install nodejs -y - npm ci start: node server.js
02
Run bases install
bases reads the Basefile, provisions a container, wires up a subdomain through Caddy, and runs your install steps. You watch it happen in real time.
# point at your Basefile $ bases install ~/wiki ✓ Container created from ubuntu:24.04 ✓ Environment variables injected ✓ Route added → wiki.you.bas.es ✓ Install task complete ✓ Service started
03
It's live
Your service is running at its subdomain, behind passkey authentication. Invite users, manage access, and keep everything running from the bases admin panel.
# available immediately at https://wiki.you.bas.es # protected by passkey — # no passwords to manage
Why bases
Everything you need.
Nothing you don't.
Containers
Isolated by default
Every service runs in its own Incus container. Clean installs, no dependency conflicts, easy to destroy and start over.
Routing
Subdomains, automatically
Caddy handles TLS and reverse proxy routing. Each service gets its own subdomain the moment it's installed — no config files to hand-edit.
Auth
Passkeys, not passwords
bases sits in front of your services and handles authentication via WebAuthn passkeys. No password databases, no OAuth integrations to maintain.
Simplicity
One file per service
A Basefile is readable by anyone. Version-control it alongside your app. Share it with others. There's no hidden state.
Control
Your hardware, fully
No cloud accounts, no vendor lock-in. bases runs on any Linux server. Your data stays where you put it.
Users
Invite, don't manage
Send a single-use invite link. Recipients register a passkey on first sign-in. No user accounts to provision manually.
Get started
Ready when
your server is.
curl -fsSL https://get.bas.es | sh
Requires Linux · Incus · Caddy