gw
Watch local git repositories, keep in sync with remote and run commands.
Motivation #
gw
is a lightweight binary that manages a simple pull-based continuous deployment for you. It watches a local git repository, fetches if the remote changes, and builds or deploys your code. Current CD solutions either lock you into proprietary software (e.g. Netlify or Vercel) or complicated to run and manage (e.g. ArgoCD). gw
is a service that can run everywhere (even behind NAT or VPN), synchronizes code with your remote and deploys immediately, saving your developers time and energy.
Features of gw
:
- lightweight: it is only a 1.4MB binary
- runs anywhere: use it on baremetal, systemd or docker
- open source: written entirely in Rust, you can build it from source in a few minutes
- pull-based: works on any network, even behind a NAT or VPN
- flexible: build, deploy, restart or anything you can imagine
Installation #
To get started download the gw
binary from releases or install with cargo:
cargo install gw-bin
For more installation methods, see Installation.
Get started #
To use gw
, you have to point it to your local repository and it will pull changes automatically. You can run scripts on every pull to build or restart your deployments with the --script
flag.
gw /path/to/repo --script 'run build process' --script 'restart deployment'
For your first steps with gw
, see Get started.
Next steps #
But this is not all gw
can do. With a little creativity you can create a lot of things, for example:
- pull changes for development and get a notification;
- rollout a docker-compose deployment continously;
- build on all commits for a minimal Netlify alternative,
...and many thing else. For a complete list, check out the guides page.