nix config
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 |