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.
Up and Running in 4 Easy Steps
Install Deployra CLI on your target Linux VPS server.
Generate starter config spec in your project directory.
Register project config with Deployra SQLite registry.
Start long-running poller daemon (or test with --dry-run).
Built for Reliability, Speed & Simplicity
Deploys Node.js, Go, Python, Rust, PHP, Java, Ruby, Docker binaries, or static sites without proprietary agent plugins or framework locks.
Embedded SQLite job queue engine powered by Workmatic handles background deployment queues, atomic concurrency locks, and configurable queue policies (latest, fifo, reject).
Automates systemd service restart, reload, and auto-registration using Unitup with configurable memory limits and CPU quotas.
Post-deployment verification powered by Ready-checker supporting HTTP/HTTPS endpoints, TCP ports, command execution, process verification, and file existence.
If build steps or readiness checks fail, Deployra automatically reverts the repository to the last successful commit SHA and restarts the service.
Pass --dry-run to test deployment pipelines, preview build commands and service actions safely without mutating system state.
How Deployra Orchestrates Deployments
Lightweight git ls-remote checks target branch SHA periodically.
Deduplicates SHAs and acquires atomic SQLite project lock.
Executes configured install and build command sequences safely.
Restarts systemd unit via Unitup and verifies post-deploy readiness.
On step failure, automatically reverts to previous valid commit SHA.
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.
npm run start:api
latest, fifo, reject)
# 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
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. |