From 783a7a3390cc4021db6c6e9366d3ebad9b893044 Mon Sep 17 00:00:00 2001 From: mjallen18 Date: Thu, 21 Aug 2025 14:17:33 -0500 Subject: [PATCH] README --- README.md | 156 +++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 112 insertions(+), 44 deletions(-) diff --git a/README.md b/README.md index 604771a..251ac9d 100755 --- a/README.md +++ b/README.md @@ -1,50 +1,118 @@ -# nixOS Config +# NixOS Configuration Repository -### Common Files -* [flake.nix](./flake.nix) -* [impermenance.nix](./share/impermanence/default.nix) -* [share](./share) -* [overlays](./overlays) +This repository contains my personal NixOS configurations for multiple systems, managed using [Snowfall Lib](https://github.com/snowfallorg/lib) and the Nix Flakes system. + +## Overview + +This repository provides a centralized, declarative configuration for all my systems, including: + +- Desktop PC (AMD) +- NAS server +- Steam Deck +- Intel NUC +- Raspberry Pi 4 +- Raspberry Pi 5 +- MacBook Pro (NixOS on Apple Silicon) +- MacBook Pro (Darwin/macOS) + +## Repository Structure + +``` +. +├── checks/ # Pre-commit hooks and other checks +├── flake.nix # Main flake configuration +├── homes/ # Home-manager configurations for users +│ ├── aarch64-darwin/ # macOS home configurations +│ ├── aarch64-linux/ # ARM Linux home configurations +│ └── x86_64-linux/ # x86 Linux home configurations +├── modules/ # Reusable configuration modules +│ ├── home/ # Home-manager modules +│ └── nixos/ # NixOS system modules +├── overlays/ # Nixpkgs overlays +├── packages/ # Custom package definitions +├── secrets/ # Encrypted secrets (managed with sops-nix) +└── systems/ # System-specific configurations + ├── aarch64-darwin/ # macOS system configurations + ├── aarch64-linux/ # ARM Linux system configurations + └── x86_64-linux/ # x86 Linux system configurations +``` + +## Key Features + +- **Modular Design**: Reusable modules for various system components +- **Multi-System Support**: Configurations for different hardware platforms +- **Home Manager Integration**: User environment management +- **Secret Management**: Encrypted secrets with sops-nix +- **Disk Management**: Declarative disk partitioning with disko +- **State Management**: Persistent state management with impermanence +- **Desktop Environments**: Support for GNOME, Hyprland, and COSMIC +- **Hardware-Specific Optimizations**: Tailored configurations for different hardware + +## Key Technologies + +- [Nix](https://nixos.org/) and [NixOS](https://nixos.org/) +- [Nix Flakes](https://nixos.wiki/wiki/Flakes) +- [Snowfall Lib](https://github.com/snowfallorg/lib) +- [Home Manager](https://github.com/nix-community/home-manager) +- [sops-nix](https://github.com/Mic92/sops-nix) +- [disko](https://github.com/nix-community/disko) +- [impermanence](https://github.com/nix-community/impermanence) +- [lanzaboote](https://github.com/nix-community/lanzaboote) (Secure Boot) + +## Notable System Configurations ### Desktop -* [boot.nix](./hosts/desktop/boot.nix) -* [configuration.nix](./hosts/desktop/configuration.nix) -* [hardware-configuration.nix](./hosts/desktop/hardware-configuration.nix) -* [filesystems.nix](./hosts/desktop/filesystems.nix) -* [home.nix](./hosts/desktop/home.nix) -* [sops.nix](./hosts/desktop/sops.nix) -* [specialisations.hyprland](./hosts/desktop/hyprland) -* [specialisations.gnome](./hosts/desktop/gnome) -* [specialisations.cosmic](./hosts/desktop/cosmic) + +A powerful AMD-based desktop with gaming capabilities, featuring: +- AMD CPU and GPU optimizations +- Multiple desktop environment options (GNOME, Hyprland, COSMIC) +- Gaming setup with Steam and related tools ### NAS -* [boot.nix](./hosts/nas/boot.nix) -* [configuration.nix](./hosts/nas/configuration.nix) -* [hardware-configuration.nix](./hosts/nas/hardware-configuration.nix) -* [impermenance.nix](./hosts/nas/impermenance.nix) -* [apps.nix](./hosts/desktop/apps.nix) -* [home.nix](./hosts/desktop/home.nix) -* [networking.nix](./hosts/desktop/networking.nix) -* [services.nix](./hosts/desktop/services.nix) -* [sops.nix](./hosts/desktop/sops.nix) -* [ups.nix](./hosts/desktop/ups.nix) -* [samba](./modules/samba) -* nas-apps - * [arrs](./hosts/nas/apps/arrs/default.nix) - * [free-games-claimer](./modules/apps/free-games-claimer) - * [jackett](./modules/apps/jackett) - * [jellyfin](./hosts/nas/apps/jellyfin/default.nix) - * [jellyseerr](./hosts/nas/apps/jellyseerr/default.nix) - * [jackett](./modules/apps/manyfold) - * [mariadb](./modules/apps/mariadb) - * [mealie](./modules/apps/mealie) - * [nextcloud+onlyoffice](./hosts/nas/apps/nextcloud/default.nix) - * [ollama](./hosts/nas/apps/ollama/default.nix) - * [paperless](./hosts/nas/apps/paperless/default.nix) - * [tdarr](./modules/apps/tdarr) - * [traefik](./hosts/nas/apps/traefik/default.nix) - * [wireguard](./modules/apps/your-spotify) -### Raspberry Pi 4 -* [configuration.nix](./hosts/pi4/configuration.nix) -* [hardware-configuration.nix](./hosts/pi4/hardware-configuration.nix) \ No newline at end of file +A home server with various self-hosted services: +- Media management (Jellyfin, Jellyseerr) +- Download automation (Sonarr, Radarr, etc.) +- Document management (Paperless) +- File sharing (Samba, Nextcloud) +- AI services (Ollama) + +### Raspberry Pi + +Configurations for both Pi 4 and Pi 5: +- Hardware-specific optimizations +- Disk partitioning suitable for ARM devices +- Bluetooth and wireless support + +### Steam Deck + +Custom NixOS configuration for the Steam Deck: +- Integration with Jovian for Steam Deck compatibility +- Gaming optimizations +- Steam ROM Manager + +### MacBook Pro + +Configurations for both: +- NixOS on Apple Silicon +- nix-darwin for macOS + +## Usage + +### Building a System Configuration + +```bash +# Build and activate a system configuration +sudo nixos-rebuild switch --flake .#hostname +``` + +### Building a Home Configuration + +```bash +# Build and activate a home configuration +home-manager switch --flake .#username@hostname +``` + +## License + +This project is licensed under the MIT License - see the LICENSE file for details.