Nix-Vibe public snapshot (squashed history)
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
# 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)**.
|
||||
Reference in New Issue
Block a user