My NixOS configuration files
 
 
 
Go to file
Joshua Potter d2538ed1da Install sops. 2023-12-08 08:59:18 -07:00
desktop Install sops. 2023-12-08 08:59:18 -07:00
digital-ocean Represent remote machines as flake. 2023-12-08 07:12:53 -07:00
infra Install postgres onto phobos. 2023-12-08 08:53:16 -07:00
.gitignore Initial commit. 2023-11-17 04:58:33 -07:00
README.md Install postgres onto phobos. 2023-12-08 08:53:16 -07:00

README.md

nixos-configuration

The collection of publically visible nixos-configuration files used for my NixOS fleet.

Desktop

My personal desktop configuration is reflected in the top-level desktop directory. The only file not tracked is hardware-configuration.nix since this is auto-generated when installing NixOS.

The system-wide configuration is found in configuration.nix. User-specific configurations are grouped within a directory specific to each user. As of now, this is just jrpotter. The flake.nix file links the system and user configurations together.

Remotes

Remote machines are hosted on DigitalOcean. The custom image used by each droplet can be built using the top-level digital-ocean flake. This image disables a root password in favor of SSH. A droplet running this image will automatically pull in any enabled SSH keys from your DigitalOcean account at creation time.

Deployment is managed using colmena. To deploy, run the following:

$ cd infra
$ nix flake update  # If any machine changes were made.
$ colmena apply

Note that colmena requires non-interactivity. If you haven't done so already, you'll likely need to add the private SSH key corresponding to the public one uploaded to DigitalOcean to your SSH agent. Do so by running:

$ eval $(ssh-agent -s)
$ ssh-add <ssh-file>