wess.devdocs

Apps & machines

An app is the unit you deploy and the URL your users visit. A machine is the isolated virtual machine your app's current build runs in.

URLs

Every app is served at https://<name>.wess.dev with TLS handled for you — certificates are issued automatically the first time the app exists.

The lifecycle

terminal
wess create blog        # reserve the name + url
git push wess main      # build + deploy (or: wess deploy --image)
wess status blog        # see what's running
wess destroy blog       # tear everything down

On every deploy, a fresh machine boots with the new build, the URL switches to it, and the previous machine is retired. Machines are disposable; the app — its name, URL, database, and secrets — persists across deploys.

Ports

Your app should listen on the PORT environment variable (default 8080). Deploying an image that listens on a fixed port instead? Tell us once with --port:

terminal
wess deploy web --image nginx:alpine --port 80

The port sticks for future deploys of that app.

Isolation

Every machine is a real virtual machine with its own kernel — not a container sharing the host. Apps can't see each other, can't reach each other's machines, and can't touch the platform. It's the same isolation model the big clouds use for untrusted code.