box zfs
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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 |
|
||||
Reference in New Issue
Block a user