What is Clan?

Clan is a configuration management, secret provisioning, and backup automation framework.

Uniform interface: Manage your networks from a single source of truth

Clan allows you specify everything about the machines you control, using a single Git repository. Declare disk layout, service configuration, access control, backup strategies, and more in the Nix language or JSON. Scale your IT infrastructure on your own terms. No need to rely on a centralized provider.

Automated secret management: Automatically generate and provision secrets

Passwords and other sensitive information are encrypted next to your configuration data, and automatically decrypted during deployment of services and their clients. This keeps your secrets safe while also simplifying their management.

Automated Service Setup: Install services as if they were applications

Setting up a service can be quite complex: many server adjustments need to be made, from setting up a database to adjusting webserver configurations and generating the correct private keys. Clan aims to make setting up a service as easy as installing an application. Through the Modules system, everything down to secrets can be set up through a smooth automated process.

Automated Backups: Synchronize state and backup to other peers automatically

Each clan service designates a state directory where all service state data is stored. This setup enables the automatic backup of every service to other peers, including Postgres databases. Using the Syncthing clan module, you can create perfect replicas of your laptop.

Peer-to-peer Mesh VPN: Securely connect machines over a private network.

All machines in your Clan are interconnected through a self-configuring peer-to-peer mesh VPN. This additional layer of protection ensures that sensitive services, which might have too much attack surface to be hosted on the public internet, can still be made available on your Clan's network.

Live Overwrites: Deploy configurations over existing Linux distributions via SSH.

With Clan, you can skip the cumbersome task of bootstrapping specific installation images. Clan allows you to overwrite any existing Linux distribution live over SSH, eliminating time-consuming setup processes. Deploy updates or new configurations swiftly and efficiently, maximizing uptime and minimizing hassle.