mirror of
https://github.com/Misterio77/Foundry.git
synced 2026-08-28 10:04:20 -05:00
116 lines
3.3 KiB
Markdown
116 lines
3.3 KiB
Markdown
[](https://builtwithnix.org)
|
|
[](https://hydra.m7.rs/jobset/nix-config/main#tabs-jobs)
|
|
|
|
# My NixOS configurations
|
|
|
|
Here's my NixOS/home-manager config files. Requires [Nix flakes](https://nixos.wiki/wiki/Flakes).
|
|
|
|
Looking for something simpler to start out with flakes? Try [my starter config repo](https://github.com/Misterio77/nix-starter-config).
|
|
|
|
**Highlights**:
|
|
|
|
- Multiple **NixOS configurations**, including **desktop**, **laptop**, **server**
|
|
- **Opt-in persistence** through impermanence + blank snapshotting
|
|
- **Encrypted** single **BTRFS** partition
|
|
- Fully **declarative** **self-hosted** stuff
|
|
- Deployment **secrets** using **sops-nix**
|
|
- **Mesh networked** hosts with **tailscale** and **headscale**
|
|
- Flexible **Home Manager** Configs through **feature flags**
|
|
- Extensively configured wayland environments (**sway** and **hyprland**)
|
|
- **Declarative** **themes** and **wallpapers** with **nix-colors**
|
|
- **Hydra CI/CD server and binary cache** that uses the **desktops as remote builders**
|
|
|
|
|
|
## About the installation
|
|
|
|
All my computers use a single btrfs (encrypted on all except headless systems)
|
|
partition, with subvolumes for `/nix`, a `/persist` directory (which I opt in
|
|
using `impermanence`), swap file, and a root subvolume (cleared on every boot).
|
|
|
|
Home-manager is used in a standalone way, and because of opt-in persistence is
|
|
activated on every boot with `loginShellInit`.
|
|
|
|
|
|
## How to bootstrap
|
|
|
|
All you need is nix (any version). Run:
|
|
```
|
|
nix-shell
|
|
```
|
|
|
|
If you already have nix 2.4+, git, and have already enabled `flakes` and
|
|
`nix-command`, you can also use the non-legacy command:
|
|
```
|
|
nix develop
|
|
```
|
|
|
|
`nixos-rebuild --flake .` To build system configurations
|
|
|
|
`home-manager --flake .` To build user configurations
|
|
|
|
`nix build` (or shell or run) To build and use packages
|
|
|
|
`sops` To manage secrets
|
|
|
|
|
|
## Secrets
|
|
|
|
For deployment secrets (such as user passwords and server service secrets), I'm
|
|
using the awesome [`sops-nix`](https://github.com/Mic92/sops-nix). All secrets
|
|
are encrypted with my personal PGP key (stored on a YubiKey), as well as the
|
|
relevant systems's SSH host keys.
|
|
|
|
On my desktop and laptop, I use `pass` for managing passwords, which are
|
|
encrypted using (you bet) my PGP key. This same key is also used for mail
|
|
signing, as well as for SSH'ing around.
|
|
|
|
## Tooling and applications I use
|
|
|
|
Most relevant user apps daily drivers:
|
|
|
|
- hyprland + swayidle + swaylock
|
|
- waybar
|
|
- helix
|
|
- fish
|
|
- alacritty
|
|
- qutebrowser
|
|
- neomutt + mbsync
|
|
- khal + khard + todoman + vdirsyncer
|
|
- gpg + pass
|
|
- tailscale
|
|
- podman
|
|
- zathura
|
|
- wofi
|
|
- bat + fd + rg
|
|
- kdeconnect
|
|
- sublime-music
|
|
|
|
Some of the services I host:
|
|
|
|
- hydra
|
|
- navidrome
|
|
- deluge
|
|
- prometheus
|
|
- websites (such as https://m7.rs)
|
|
- minecraft
|
|
- headscale
|
|
|
|
Nixy stuff:
|
|
|
|
- nix-colors
|
|
- sops-nix
|
|
- impermanence
|
|
- home-manager
|
|
- deploy-rs
|
|
- and NixOS and nix itself, of course :)
|
|
|
|
Let me know if you have any questions about them :)
|
|
|
|
## Unixpornish stuff
|
|

|
|

|
|
|
|
That's how my hyprland desktop setup look like (as of 2022 July).
|
|
|
|
|