Gexec

[!CAUTION]
This project is in active development and does not provide any stable release
yet, you can expect breaking changes until our first real release!
With Gexec we are building a generic execution platform for Ansible, OpenTofu
and Terraform. Besides that it should be possible to execute any kind of script
which is supported by Asdf plugins. Some plugins are installed as part
of the containers, if you are installing this project differently it is up to
you to install and configure Asdf.
Install
You can download prebuilt binaries from the GitHub releases or from
our download site. Besides that we also prepared repositories for
DEB and RPM packages which can be found at Baltorepo. If you prefer
to use containers you could use our images published on GHCR. You are a
Mac user? Just take a look at our homebrew formula. If you need
further guidance how to install this take a look at our documentation.
Build
If you are not familiar with Nix it is up to you to have a working
environment for Go (>= 1.24.0) and Nodejs (22.x) as the setup won't we covered
within this guide. Please follow the official install instructions for
Go and Nodejs. Beside that we are using go-task to
define all commands to build this project.
git clone https://github.com/gexec/gexec.git
cd gexec
task fe:install fe:build be:build
./bin/gexec-server -h
If you got Nix and Direnv configured you can simply execute
the following commands to get al dependencies including go-task and
the required runtimes installed. You are also able to directly use the process
manager of devenv:
cat << EOF > .envrc
use flake . --impure --extra-experimental-features nix-command
EOF
direnv allow
We are embedding all the static assets into the binary so there is no need for
any webserver or anything else beside launching this binary.
Development
To start developing on this project you have to execute only a few commands. To
start development just execute those commands in different terminals:
task watch:server
task watch:runner
task watch:frontend
The development server of the backend should be running on
http://localhost:8080 while the frontend should be
running on http://localhost:5173. Generally it supports
hot reloading which means the services are automatically restarted/reloaded on
code changes.
If you got Nix configured you can simply execute the devenv
command to start the frontend, backend, MariaDB, PostgreSQL and Minio:
devenv up
Security
If you find a security issue please contact
gexec@webhippie.de first.
Contributing
Fork -> Patch -> Push -> Pull Request
Authors
License
Apache-2.0
Copyright
Copyright (c) 2025 Thomas Boerger <thomas@webhippie.de>