🚀
Deployra v0.1.7
Lightweight, Independent VPS Deployment Engine

Automated VPS Deployments for Any Language or Framework

Deployra is a 100% platform-independent deployment orchestrator. It monitors Git repositories, manages background queues via Workmatic, controls systemd services via Unitup, verifies health checks, and auto-rolls back on failure.

bash — deployra watch --dry-run
⚡ DRY-RUN SIMULATION ACTIVE
$ deployra deploy my-api --dry-run
⚡ [DRY-RUN MODE] Simulating deployment for 'my-api'...
[INFO] [DRY-RUN] Validating repository structure at '/var/www/my-api'
[INFO] [DRY-RUN] Target SHA resolved: 973f5de2a1
[INFO] [DRY-RUN] Would execute command: 'npm ci' in '/var/www/my-api'
[INFO] [DRY-RUN] Would execute command: 'npm run build' in '/var/www/my-api'
[INFO] [DRY-RUN] Would execute service action 'restart' on systemd service 'api'
✔ [DRY-RUN] Deployment simulation #dep_x91A2 completed successfully! Zero system changes applied.

Quick Start

Up and Running in 4 Easy Steps

1

Install Globally

Install Deployra CLI on your target Linux VPS server.

$ npm i -g deployra
2

Init Configuration

Generate starter config spec in your project directory.

$ deployra init
3

Register Project

Register project config with Deployra SQLite registry.

$ deployra add
4

Start Daemon

Start long-running poller daemon (or test with --dry-run).

$ deployra watch

Engine Highlights

Built for Reliability, Speed & Simplicity

🌐

100% Framework Agnostic

Deploys Node.js, Go, Python, Rust, PHP, Java, Ruby, Docker binaries, or static sites without proprietary agent plugins or framework locks.

Workmatic Queue Engine

Embedded SQLite job queue engine powered by Workmatic handles background deployment queues, atomic concurrency locks, and configurable queue policies (latest, fifo, reject).

🛠

Systemd Lifecycle (Unitup)

Automates systemd service restart, reload, and auto-registration using Unitup with configurable memory limits and CPU quotas.

🩺

Readiness Checkers

Post-deployment verification powered by Ready-checker supporting HTTP/HTTPS endpoints, TCP ports, command execution, process verification, and file existence.

Automated Rollbacks

If build steps or readiness checks fail, Deployra automatically reverts the repository to the last successful commit SHA and restarts the service.

Dry-Run Simulation Mode

Pass --dry-run to test deployment pipelines, preview build commands and service actions safely without mutating system state.

Internal Pipeline

How Deployra Orchestrates Deployments

STEP 01

Git Poller

Lightweight git ls-remote checks target branch SHA periodically.

STEP 02

Workmatic Queue

Deduplicates SHAs and acquires atomic SQLite project lock.

STEP 03

Build Pipeline

Executes configured install and build command sequences safely.

STEP 04

Systemd & Health

Restarts systemd unit via Unitup and verifies post-deploy readiness.

RECOVERY

Auto Rollback

On step failure, automatically reverts to previous valid commit SHA.

Configuration File

Simple, Declarative YAML Spec

Configure project sources, build command arrays, systemd service names, custom start scripts, readiness check endpoints, and rollback behavior in a single file: deployra.config.yaml.

  • service.command: Run custom npm scripts like npm run start:api
  • queueMode: Control concurrent deployment queue (latest, fifo, reject)
  • ready.url: Health check url verification before marking deployment successful
deployra.config.yaml YAML
# Deployra Configuration
project:
  name: api
  path: /var/www/api

source:
  remote: origin
  branch: main

watch:
  interval: 30s

deploy:
  concurrency: 1
  queueMode: latest

  commands:
    install:
      - npm ci
    build:
      - npm run build

  service:
    name: api
    action: restart
    command: npm run start:api

  ready:
    url: http://127.0.0.1:6767/api/health
    timeout: 45s

  rollback:
    enabled: true

CLI Commands

Full Command Reference

Command Option Flags Description
deployra init [path] Generates a sample deployra.config.yaml file.
deployra add [configPath] Registers a new project configuration into Deployra SQLite repository.
deployra watch [app] -d, --dry-run Starts the background Git polling daemon (--dry-run to simulate).
deployra deploy [app] -d, --dry-run Triggers a manual deployment pipeline (--dry-run to preview commands).
deployra check [app] Performs a one-shot remote SHA check without running builds.
deployra doctor [config] Runs diagnostic checks on Git, permissions, and Systemd status.
deployra service <action> install | start | stop Manages Deployra watcher daemon as a systemd background service.