Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/george-miao/nix-config

Nix Configuration
https://github.com/george-miao/nix-config

Last synced: about 2 months ago
JSON representation

Nix Configuration

Awesome Lists containing this project

README

        

# Nix Config

This is my personal NixOS configuration.

## Notes (Mainly for myself cuz I'm forgetful)

- Units (`./unit/{home/*, sys/*}`) are "bare" in the sense that they can output to flake directly, where Machines (`./machine/*`) are not because they are wrapped by system declarations, e.g., `nixpkgs.lib.nixosSystem`/`nix-darwin.lib.darwinSystem`.
- Units are exported to `flake.unit.{home,sys}`, in which home units are further collected into `homeModules.{core,local,server,gui}` to form four "profiles".
- Systems (`./system`) imports aforementioned "profiles" and `sys` units, then add machine-agnostic but os-dependent configurations.
- Machines (`./machine`) imports corresponding systems and `sys` units, then add machine-specific configurations.
- `deploy-rs` is used to push local changes to remote machines (configs live under `flake.deploy.nodes`).
- Secrets are managed with `git-crypt` and keys are encoded with `base64`. Decode with `echo $KEY | base64 -d`.

### Invariants

- This config **MUST** live under `$HOME/.nix-config`