Configz is designed to be a simple but powerful way to configure a server or local machine. It is distributed as a single binary and configuration is written in the Lua scripting language. It provides a minimal standard library to manage files and run commands on a machine. Configz aims to be the middle ground between bash scripts and full-blown automation tools like Ansible or Puppet.
Currently there is no script for installing, you can manually download the release binary from the releases page.
- Create the directory structure for your project that will typically be stored in source control.
mkdir -p configz-test/{files,modules}
cd configz-test
- Add your first configuration file in the
files
directory
# files/gitconfig
[user]
name = My Name
email = me@example.com
- Create your first configz module in the
modules
folder
-- modules/git.lua
local home = os.getenv("HOME")
configz.file(home .. "/.gitconfig", { source = "files/gitconfig" })
- Apply your configuration module
configz --module modules/git
For inspiration on creating modules, you can reference the
lua
directory in the
repo, this has some examples and over time will hopefully become a bit of a
standard library.
Full the full documented api please reference the lua definitions