What is Clan?

Clan is a setup tool that centralizes machine configurations for peer-to-peer self-hosted networks.

Unified Git Repository: Centralize secrets & configurations in a single repository

Clan uses a single Git repository to define everything about your machines. This central repository utilizes Nix or JSON files to specify configurations, including disk formatting. This streamlined and unified approach gives you the power to manage your servers from a central point without relying on a centralized provider, scaling your IT infrastructure on your own terms.

Automated Secret Management: Auto-generate and share secrets with your peers

Passwords and other sensitive information are encrypted within the Git repository and automatically decrypted during deployment. This keeps your secrets safe while also simplifying their management. Clan supports sharing secrets between admins, fostering collaboration and maintaining reproducibility and convenience without sacrificing security.

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.