Setup and reproduce machine configuration & data

This Free Software project began as a research projet by Geonef. The Sysconf script was released in early 2014 as a helper tool for managing configuration files across systems using the minimalist symlink pattern convention. Then Sysconf-target was written to help setting up Sysconf on remote systems while being capable of auto-creating containers and virtual machines.

Gitted does another job: import/export machine state as Git branches. It features push-to-deploy and fetch-to-backup on various state data like databases or local directories (see: Gitted drivers). Gitted-target is to Gitted what Sysconf-target is to Sysconf: manage a remote Gitted system and git-fetch-push its data.

4 bash scripts to rule them all

Sysconf[source code]
Define and setup a machine

A simple convention for packaging common files

No abstraction. Works with symbolic links only.

Designed for production server as well as home use

Sysconf-target[source code]
Access & deploy machines

Multiple target drivers: local, ssh, lxc, docker...

Setup Sysconf on any target, run commands as well

Auto-create containers or virtual machines

Gitted[source code]
Import/export state as Git data

Multiple state drivers: git-remote, local dir, databases...

Data snapshots to restore whatever, whenever

Sysconf itself is synced like regular data

Gitted-target[source code]
Push-to-deploy and fetch-to-backup

Integrate with Git remotes

URL scheme, like: git fetch gitted:ssh:HOST

Re-build machines, migrate data from one another

Download Sources & Resources

Sources of this website

The sources are available on GitHub, in 2 branches:

Learn more


Project status & support

The Gitted project is relatively new. It has been used since October, 2014 on (small) production servers but Sysconf-target has been written and Gitted rewritten in February 2015 after some design changes.

Sysconf has been stable for a long time, which is not surprising given its simplicity.

Any feedback is much welcome!
Use Github to communicate with the author.


Not decided yet. Probably very permissive.