Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/george-miao/nix-config
- Owner: George-Miao
- Created: 2024-03-03T00:52:38.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2024-11-05T12:21:50.000Z (about 2 months ago)
- Last Synced: 2024-11-05T13:35:04.750Z (about 2 months ago)
- Language: Nix
- Size: 1.27 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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`