nix config

Helm Environment Overview#

Box NAS Server (box / mossnet.lan)#

Hardware#

  • NVMe boot drive (LUKS encrypted)
  • 3x 4TB drives in ZFS RAIDZ1 pool (tank) - ~7.14TB usable

ZFS Datasets#

Dataset Mountpoint Purpose
tank/data/media /tank/media Media library (music, photos, tv, movies)
tank/data/books /tank/books Calibre library
tank/data/podcasts /tank/podcasts Podcast storage
tank/data/new-music /tank/new-music Incoming music from seedbox
tank/data/backup /tank/backup PostgreSQL backups
tank/data/archive /tank/archive Old data (memories, old-home-dirs, etc.)

Services#

  • Immich - Photo management (/tank/media/photos)
  • Gonic - Music streaming (/tank/media/music)
  • Calibre-server/Calibre-web - Ebook management (/tank/books)
  • Jellyfin - Media streaming
  • Lidarr - Music management (runs as headphones:audio)
  • Radicale - CalDAV/CardDAV
  • Syncthing - File sync
  • PostgreSQL - Database
  • Taskserver - Taskwarrior sync

Repository Structure#

helm/
├── flake.nix                    # Main flake - defines all hosts
├── hosts/
│   ├── box/
│   │   ├── default.nix          # Box host config, imports profiles
│   │   ├── configuration.nix    # Hardware/boot config
│   │   └── disko.nix            # Disk/ZFS layout
│   ├── profiles/                # NixOS service profiles
│   │   ├── sync/music/          # get-music-sync service
│   │   ├── headphones/          # Lidarr config
│   │   ├── jellyfin/
│   │   ├── monitoring/
│   │   └── ...
├── home/
│   ├── dev/
│   │   └── default.nix          # Home-manager config for box
│   └── profiles/
│       ├── beets/               # Beets music library config
│       ├── cli/
│       ├── nvim/
│       ├── git/
│       └── opencode/
├── secrets/                     # Agenix encrypted secrets
└── modules/                     # Custom NixOS modules

Deployment#

# Deploy to a host
deploy .#box
deploy .#curve
deploy .#helix
deploy .#lituus

# SSH access to box
ssh anish@mossnet.lan

Key Users/Groups#

User Group Purpose
anish users, wheel, audio, video, docker Primary user
headphones audio Lidarr service
gonic audio Gonic music streaming
immich immich Photo management
calibre-server calibre-server Ebook server

Hosts#

Host Description
box NAS server (mossnet.lan)
curve Workstation
helix Workstation
lituus VPS/Server