Quick start
Tower ships a single CLI binary, wess, that talks to your deployment (the reference deployment is wess.dev).
1. Install
curl -fsSL https://wess.dev/install.sh | sh
Point the CLI at your own deployment with the WESS_API environment variable (default https://wess.dev).
2. Log in
wess login # or non-interactively: wess login -e you@example.com -p 'your-password'
Your token is saved to ~/.wess/token.
3. Create an app
App names are lowercase letters and digits, 3–31 characters (no hyphens).
wess create blog
4. Deploy
Push with git — your repo needs a root Dockerfile:
wess init blog # scaffolds server.ts, Dockerfile, AGENTS.md git init && git add -A && git commit -m "init" wess git blog # adds a `wess` git remote git push wess main # builds + deploys, log streams live
Or deploy a prebuilt image:
wess deploy blog --image ghcr.io/you/blog:latest --port 8080
5. You're live
wess status blog # machines, database, URL wess open blog # opens https://blog.wess.dev wess logs blog -f # follow logs
Every app gets a dedicated Postgres database on first deploy — the connection string is already in its environment as
DATABASE_URL.