Deploying with git
wess.dev is a git remote. Add it to your repo once, then every git push builds and ships your app — you watch the whole thing happen in your terminal.
Connect your repo
wess git myapp # or by hand: git remote add wess https://wess.dev/git/myapp.git
The app must exist first (wess create myapp). When git asks for credentials, use your wess.dev email and password.
Add a Dockerfile
Builds are driven by a Dockerfile at the root of your repo. It can be as small as this:
FROM oven/bun:alpine WORKDIR /app COPY . . RUN bun install CMD ["bun", "server.ts"]
Any language works — if it builds in Docker, it runs on wess.dev.
Listen on PORT
Your app should listen on the PORT environment variable (we set it for you, default 8080). In Bun, that's:
Bun.serve({ port: Number(process.env.PORT ?? 8080), fetch })Push
git push wess main
What you'll see, live:
-----> building myapp from main (a1b2c3d4e5)
-----> docker build → wess.dev/myapp:a1b2c3d4e5
...build output...
-----> importing image into the platform
-----> deploying
-----> ✓ myapp is live
https://myapp.wess.devRedeploys
Every push deploys fresh: a new machine starts with your new build, traffic moves to it, and the old machine is retired. Your app's URL never changes.
Pushes are rejected politely if the repo has no Dockerfile — add one and push again. Branch doesn't matter: whatever branch you push, its latest commit is what deploys.