Quick start

Tower ships a single CLI binary, wess, that talks to your deployment (the reference deployment is wess.dev).

1. Install

shell
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

shell
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).

shell
wess create blog

4. Deploy

Push with git — your repo needs a root Dockerfile:

your project
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:

shell
wess deploy blog --image ghcr.io/you/blog:latest --port 8080

5. You're live

shell
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.