self-hosted · Apache 2.0

Your own PaaS.
Your own metal.

Tower is a self-hostable, Fly.io-style platform you run on your own hardware. Push your code and it boots as an isolated Firecracker microVM — a database, vectors, and an AI gateway wired up automatically.

deploy.sh
$ curl -fsSL https://wess.dev/install.sh | sh
$ wess login
$ wess create blog
$ git push wess main
  -----> building blog from main
  -----> docker build → image ready
  -----> provisioning database
  -----> booting microVM
  -----> ✓ blog is live
         https://blog.wess.dev

Everything an app needs, on first deploy

No provisioning, no YAML, no control panel. Push code; Tower handles the rest.
git

Push to deploy

Each app is a bare git repo. Push a commit with a root Dockerfile and Tower builds, imports, and ships it — build log streamed to your terminal.

vm

microVM isolation

Every app boots its own image as a Firecracker microVM with its own kernel — hardware-isolated, safe for untrusted code and other people's apps.

db

A database per app

First deploy provisions a dedicated Postgres role + database with pgvector, injected as DATABASE_URL.

ai

AI gateway

Attach Anthropic, OpenAI, or Ollama. One endpoint, an opaque key — swap provider or model without a redeploy.

Invite-only & multi-tenant

Invite-only registration with per-member isolation. Host friends, family, or a team on infrastructure you own.

tls

TLS, handled

Point a wildcard DNS at the edge and Tower issues per-host Let's Encrypt certs on the fly. No cloud bill, no vendor.

Live in four commands

Install the CLI, create an app, push. Your database and URL come with it.

Install

curl -fsSL …/install.sh | sh drops the wess binary.

Create

wess create blog reserves blog.your-host.

Push

git push wess main builds your Dockerfile into a microVM.

Ship

It's live — with a DATABASE_URL already in its env.

Run the platform, not the servers.

Tower is open source under Apache 2.0. Stand it up on a box you own and deploy in seconds.