Skip to main content
Every time Nubo builds your app, it captures the full output - what was installed, what compiled, what started. Logs are kept long enough that you can look back at a build that succeeded last Tuesday or the one that failed five deploys ago.

From the dashboard

Open your Frame and click Deployments. Pick any deployment from the list to see its logs. Builds that are in progress stream live; older ones load from the archive. If a deploy fails, the logs are the first place to look. The failing step is the last thing printed, so scroll to the bottom.

From the API

curl "https://shuttle.withnubo.com/v2/projects/<project_id>/spaces/<space_id>/frames/<frame_id>/deployments/<deployment_id>/logs" \
  -H "Authorization: Bearer <your-token>"
The response is the raw build output as plain text.

What you’ll see

For most apps, the logs walk through cloning the commit Nubo checked out, the buildpack detecting your language and installing dependencies, building (asset compilation or production bundling), and the container starting up. The exact phase labels come from the buildpack output, so the wording you see depends on the buildpack that ran. If a step fails, the logs stop there and the error message is the last thing printed.

How long logs stick around

On the free plan, build logs are kept for 7 days. On paid plans they’re retained indefinitely, for as long as the deployment exists. The latest finished deploy of each Frame is always kept regardless of plan, so you’ll never lose your most recent log even if the rest of the window has aged out. After the free plan’s 7-day window:
  • The dashboard marks the deployment’s logs as expired.
  • The API returns a not-found error when you ask for them. Once the deployment is around 30 days old, that settles into a 410 Gone.
If you need long-term retention (for compliance, for your own debugging archive, etc.), pull the logs before they expire and store them wherever you store your own data.

Deployments

Trigger a deploy and see its history

Rollback

Quickly revert to a known-good deploy