Ship n8n Node
Publish a site from any n8n workflow — and it works with no account at all. NPM / GIT
Install
In your n8n instance: Settings → Community Nodes, then install:
n8n-nodes-shipstatic
Restart n8n afterwards. Works on n8n Cloud and self-hosted.
Publish without an account
Add a ShipStatic node. There are no credentials to configure.
- Set Resource to Deployment and Operation to Deploy
- Feed it files — binary files from an upstream node (HTTP Request, Google Drive, Convert to File), or toggle Binary File off and paste HTML into File Content
- Run it
Your site is live on *.shipstatic.com. Published this way it is public and expires in 3 days, and the output carries a claim URL — surface that to whoever should keep the site.
Deploying a React, Vue or Svelte build? The node detects it and adds the routing config the site needs, so /about resolves to your app instead of returning 404. Turn it off under Single-Page App Routing, or ship your own ship.json — the node never overwrites one you included.
Want it private? Set a Password under Options (6–128 characters).
Deploy to your account
For permanent deployments and everything beyond publishing:
- Get a free API Key at my.shipstatic.com/api-key
- In n8n: Credentials → New Credential → ShipStatic API
- Paste it into Token and save
The field is called Token and your API key is what goes in it — one credential, two names. It also accepts a deploy token (deploy-…), and the server tells them apart by shape, so there is nothing to select.
A deploy token will fail the credential connection test, which checks account access. That is expected rather than a broken credential: use one for deploy-only workflows and an API key for everything else.
Retries that don't deploy twice
n8n's Retry On Fail makes a workflow the most likely thing to retry a deploy automatically. Set an Idempotency Key under Options and a retry replays the original deployment instead of creating a second one:
{{ $execution.id }}
Key the attempt, never the try — a value that stays the same across retries of one logical deploy and differs for the next. Leave it empty and every run deploys afresh.
Operations
Both List operations honour n8n's usual controls: Return All follows pagination to the end, Limit stops once it has collected that many.
Deployments
| Operation | Description |
|---|---|
| Deploy | Publish files and get a live URL instantly |
| List | All deployments with URLs, status, labels, and protection state |
| Get | Details for one deployment |
| Set | Update labels (replaces all existing labels) |
| Delete | Delete a deployment and all its files |
Deleting is asynchronous: the response reports a deleting status, and the site stays served until background cleanup finishes.
Domains
| Operation | Description |
|---|---|
| Set | Create or update a domain — reserve, link, switch deployments, or label |
| List | All domains with their linked deployment and verification status |
| Get | Details for one domain |
| Records | The DNS records you need to add at your provider |
| DNS | Which DNS provider hosts a domain (Cloudflare, Namecheap, …) |
| Share | A shareable setup link so someone else can view the required records |
| Validate | Check a name is valid and available before connecting it |
| Verify | Queue a DNS check after you configure the records |
| Delete | Permanently disconnect and delete a custom domain |
Account
| Operation | Description |
|---|---|
| Get | Your account details including email, plan, and usage |
As an agent tool
The node is marked usableAsTool, so an n8n AI Agent can call it directly — the same operations, chosen by the model rather than wired by hand. See MCP if you want an agent outside n8n to publish for you.
Architecture
The node calls the API over direct HTTP with zero runtime dependencies — n8n Cloud's verification requires it. Its credential lives in n8n's own encrypted credential store rather than in any file on disk.