An archive with your files and an optional app.json at the top.
{
"name": "myapp", // unit app-myapp.service
"version": "v1.2.0",
"kind": "binary", // or "static"
"exec": "myapp", // linux binary in bundle
"path": "/myapp", // URL path on the site
"health": "/healthz", // checked after start
"env": { "LOG_LEVEL": "info" }
}
The app gets ADDR, PORT, BASE_PATH and DATA_DIR. Listen on ADDR; serve under BASE_PATH.
Secrets: load a secrets.env in the deploy plan, never in the bundle.
Static site: "kind": "static", "static_dir": "dist".