nixos-configuration/README.md

39 lines
1.4 KiB
Markdown
Raw Normal View History

2023-11-17 11:58:33 +00:00
# nixos-configuration
The collection of publically visible nixos-configuration files used for my
NixOS fleet.
2023-12-07 18:29:20 +00:00
## Desktop
2023-12-07 18:29:20 +00:00
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
2023-12-07 21:40:44 +00:00
Remote machines are hosted on [DigitalOcean](https://www.digitalocean.com/).
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](https://github.com/zhaofengli/colmena).
To deploy, run the following:
```bash
2023-12-08 15:52:59 +00:00
$ cd infra
$ nix flake update # If any machine changes were made.
2023-12-07 21:40:44 +00:00
$ 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:
```bash
$ eval $(ssh-agent -s)
$ ssh-add <ssh-file>
```