storage layer · no chat system
One Btrfs pool for large AI files. bees stores identical data blocks one time. NFS gives the same folders to each computer on the local network.
what it actually is
Copying model trees onto a desk Mac, a GPU box, and a NAS does not scale. This stack owns the drives, walks them with bees, and exports them over NFS.
Fast stripe across two unassigned NVMe devices. No parity — one dead drive loses the pool.
btrfs.readthedocs.io → dedupeBest-Effort Extent-Same. Near-duplicate GGUFs and HF blobs stop eating a second full copy.
hash table sizing → shareLinux clients: NFSv4.2, mount /. macOS: use SMB3. NFS mounts on macOS hung many times in this lab. Container does not run nfsd.
The deduper this image pins (v0.11, plus a small musl gettid fix for Alpine).
github.com/Zygo/bees → siblingThe chat / agent side. This repo does not route tokens. It holds the weights.
github.com/the1truedan/ai-gateway → disclosureThe 2026-08-15 reboot failure: console Permission denied, NFS down, proxy blamed. Lab id CVE-FAUX-2026-0815-2.
what actually broke →the pitch, short version
Privileged container, host kernel, two unassigned NVMes. Not a VM passthrough. Not an Unraid cache pool.
bees walks in the background. 2G is the default hash table. Reality check: this 2.6 TiB pool of model files needs 6G (75% full); plan for 8G as it grows.
Host nfsd on 2049. Array NFS stays off. Linux v4.2 and macOS v3 both work.
Unraid /boot is FAT32. The persist script must be invoked with bash, or NFS dies after every restart.
This Unraid + host-nfsd layout is a stopgap. A dedicated box (or a small VM with the NVMe card passed through) would own Btrfs, bees, and nfsd without a FAT32 flash hook. Until that move: keep array NFS off, keep the container’s ENABLE_NFS=0, and keep the bash line in /boot/config/go.