RumptyCloud
Skip to main content

Deploy

The Deploy tab gives you everything needed to ship build artifacts to this VM, either automatically via GitHub Actions or manually via the Rumpty CLI.

How it works

Your build runs in GitHub Actions. The Rumpty action uploads the build output to the VM and runs your after-deploy command. Your build stays in GitHub; only the artifact is transferred.

GitHub Actions setup

Step 1: Add secrets

Add these two secrets to your GitHub repository under Settings → Secrets → Actions:

SecretValue
RUMPTY_TOKENYour platform API token (shown on the Deploy tab)
RUMPTY_VM_IDThe VM's unique ID (shown on the Deploy tab)

Step 2: Configure a reverse proxy

Set up a reverse proxy on the VM once to route traffic to your app. Rumpty only needs a deploy target directory and an after-deploy command. The Deploy tab includes example configs for nginx and HAProxy; Caddy or any other proxy works too.

ProxyConfig pathBest for
nginx/etc/nginx/sites-available/<vm-name>Static builds served from /var/www
HAProxy/etc/haproxy/haproxy.cfgForwarding traffic to a local app port

Step 3: Add the workflow file

The Deploy tab generates a ready-to-use workflow. Copy it to .github/workflows/rumpty-deploy.yml in your repository:

name: Deploy to RumptyCloud

on:
push:
branches: [main]
workflow_dispatch:

jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: actions/setup-node@v4
with:
node-version: 22
cache: npm

- name: Build
run: |
npm ci
npm run build

- name: Deploy to RumptyCloud
uses: rumptycloud/deploy-action@v1
with:
token: ${{ secrets.RUMPTY_TOKEN }}
vm-id: ${{ secrets.RUMPTY_VM_ID }}
source: ./dist
target: /var/www/<vm-name>
after-deploy: sudo systemctl reload nginx

Step 4: Push to deploy

Every push to main triggers the workflow. GitHub runs the build; Rumpty uploads the artifact and runs your after-deploy command on the VM.

Click View app on the Deploy tab to open the live URL.

CLI deploy (local builds)

For quick testing without GitHub Actions, build locally, copy the output to the VM, and run your after-deploy command:

rumpty copy ./dist <vm-name>:/var/www/<vm-name> --ws <workspace-slug>
rumpty exec <vm-name> --ws <workspace-slug> -- sudo systemctl reload nginx

rumpty copy transfers files to the VM (rsync when available, scp otherwise); rumpty exec runs the remote command after --.