70 lines
3.6 KiB
Markdown
70 lines
3.6 KiB
Markdown
# Nix-Vibe: Multi-Host NixOS Configuration
|
|
|
|
This repository contains a modular NixOS and Home Manager configuration managed via Nix Flakes. The architecture is designed for reproducibility and consistency across diverse hardware, from powerful desktops to headless servers.
|
|
|
|
## Architecture Overview
|
|
|
|
The system is built on a modular foundation, separating core configurations, hardware-specific settings, and user environments.
|
|
|
|
### Host Roles
|
|
|
|
* **`x1carbon`**: Advanced mobile workstation.
|
|
* **Role**: Portable audio engineering and personal document management.
|
|
* **Key Features**: Specialized audio control (X32-Edit, Mixing Station), Paperless-ngx, image editing (GIMP), desktop publishing (Scribus), 2-in-1 tablet mode (auto-rotation via accelerometer + on-screen keyboard via wvkbd).
|
|
* **`caitlin-x1`**: User-focused laptop.
|
|
* **Role**: Daily productivity and gaming.
|
|
* **Key Features**: Steam integration, Prism Launcher for Minecraft, and Soundux for audio management.
|
|
* **`x470`**: Lightweight guest/general use laptop.
|
|
* **Role**: Basic productivity and remote network management.
|
|
* **Key Features**: Winbox for networking and FreeShow for presentations.
|
|
* **`mary-x270`**: User-focused desktop workstation.
|
|
* **Role**: Daily productivity workstation for Mary.
|
|
* **Key Features**: Shared GNOME desktop environment, Home Manager configuration, and multi-user access (`mary` & `petere`).
|
|
* **`richmond-server`**: Headless infrastructure core.
|
|
* **Role**: Network services, container hosting, and central backup storage.
|
|
* **Key Features**: Podman-hosted services (Pi-hole, Castopod, MCFNotices), Backrest backup server, and complex VLAN networking.
|
|
* **`homeserver-1`**: Headless general server.
|
|
* **Role**: Auxiliary network server and container environment.
|
|
* **Key Features**: Tailscale, Podman, Zsh, Disko, SOPS secret management, Immich, Jellyfin, Backrest, Pocket ID, Gitea (git hosting, public at `gitea.edley.me`), and a Homepage dashboard.
|
|
|
|
* **`mcf-server`**: Headless server.
|
|
* **Role**: Remote backup target for `homeserver-1` (restic).
|
|
* **Key Features**: SSH and Glances monitoring on the tailnet.
|
|
* **`mcf-stream`**: Desktop.
|
|
* **Role**: Newly scaffolded desktop host.
|
|
* **Key Features**: GNOME desktop, Home Manager for `petere`.
|
|
* **`hp-laptop`**: End-user laptop.
|
|
* **Role**: Daily productivity laptop for `petere`.
|
|
* **Key Features**: Hyprland + QuickShell desktop (no GNOME), greetd/tuigreet login, Home Manager for `petere`.
|
|
|
|
---
|
|
|
|
### Software Inventory
|
|
|
|
See the full cross-reference table in **[docs/software-inventory.md](docs/software-inventory.md)**.
|
|
|
|
---
|
|
|
|
## Homepage Dashboard
|
|
|
|
The Homepage dashboard (gethomepage.dev) runs on `homeserver-1` at
|
|
`http://homeserver-1:8082` and displays services from across the tailnet.
|
|
|
|
- Dashboard definition: `hosts/homeserver-1/homepage.nix`
|
|
- Adding machines, tabs, and services: **[docs/homepage-dashboard.md](docs/homepage-dashboard.md)**
|
|
- Widget API keys are managed via SOPS (`secrets.yaml` → `HOMEPAGE_VAR_*` env vars)
|
|
|
|
---
|
|
|
|
## Initial Installation
|
|
|
|
This repository uses [nixos-anywhere](https://github.com/nix-community/nixos-anywhere) for deployment to new hardware. See **[docs/installation.md](docs/installation.md)** for prerequisites and step-by-step instructions.
|
|
|
|
---
|
|
|
|
## Managing Secrets
|
|
|
|
This project uses [sops-nix](https://github.com/Mic92/sops-nix) and `age` to manage secrets.
|
|
|
|
For instructions on adding new secrets, managing keys, and using secrets in your configuration, please see the **[SOPS Secrets Management Guide](docs/sops-secrets.md)**.
|