pinecall deploy
Run the project on Pinecall: a release it installs and starts, rolled back or removed.
~/acme-support $ pinecall deploy --prod --note "reads the order's eta back"
acme-support: release 4 sent · 38 KB · 3b507661b052
acme-support: the box installs and starts it; the release before keeps answering meanwhile
acme-support: release 4 is live
The platform runs the project for you: the same pinecall start you would run on a server
(Production, "(c)"), in a container of its own on Pinecall's machines, with
nothing to keep up. The whole guide — preparing a project, secrets, limits, CI, every refusal —
is deploying.md; what follows is the verb's reference. What it takes:
- The project, packed. Every file the project's
.gitignorefiles leave in — each read where it sits, with no git asked, so a folder that is no checkout packs the same — and nevernode_modules,.git,distor any.env: the key in.envis yours, and the app gets one of its own. 10 MB packed at most, 100 MB unpacked, 5 000 files; a link or a path out of the folder is refused. - A lockfile, and
@pinecall/agentsin the dependencies. The platform installs frompnpm-lock.yaml(pnpm install --frozen-lockfile --prod), elsepackage-lock.json(npm ci), elsepackage.json, in five minutes at most; the version of@pinecall/agentsthe lockfile pins is the one that serves the agent, started by the platform's ownpinecall. - The app's name: this folder's name, or
--name. Lower-case words and dashes. The first upload makes the app — counted against the org'shosted_appsquota in that environment, and given a server's token of its own (hosted app <name>in the console's Tokens); every later upload is its next release, numbered, never edited.
Then the platform installs the release, starts pinecall start (--prod in production) with the org's
secrets, its token and the gateway's address in the environment, and the verb follows
it: live once the release's agents have registered, which is when the release before is told to
drain — so a deploy cuts no call. A release that does not install, exits, or registers nothing in
two minutes is failed, printed with its last lines, and the release before keeps answering;
the verb exits 1. --no-follow returns once the upload is kept.
Every agent under agents/ runs in the one process, as pinecall start holds them at the root.
The sandbox's platform unless --prod; each environment hosts its own apps.
pinecall deploy list |
every app of the org in the environment: live: release 3, a release on its way, or the one that failed and why |
pinecall deploy releases |
one app's releases, newest first: when, how big, who, and the note |
pinecall deploy rollback <n> |
release n's sources kept again as the next release, on the platform itself, and followed like any |
pinecall deploy logs [--follow] |
the last lines of the app's process, fresh: asking is what makes the platform send them, a beat or two later, so the verb waits up to fifteen seconds for lines read after it asked (older ones are printed with how old they are). --follow keeps printing the lines that come, until Ctrl-C |
pinecall deploy stop · start |
stopped, its process drains and nothing runs — its releases and token stay, and list says stopped; started, its newest release runs again |
pinecall deploy rm |
the app no longer hosted: its releases go and its token is revoked |
The process prints no console link: a hosted app's output is a log, and a one-use code in a log is
a way in for whoever reads it (see start).