Open source CLI — v0.20.0 — MIT License

Deploy
Docker
stacks.
No drama.

$ curl -fsSL https://raw.githubusercontent.com/gfargo/strut/main/install.sh | bash

Workflow

Three commands.
That's it.

~/project
$

Capabilities

What you get.

Core

Multi-Stack Management

Run multiple Docker Compose stacks on one VPS. Each stack gets its own config, secrets, and lifecycle.

Deploy

One-Command Releases

Sync repo, run migrations, deploy containers, verify health. One command.

sync
migrate
deploy
verify
Data

Database Backup & Restore

Backup Postgres, MySQL, SQLite. Restore to any environment. Pull prod data locally for debugging.

pg
my
sq
Ops

Drift Detection

Compare local config to what's running. See exactly what changed and decide how to fix it.

- PORT=3000+ PORT=8080 NODE_ENV=prod
Security

Secret Rotation

Rotate SSH keys, API tokens, DB passwords. Update .env files and GitHub deploy keys in one go.

Observe

Health Checks

Configure per-service health checks in services.conf. strut waits for green before marking deploy complete.

apiwebdb
Safety

Dry-Run Mode

See what any command will do before it runs. Review the plan, then execute.

would stop 3 containers would pull 3 images would start 3 containers
Migration

VPS Audit

Already have Docker containers running? strut audit scans your VPS and helps you convert to managed stacks.

found 4 containers → 2 stacks

Deploy Anywhere

If it has SSH, strut can ship to it.

VPS

Cloud VPS

DigitalOcean, Hetzner, Linode, Vultr — if it runs Linux and has an IP, strut can deploy to it. No vendor lock-in, no proprietary agents.

$
SSH · Bash · Docker
01Edge

Raspberry Pi

Turn a $35 board into a production-grade Docker host. Home automation, IoT gateways, local AI inference.

$strut home-hub release --env pi
02Dev

Local Development

Mirror your production stack locally. Same configs, same commands. Catch issues before they hit prod.

$strut my-app deploy --env local
03Homelab

Homelab Server

Old laptop, NUC, or rack-mount. Run Plex, Nextcloud, Pi-hole — each as an isolated strut stack.

$strut media-server release --env homelab
04Education

Classroom Labs

Give every student their own stack. Scaffold once, deploy to each machine. Reset between sessions.

$strut scaffold student-env
05Staging

Preview Environments

Spin up a full stack per pull request on a shared staging VPS. Review, test, tear down.

$strut pr-42 release --env staging
06IoT

Edge Nodes

Deploy containerized services to remote edge devices. Kiosks, sensors, retail POS.

$strut kiosk-app release --env edge
07Bare Metal

Dedicated Servers

Colocated hardware, on-prem racks, or that beefy workstation under your desk.

$strut ml-pipeline release --env metal
08Gaming

Game Servers

Minecraft, Valheim, Factorio — containerized and deployed to any box. Backup worlds, monitor health.

$strut minecraft release --env gaming

No proprietary agents · No cloud lock-in · Just SSH + Bash + Docker

AI Native

Let your AI agent
run the show.

strut includes optional agent steering files and a skills library. Point Claude, Cursor, or any MCP-compatible agent at your project and let it handle deployments, backups, and rollbacks.

strut init

? Project name: my-app

? Target VPS: ubuntu@192.168.1.100

? Install agent steering & skills? (recommended)

❯ Yes, enable AI agent support
No, skip for now

Agent steering enabled

Skills library installed (12 skills)

Agents can now run: deploy, backup, rollback, scale...

Agent Steering

Prompt files that guide AI agents through strut commands. Tell it what to do, it figures out how.

Skills Library

12 pre-built skills: deploy, backup, rollback, scale, logs, and more. Drop them into your agent config.

Context Aware

Agents read your strut.conf, services.conf, and stack state. They know what's deployed and what's not.

Works with any MCP-compatible agent

Claude, Cursor, Windsurf, and more.

Learn More

Why strut

How it compares.

FeaturestrutKubernetesKamalManual SSH
Time to First DeployMinutesDaysHoursHours
Learning CurveLowSteepMediumLow
Multi-Stack Support
Database Backup
Drift Detection
Secret Rotation
Health Checks
Dry-Run Mode
No YAML Config
Works on Any VPS

Available via add-on or extra configuration

· · · · · · · · · · · · · · · · · ·

Who it's for

Who uses strut.

011 dev · 1 VPS · 0 drama

Solo Developer

You have a VPS, a Docker Compose file, and zero interest in learning Kubernetes. strut gets your app running with a real deployment workflow.

"I SSH into my server maybe once a month now."
022–10 devs · shared workflow

Small Team

Your team needs a consistent way to deploy. strut gives everyone the same commands, same configs, same process. No more 'works on my machine.'

"New devs can deploy on day one."
03N clients · 1 pattern

Agency / Consultancy

You manage infrastructure for multiple clients. strut keeps each project isolated while using the same patterns everywhere.

"Same workflow for every client. Different configs."
NO KUBERNETES REQUIREDNO YAML SPRAWLNO VENDOR LOCK-INONE COMMAND DEPLOYMIT LICENSEDOPEN SOURCEDOCKER COMPOSE NATIVEWORKS OVER SSHNO KUBERNETES REQUIREDNO YAML SPRAWLNO VENDOR LOCK-INONE COMMAND DEPLOYMIT LICENSEDOPEN SOURCEDOCKER COMPOSE NATIVEWORKS OVER SSH