nixos-config/README.md
2024-05-17 17:53:46 +02:00

81 lines
1.9 KiB
Markdown

# My NixOS config
## File system structure
this is outdated
- `common`: stores all Nix files which are shared by all system configs
- `de`: Desktop environments and their parameters
- `hardware`: self-explenatory
- `locales`: localization options
- `packages`: services & packages with common configurations
- `base.nix`: The minimum configuration that a machine needs
- `full-install.nix`: if this machine has a DE or is going to be used by a human
- `tasia-packages.nix`: Collection of additional packages
- `common`: SSH keys, secrets, ...
- `dotfiles`: all my dotfiles
- `home`: user-specific settings.
- `hosts`: Machine-specific configurations
- `modules/nixos`: Custom NixOS modules
- `overlays`: Custom NixOS overlays
- `pkgs`: Custom NixOS packages
- `stuff`: Random stuff that doesn't belong anywhere else
## Memo
Update channels: `nix flake update`
Build a configuration: `sudo ixos-rebuild switch --flake .#$(cat /etc/hostname)`
Build enry and upload a generation: TODO
### To do on a new machine
- Install NixOS
- Clone this repo `git clone https://gitea.com/tasiaiso/nixos-config.git && cd nixos-onfig`
- `export HOSTNAME=<your-hostname> && mkdir hosts/$HOSTNAME && cd hosts/$HOSTNAME && touch configuration.nix`
- Fill out `configuration.nix`
- add your key in `common/programs/ssh.nix`
- `sudo nixos-generate-config --show-hardware-config > hosts/$HOSTNAME/hardare-configuration.nix`
- `sudo nixos-rebuild switch --flake .#$HOSTNAME`
#### git
generate an ssh key: `ssh-keygen -t ed25519`
add to ssh-agent: `ssh-add .ssh/id_ed25519`
add to git: `git config --global user.signingkey ~/.ssh/id_ed25519`
#### google-authenticator
- `google-authenticator -td -r 5 -R 60 -w 2`
## Hosts
### theseus
My main PC. Mostly unused because of power constraints
### phoenix
My old laptop.
### stuff
Another person's laptop.
### enry
This is my Raspberry Pi 3B+ inside my electrical cabinet.
### yaseen
New laptop. Main driver.