open source · self-hosted · production-ready

App
Crane

Deploy and manage multiple apps on a single Ubuntu server — with zero-downtime deploys, dual environments, auto-HTTPS, and a full REST API.

$ curl -fsSL https://raw.githubusercontent.com/gitayg/appCrane/main/install.sh | sudo bash
View on GitHub How it works ↓
// capabilities

Everything you need
to ship.

A full deployment platform on your own machine. No monthly fees, no vendor lock-in, no cloud bill surprises.

Multi-app on one server
Run as many apps as your server can handle. Each gets isolated PM2 processes, its own ports, and automatic Caddy routing.
Dual environments
Every app gets production and sandbox, always-on. Test on sandbox, promote to production in one command.
Auto-HTTPS via Caddy
Caddy handles TLS certificates automatically via Let's Encrypt. No manual cert work.
GitHub webhook auto-deploy
Push to main and sandbox deploys automatically. HMAC-verified webhooks keep the pipeline secure.
Rollback in seconds
Symlink-based releases keep the last 5 builds. Rolling back is a symlink swap — instant, no rebuild.
Zero-downtime deploys
Start new → health check → swap → drain old. Production stays up throughout the deploy cycle.
Encrypted env vars
AES-256-GCM encrypted at rest. Admin is blocked from reading them by design — only app users access their own secrets.
Health checks + alerts
Pings /api/health every 30s. Auto-restarts on failure. Sends email when apps go down or recover.
AI-agent friendly API
Every operation has a curl equivalent. Point your AI agent to /agent-guide for complete markdown docs.
// workflow

Deploy in five steps.

From fresh Ubuntu server to running app in under ten minutes.

01
Install
Run the one-liner. Installs Node 20, Caddy, PM2, AppCrane, and creates an admin key.
02
Create app
crane app create with a slug, domain, and GitHub URL. Allocates ports and wires up routing.
03
Set env vars
crane env set or the dashboard. Encrypted at rest. Separate values per environment.
04
Deploy
crane deploy --env sandbox. Pulls, builds, starts, health-checks, and swaps the symlink.
05
Promote
crane promote. Copies code from sandbox to production with zero downtime.
crane — deploy workflow
# Create the app
$ crane app create --name BookClub --slug bookclub --repo https://github.com/org/bookclub
✓ App bookclub created. Available at https://crane.glick.run/bookclub
# Set env vars (encrypted, sandbox only)
$ crane env set bookclub --env sandbox DATABASE_URL=postgres://... API_KEY=sk-xxx
✓ 2 vars set for bookclub/sandbox
# Deploy to sandbox, check health, promote
$ crane deploy bookclub --env sandbox
✓ Deploy #12 live — v1.4.2 — 23s
$ crane promote bookclub
✓ bookclub/sandbox → production (zero downtime)
# Something wrong? Rollback takes 1s
$ crane rollback bookclub --env production
✓ Rolled back to v1.4.1
// security model

Admin can't read
your secrets.

Two distinct roles with a hard wall between infrastructure control and application data.

Admin Platform operator
  • Create and delete apps
  • Create users and assign them to apps
  • View server health (CPU, RAM, disk)
  • Configure branding and settings
  • Cannot read env vars or /data/
  • Cannot deploy, rollback, or promote
  • Cannot view backups or configure health
Admin isolation is enforced at middleware level — not by convention. Env vars are AES-256-GCM encrypted with a key only on-disk.
App User Developer — owns their app
  • Deploy, rollback, and promote (own apps)
  • Read and write env vars (own apps)
  • Configure health checks and webhooks
  • Create and restore backups
  • View logs and audit trail
  • Access /data/ directory
  • Cannot access other users' apps
// built with

Boring tech.
Reliable stack.

No microservices. No containers. No orchestration. Just proven Linux tools running directly on your server.

Node.js 20
Express 5
SQLite
PM2
Caddy 2
Commander.js
AES-256-GCM
Let's Encrypt
Ubuntu 22.04+

Ready to
deploy?

One command. Your server. Your apps.

$ curl -fsSL https://raw.githubusercontent.com/gitayg/appCrane/main/install.sh | sudo bash
Star on GitHub Read the docs ↗
AppCrane — MIT License