Skip to content

v0.22.0

Choose a tag to compare

@gfargo gfargo released this 18 May 18:36
· 37 commits to main since this release

New Features

  • Multi-host topology mapping (#104) — Define [hosts] and [stacks] sections in strut.conf to map stacks to hosts. Env files only need secrets, not host config.

  • BUILD_MODE=local (#99) — Build images directly on the target host instead of pulling from a registry. Set in services.conf.

  • strut rebuild (#103) — New command that forces a build + deploy cycle for stacks with Dockerfiles.

  • strut remote:init (#95) — Bootstrap strut on a remote VPS in one command.

Bug Fixes

  • Audit format strings over SSH (#100) — Replaced Go template {{json .}} with --format json to prevent mangling in SSH batch mode.

  • VPS hostname detection (#102) — is_running_on_vps now checks hostname match (not just IP), and --force-local flag added to deploy.

  • Engine/project separation (#101) — deploy.sh now resolves lib files from STRUT_HOME instead of the project root.

  • COMPOSE_PROJECT_NAME support (#96) — resolve_compose_cmd respects COMPOSE_PROJECT_NAME from env files for stack takeover.

  • SSH IdentitiesOnly=yes (#93) — build_ssh_opts adds IdentitiesOnly=yes when a key is specified.

Install / Upgrade

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