nix config
at main 97 lines 2.9 kB view raw view rendered
1# Helm Environment Overview 2 3## Box NAS Server (`box` / `mossnet.lan`) 4 5### Hardware 6- NVMe boot drive (LUKS encrypted) 7- 3x 4TB drives in ZFS RAIDZ1 pool (`tank`) - ~7.14TB usable 8 9### ZFS Datasets 10| Dataset | Mountpoint | Purpose | 11|---------|------------|---------| 12| `tank/data/media` | `/tank/media` | Media library (music, photos, tv, movies) | 13| `tank/data/books` | `/tank/books` | Calibre library | 14| `tank/data/podcasts` | `/tank/podcasts` | Podcast storage | 15| `tank/data/new-music` | `/tank/new-music` | Incoming music from seedbox | 16| `tank/data/backup` | `/tank/backup` | PostgreSQL backups | 17| `tank/data/archive` | `/tank/archive` | Old data (memories, old-home-dirs, etc.) | 18 19### Services 20- **Immich** - Photo management (`/tank/media/photos`) 21- **Gonic** - Music streaming (`/tank/media/music`) 22- **Calibre-server/Calibre-web** - Ebook management (`/tank/books`) 23- **Jellyfin** - Media streaming 24- **Lidarr** - Music management (runs as `headphones:audio`) 25- **Radicale** - CalDAV/CardDAV 26- **Syncthing** - File sync 27- **PostgreSQL** - Database 28- **Taskserver** - Taskwarrior sync 29 30--- 31 32## Repository Structure 33 34``` 35helm/ 36├── flake.nix # Main flake - defines all hosts 37├── hosts/ 38│ ├── box/ 39│ │ ├── default.nix # Box host config, imports profiles 40│ │ ├── configuration.nix # Hardware/boot config 41│ │ └── disko.nix # Disk/ZFS layout 42│ ├── profiles/ # NixOS service profiles 43│ │ ├── sync/music/ # get-music-sync service 44│ │ ├── headphones/ # Lidarr config 45│ │ ├── jellyfin/ 46│ │ ├── monitoring/ 47│ │ └── ... 48├── home/ 49│ ├── dev/ 50│ │ └── default.nix # Home-manager config for box 51│ └── profiles/ 52│ ├── beets/ # Beets music library config 53│ ├── cli/ 54│ ├── nvim/ 55│ ├── git/ 56│ └── opencode/ 57├── secrets/ # Agenix encrypted secrets 58└── modules/ # Custom NixOS modules 59``` 60 61--- 62 63## Deployment 64 65```bash 66# Deploy to a host 67deploy .#box 68deploy .#curve 69deploy .#helix 70deploy .#lituus 71 72# SSH access to box 73ssh anish@mossnet.lan 74``` 75 76--- 77 78## Key Users/Groups 79 80| User | Group | Purpose | 81|------|-------|---------| 82| `anish` | `users`, `wheel`, `audio`, `video`, `docker` | Primary user | 83| `headphones` | `audio` | Lidarr service | 84| `gonic` | `audio` | Gonic music streaming | 85| `immich` | `immich` | Photo management | 86| `calibre-server` | `calibre-server` | Ebook server | 87 88--- 89 90## Hosts 91 92| Host | Description | 93|------|-------------| 94| `box` | NAS server (mossnet.lan) | 95| `curve` | Workstation | 96| `helix` | Workstation | 97| `lituus` | VPS/Server |