-
Notifications
You must be signed in to change notification settings - Fork 1
Installation
Install strut on macOS or Linux. No build step — it's a pure bash application, so there's nothing to compile either way.
strut installs one of two ways. Pick whichever fits how you manage tools on this machine — both are fully supported and strut upgrade works correctly either way.
| Git-based | Homebrew | |
|---|---|---|
| Command |
install.sh (curl one-liner, below) |
brew install gfargo/tap/strut |
| Best for | Most users — fastest path, works anywhere bash + git do | You already manage CLI tools with brew
|
| Installs to |
~/.strut (configurable) |
Homebrew's standard prefix |
| Upgrade |
strut upgrade runs git pull
|
strut upgrade runs brew upgrade
|
Clones strut to ~/.strut and symlinks the strut binary onto your PATH.
curl -fsSL https://raw.githubusercontent.com/gfargo/strut/main/install.sh | bashPrefer not to pipe a script into bash, or want to review it first? Do the same thing by hand:
git clone https://github.com/gfargo/strut.git ~/.strut
export PATH="$HOME/.strut:$PATH"Add the PATH export to your shell profile (~/.bashrc, ~/.zshrc, etc.) to persist it. This is exactly what the installer script does — no functional difference, just automated vs. by hand.
The installer respects these environment variables:
| Variable | Default | Description |
|---|---|---|
STRUT_HOME |
~/.strut |
Installation directory |
STRUT_REPO |
https://github.com/gfargo/strut.git |
Git repository URL |
STRUT_BRANCH |
main |
Branch to install from |
brew install gfargo/tap/strutstrut upgrade automatically detects the Homebrew install and delegates to brew upgrade gfargo/tap/strut — no extra setup needed.
strut upgradestrut upgrade is install-method-aware (since v0.29.0): it detects how strut was installed and uses the matching mechanism automatically.
| Install method | Upgrade behavior |
|---|---|
| Git-based (default) |
git pull on STRUT_HOME
|
| Homebrew | brew upgrade gfargo/tap/strut |
| Unknown | Prints guidance to re-run the installer |
If you installed via the git-based method, re-running the installer also works:
curl -fsSL https://raw.githubusercontent.com/gfargo/strut/main/install.sh | bashBoth preserve your project files — only the ~/.strut engine is updated.
strut checks for new versions on every invocation (once per 24 hours). To silence the nag:
export STRUT_NO_UPDATE_CHECK=1Or pass the variable inline: STRUT_NO_UPDATE_CHECK=1 strut my-stack deploy --env prod.
Git-based install:
curl -fsSL https://raw.githubusercontent.com/gfargo/strut/main/install.sh | bash -s -- --uninstallThis removes the symlink and deletes ~/.strut. Your project directories (stacks, configs, env files) are not touched.
Homebrew install:
brew uninstall gfargo/tap/strutThe installer creates a symlink to the strut binary:
- If
/usr/local/binis writable → symlinks there - Otherwise → symlinks to
~/.local/bin(and reminds you to add it to PATH)
strut ships with skills for operational workflows, installed separately via strut skills install --format <editor> (see Agent Steering) — this is independent of which method you used to install the CLI itself.
The installer prints a one-time reminder about this after install; suppress it with:
curl -fsSL https://raw.githubusercontent.com/gfargo/strut/main/install.sh | bash -s -- --no-skills- git — required for installation and VPS operations
- Docker + Docker Compose — required on any machine running stacks
- bash 4+ — strut is a bash application
- shellcheck + bats-core — optional, for development/testing
- macOS (Intel and Apple Silicon)
- Linux (Ubuntu, Debian, and other distributions with bash 4+)
strut · v0.28.0 · Report an Issue
Getting Started
Core Concepts
Operations
- Deployment
- Ship and Rebuild
- GitHub Action
- Webhook Automation
- Remote Host Setup
- Provisioning
- Blue-Green Deploy
- Deploy Rollback
- Database Backups
- Secrets Management
- Stack Groups
- Lifecycle Hooks
- Notifications
- Key Rotation
- Drift Detection
- Domain and SSL
- Certificate Management
- Gateway Management
- Monitoring
- Volume Management
Advanced
- Security Posture
- VPS Audit and Migration
- Stack Validation
- Data Anonymization
- Debugging
- Local Development
Extending
Contributing