# NAS Server (jallen-nas) `systems/x86_64-linux/jallen-nas/` ## Hardware - **CPU**: AMD (x86_64) - **GPU**: AMD (LACT for fan/power control) - **Disk**: NVMe system drive + bcachefs NAS pool - **Security**: TPM2 (Clevis disk unlock), Lanzaboote (Secure Boot) ## Key Features - bcachefs storage pool mounted at `/media/nas/main` - Clevis-based TPM disk unlock at boot (no passphrase required) - Impermanence — root is ephemeral; state persists to `/media/nas/main/persist` - Samba shares (Windows file sharing, Time Machine) - Nebula VPN node (overlay peer, lighthouse at pi5) - ~40 self-hosted services behind a Caddy reverse proxy - Authentik SSO protecting most web UIs - CrowdSec for intrusion detection - Restic backups ## Network - **LAN IP**: 10.0.1.3 (static, `enp197s0`) - **Gateway**: 10.0.1.1 - **Nebula**: overlay peer, lighthouse at `mjallen.dev:4242` ## Storage | Mount | Filesystem | Description | |---|---|---| | `/media/nas/main` | bcachefs | Primary NAS pool (media, appdata, documents) | | `/media/nas/test` | bcachefs | Secondary test pool | ### Samba Shares | Share | Time Machine | |---|---| | `3d_printer` | no | | `Backup` | no | | `Documents` | no | | `isos` | no | | `app_data` | no | | `TimeMachine` | yes (max 1 TB) | ## Enabled Services | Service | Port | Notes | |---|---|---| | Caddy | 443/80 | Reverse proxy for all services | | Authentik | 9000 | SSO / identity provider | | Attic | 9012 | Nix binary cache (`cache.mjallen.dev`) | | Immich | 2283 | Photo management | | Jellyfin | 8096 | Media server | | Seerr | 5055 | Media request manager | | Nextcloud | 9988 | Cloud storage | | Paperless | 28981 | Document management | | Paperless AI | 28982 | AI-assisted document tagging | | Gitea | 3000 | Self-hosted Git | | Matrix | 8448 | Matrix homeserver | | Ntfy | 2586 | Push notifications | | Glance | 5555 | Dashboard | | Immich | 2283 | Photo library | | Uptime Kuma | 3001 | Uptime monitoring | | Code Server | 4444 | VS Code in the browser | | Cockpit | 9090 | System management UI | | Collabora | 9980 | Online office suite | | CrowdSec | 8181 | Intrusion detection | | Glances | 61208 | System stats | | Coturn | 3478 | TURN/STUN server | | Nebula | 4242 | Overlay VPN node | | Restic | 8008 | Backup service | | Sunshine | 47989 | Remote desktop (Moonlight) | | Unmanic | 8265 | Media transcoding | | Lubelogger | 6754 | Vehicle maintenance log | | Manyfold | 3214 | 3D model library | | Booklore | 6066 | Book library | | Tunarr | 8000 | Virtual TV channels | | Termix | 7777 | Web terminal | | Sparky Fitness | 3004/3010 | Fitness tracking | | Protonmail Bridge | 1025/1143 | SMTP/IMAP bridge | | Arrs | various | Sonarr, Radarr, etc. | | AI | various | Ollama, etc. | | Wyoming | various | Voice assistant pipeline | ## Configuration Files | File | Purpose | |---|---| | `default.nix` | Main config — network, hardware, filesystems, packages | | `apps.nix` | All service enable/disable declarations | | `nas-defaults.nix` | Sets `configDir`/`dataDir` defaults for all services | | `boot.nix` | Lanzaboote, kernel, initrd | | `services.nix` | Home Assistant, samba, and other platform services | | `users.nix` | User accounts (`admin`, `nix-apps`) | | `sops.nix` | Secret declarations | | `vpn.nix` | Nebula VPN configuration | | `disabled.nix` | Services explicitly disabled | ## Secrets Secrets are in `secrets/nas-secrets.yaml`, encrypted for: `matt`, `desktop`, `admin`, `jallen-nas`.