Create a Frame
The fastest path is the dashboard:- Open a Project, pick (or create) the Space you want, and hit New Frame (new Projects start with one Space called
default; teams often add Spaces likestagingorproduction). - Connect your GitHub repo and pick the branch you want Nubo to watch.
- Tell Nubo which port your app listens on.
- Hit deploy.
What a Frame’s status means
Open any Frame in the dashboard and you’ll see its current state in real time:| Status | Meaning |
|---|---|
| Starting | A deploy is in progress or the app is coming up. |
| Online | Healthy and serving traffic. |
| Degraded | Running, but not all replicas are healthy. |
| Error | No healthy replicas. The dashboard will tell you why. |
| Stopped | Scaled to zero or explicitly stopped. |
| Suspended | Paused because billing is past due. Restore billing to bring it back. |
backoff_tripped reason so you stop seeing the same error toast over and over. The next push (or hitting Deploy) scales it back up and clears the trip, so a fresh image automatically recovers a stuck Frame.
Stop and start a Frame
Need to take a Frame offline without losing it? Hit Stop on the Frame to pause it (replicas scale to zero, or for self-hosted Agents the container is stopped). The Frame’s config, deploy history, environment variables, and domains are all kept. When you’re ready, hit Start to bring it back up. Via API:202 Accepted. The Frame moves through Stopped and back to Online as the change is applied. If the Frame is on a self-hosted Agent that is currently offline, you’ll get back 503 Service Unavailable.
Update a Frame’s settings
The Frame’s Settings tab groups everything you can change into clear sections (General, Source, Runtime, Environment variables, Custom domains, Danger zone). A sticky save bar at the bottom tracks unsaved changes so you always know if something is pending. You can:- Rename the Frame.
- Switch the branch Nubo watches.
- Change the port your app listens on.
- Scale the replica count up or down.
- Update environment variables.
- Attach or remove custom domains and volumes.
Changing the port re-rolls the Frame so the new value takes effect. Picks must be between 1024 and 65535, and a few reserved ports (6379, 27017, 9898, and 27018) are rejected because they collide with system services.
Delete a Frame
From the dashboard: open the Frame’s Settings tab and scroll to the danger zone. Via API:Related
Deployments
How a push turns into a running Frame
Environment variables
Pass secrets and config into your app
Custom domains
Serve a Frame at your own hostname
Volumes
Add persistent storage to a Frame
