Koch is a tool to install software packages, change files and other things on a single machine. The changes are described in a file and are written in Ruby.
The file describing a machine should be versioned, that way you create a repeatable description of how a machine is set up, with history.
For an example of how this can look like, check out this Rezeptfile and the other files in the directory.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
Fully backup any machine you run this on! This is alpha grade software and might cause havoc, esp when run with root privileges! I suggest you use Vagrant to try this out.
Koch's configuration files (Rezeptfiles) are just Ruby. All Koch does is provide a bunch of convenience functions. Feel free to use all the Ruby you want.
sudo apt -y install build-essential git ruby-dev zlib1g-dev
sudo gem install koch
git clone [email protected]:example/machine.git
cd machine
sudo koch
- Ubuntu 22.04 (amd64)
- Ubuntu 24.04 (amd64)
- Debian 11 (amd64)
- Debian 12 (amd64)
- Interactive mode, ask about each change