Node.js app
Your Node.js code running as a service, from files or a GitHub repo: it installs package.json and starts it. No image to build.
- app
- language
Guides: Run your own app, Run a GitHub repo
Run it
briq_run({
recipe: "node",
params: {
"version": "22",
"packages": [],
"port": 8080,
"env": {},
"size": "small"
},
wait: true
})curl -X POST https://api.briq.cloud/v1/briqs \
-H "Authorization: Bearer $BRIQ_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"recipe": "node",
"params": {
"version": "22",
"packages": [],
"port": 8080,
"env": {},
"size": "small"
},
"wait": true
}'
# → { "briqs": [{ "id": "bq_…", … }], "outputs": { "APP_URL": "…" }, … }
# ... when done, for each briq id
curl -X DELETE https://api.briq.cloud/v1/briqs/<id> \
-H "Authorization: Bearer $BRIQ_API_KEY"Parameters
| Name | Type | Options | Default |
|---|---|---|---|
| version | enum | 22, 24 | "22" |
| files | record | { "path": "content" | { base64 } } | — |
| repo | object | { url, ref?, dir?, token? } | — |
| packages | string[] | — | [] |
| install | string | — | — |
| build | string | — | — |
| start | string | — | — |
| port | number | — | 8080 |
| env | record | { NAME: "value" | { secret, value? } } | {} |
| size | enum | nano, small, medium, large | "small" |
| diskGb | number | — | — |
Outputs
Returned by briq_run once the stack is healthy. Hosts resolve inside your team network; secrets are generated per run.
- APP_URL
- http://app.<stack>.internal:8080
What it runs
| Briq | Image | Ports | Size | Volume |
|---|---|---|---|---|
| app | node:22-slim | 8080 | small | — |
When to use it
- You wrote an Express, Fastify or plain
node:httpserver and want it running next to its database, with a URL, without building an image. - A webhook receiver, an API mock or a small bot should run as a service.
Tips
- Code in a repo: pass
repo: { url: "github.com/owner/app" }instead offiles. See Run a GitHub repo. - A bot or a scheduler that only makes outgoing calls is not seen as use, so it sleeps after
its
sleepwindow. Give itsleep: "never"(always on, Pro plan and above), or a window longer than the gap between its runs. - Pass the code as
files:{ "server.js": "…", "package.json": "…" }. Relative paths go under/app, the working directory, written before the app starts and again whenever it starts over. package.jsonis installed at each start (npm ciwhen there is a lockfile);packages: ["express"]adds more without one. They stay on the disk, so restarts are quick.startis the command when it is notnode server.js, e.g."npm start".- Yarn 2 and later need the
packageManagerfield inpackage.json(yarn set versionwrites it): without it, corepack runs Yarn 1 instead of the version the repo was made with. - Listen on
::and onprocess.env.PORT(8080 by default). - No build step: ship JavaScript, or use the bun recipe to run TypeScript as it is.
- Publish it as you run it with
expose: "private"(or"public"for anyone): it returnsURL. - Step by step: Run your own app, with a database and a URL.