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.


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
  • Widget API keys are managed via SOPS (secrets.yamlHOMEPAGE_VAR_* env vars)

Initial Installation

This repository uses nixos-anywhere for deployment to new hardware. See docs/installation.md for prerequisites and step-by-step instructions.


Managing Secrets

This project uses 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.

S
Description
NixOS multi-host configuration (public snapshot mirror, history squashed)
Readme
10 MiB
Languages
QML 41.9%
Nix 39.3%
Python 17.9%
Just 0.9%