Documentation Index
Fetch the complete documentation index at: https://docs.withnubo.com/llms.txt
Use this file to discover all available pages before exploring further.
The Static pack ships your raw HTML files behind nginx. It’s for sites that don’t need a build step: landing pages, portfolios, plain HTML.
If your site uses React, Vite, Astro, or anything that produces a dist/ directory at build time, use the Node.js pack instead. That pack runs the build first; this pack assumes everything’s already built.
When it runs
Two conditions, both required:
- There’s an
index.html at the repo root or under public/index.html.
- There’s no
package.json at the root.
The package.json check is what makes a React app go to the Node pack, not here.
What gets shipped
| Source | Lands at |
|---|
index.html at root | /usr/share/nginx/html |
public/index.html | /usr/share/nginx/html from public/ |
The entire matching directory is copied. So if you have index.html, style.css, and images/, they all get served.
Runtime
| Field | Value |
|---|
| Base image | nginx:alpine |
| Cmd | nginx -g "daemon off;" |
| Port | 80 |
| Working dir | (nginx default) |
The Frame’s port should be set to 80 for this pack.
Limits today
- No control over nginx config. Need rewrites, caching headers, or compression? Switch to the Paketo builder, which supports a custom
nginx.conf and BP_WEB_SERVER knobs.
- No directory listings, no custom 404 pages.
- HTTPS is handled by Nubo at the edge; nginx itself serves plain HTTP inside the container.
When to use a different pack
| You have… | Use |
|---|
| Just HTML/CSS/JS files | Static (this pack) |
| A React/Vite/Svelte/Next project | Node.js pack |
A dist/ folder you built locally | Static pack, but commit dist/ and put your index.html inside it (rename to public/) |
| An existing nginx config | Paketo builder, with the static guide |