Skip to content
SSH Deployment Tool
⚠️ Alpha — API may change

Catapult JS

Deploy Node.js applications over SSH.

npx @catapultjs/deploy init

SSH-based

Deploy directly over SSH — no agents, no server-side dependencies, just a remote shell.

🔧

Pipeline-driven

Composable task pipeline. Insert, remove or replace any step with a single function call.

📦

Recipes

Drop-in recipes for AdonisJS, PM2 and rsync. Import once, tasks are registered automatically.

↩️

Auto rollback

On failure after publish, the previous release is restored automatically.

🌐

Multi-server

Deploy to staging and production in the same run. Target a single host with --host.

🔌

Extensible

Define custom tasks, hooks and recipes. Full async support with getContext().

Up and running in minutes

1

Init

npx @catapultjs/deploy init
2

Configure

import { defineConfig } from '@catapultjs/deploy'

await defineConfig({
  keepReleases: 5,
  hosts: [{
    name: 'production',
    ssh: 'deploy@example.com',
    deployPath: '/home/deploy/myapp',
    branch: 'main',
  }],
})
3

Deploy

npx cata deploy