Deploying
Deploy your first app
Deploy your first application step by step.
1. Create a Project
Projects are containers that organize your pods.
In the sidebar:
- Select the Projects panel
- Press
nto create a new project
2. Create a Pod
A pod is a single deployable application. One pod = one container.
Required fields:
- Title - A name for your pod
- Repository URL - Your Git repository (e.g.,
https://github.com/user/repo) - Branch - The branch to deploy (default:
main) - Dockerfile - Path to your Dockerfile (default:
Dockerfile)
For private repositories, select a Git token in the pod form.
Git tokens are managed in Settings → Tokens (create/edit/delete there).
If your app needs runtime config, add it in Pod Environment Variables.
3. Set Pod Vars (Optional)
If your app needs runtime variables:
- Open the pod
- Go to Vars (
4) - Press
eto edit - Save with
Ctrl+S
Then restart or redeploy the pod to apply changes.
4. Add a Domain (Optional)
Add a domain only if this pod should be reachable publicly (from browser/users).
You have two options:
- Auto-generated - Instant subdomain like
pod-abc123.1.2.3.4.sslip.io - Custom - Your own domain like
myapp.example.com(requires DNS setup)
After domain changes, run Deploy or Restart so routing updates are applied.
5. Deploy / Restart
Hit “Deploy” and watch the build logs. The process:
- Clone your repository
- Build the Docker image
- Start the container
- Route traffic via Traefik
Once complete:
- with domain: your app is live at the domain URL
- without domain: your app is internal-only (pod-to-pod on the project network)
6. Internal Pod-to-Pod Communication
Pods can communicate internally without public domains.
- Internal network aliases are created automatically on deploy/restart
- Current format:
<pod-slug>-<podID8>
Use internal calls like:
http://api-gateway-9b77346e:8080
Important:
- Hostname and port are separate. You must call
host:port. - Browser clients cannot resolve internal Docker DNS names directly.
- Internal DNS name (NetworkAlias) is for server-side/container-side calls only.
- Existing running containers get the new aliases after deploy/restart.
Managing Your Pod
Stop - Stops the container (keeps configuration)
Restart - Restarts the container
Logs - View container output
Redeploy - Pull latest code and rebuild
Vars - Edit runtime environment variables for the pod
To update your app, just push to your repository and hit “Deploy” again.