Documentation
From first install to production operations. Learn how to deploy Docker stacks, manage databases, rotate keys, and monitor your infrastructure.
Install strut on macOS or Linux with a single command. No build step — it's a pure bash application that clones from git and symlinks to your PATH.
Get from zero to a deployed stack in four commands. This guide walks through initializing a project, scaffolding a stack, configuring it, and deploying to a VPS.
Running strut with no arguments from a terminal opens an interactive
Strut ships tab-completion scripts for bash, zsh, and fish. They complete
strut operates across two filesystem trees that collaborate at runtime:
strut uses a layered configuration system: project-level settings in strut.conf, per-stack settings in stack directories, and per-environment secrets in dotenv files.
Complete reference for every strut command, flag, and subcommand. Each command supports --help for inline usage (e.g. strut my-stack backup --help).
strut ships with AI agent context — steering docs and operational skills — that help coding assistants understand the project and execute strut workflows correctly. These work with any agent that supp
Deploy and manage Docker stacks on VPS infrastructure. strut supports local deploys, full VPS release pipelines, dry-run previews, service profiles, and one-command rollback.
Blue-green deploy stands the new version of a stack up alongside the current one, waits until it passes health checks, swaps the reverse proxy to point at it, then drains and stops the old version. If
strut automatically saves a snapshot of your container images before each deploy. If something goes wrong, you can roll back to the previous state with a single command.
Backup and restore procedures for Postgres, Neo4j, MySQL, and SQLite databases managed by strut.
Run one strut command across many stacks. Since v0.15.0.
User-defined scripts that run at strut lifecycle points. Since v0.9.0.
Fire events to Slack, Discord, or a generic webhook when deploys, backups, health checks, and drift detection run. Since v0.9.0.
Procedures for rotating all credentials associated with a strut stack — SSH keys, API keys, database passwords, GitHub secrets, and environment variables.
Configuration drift occurs when VPS runtime configuration differs from git-tracked configuration. strut can detect, report, and automatically fix drift.
Configure custom domains and SSL/TLS certificates for strut stacks using Let's Encrypt.
Self-hosted monitoring with Prometheus, Grafana, and Alertmanager for strut stacks.
strut provides dynamic volume management driven by volume.conf in each stack.
Cross-stack security and operational audit. Since v0.11.0.
Audit existing VPS Docker setups and migrate them to strut management.
Validate and check the integrity of strut stacks — whether creating a new one or verifying an existing one is healthy.
strut can anonymize PII when syncing production databases to local development environments. This helps teams comply with GDPR, HIPAA, and other data protection requirements.
Troubleshooting and debugging procedures for strut VPS deployments.
strut supports local stack management for development, including environment sync and database sync from production.
How to set up a development environment, run tests, lint code, and submit pull requests to strut.
Standards for shell modules, function naming, error handling, configuration access, and testing patterns used across the strut codebase.
Step-by-step guide for extending the strut CLI with a new command.
How strut is organized on disk — the engine installation at ~/.strut/, the user project layout, and what each module is responsible for.
Ready to deploy?
$ curl -fsSL https://raw.githubusercontent.com/gfargo/strut/main/install.sh | bash