Skip to content

Opinionated & high level NixOS module library

Notifications You must be signed in to change notification settings

42LoCo42/aquaris

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Aquaris - My NixOS module library

Use Aquaris to easily manage related machines, their users and secrets!

Quickstart

Check out the quickstart guide and the provided example & template!

  • flake.nix - Usage of the Aquaris functor & global config
  • example - An example machine-specific configuration
  • template - The mostly empty template configuration

Declarative filesystem configuration

Inspired by disko, but dissatisfied with its verbosity, suboptimal integration and some edge-case bugs, Aquaris implements a fairly complete filesystem configuration library.

It supports regular filesystems, btrfs subvolumes, swap, LUKS-encrypted partitions and even complex filesystems like LVM Volume Groups & Logical Volumes and ZFS pools and datasets.

With very compact semantics, provided default options and deep integration into the rest of Aquaris’s modules, most disko users should find this library a worthy replacement for dozens of lines of code!

Secrets management

Aquaris includes a powerful secrets management facility (AQS), with secrets belonging to one of three categories:

  • toplevel: included by all NixOS configurations
  • user: personal secrets like SSH keys or password hashes, readable by all machines the user is part of
  • machine: secrets for machines like API keys or TLS certificates, readable only by the respective machine itself

This is inspired by agenix, but without the need to explicitly define the list of secrets and their corresponding public keys. Secrets are managed via the aqs command exported by this flake.

Documentation

TODOs

Check out the TODO file!