ZFS-first NAS operating system for advanced homelab operators. Focused on immutability, safe container lifecycle management, and reproducible infrastructure. https://dplaneos.d-net.me
  • HTML 40.9%
  • Go 26.4%
  • JavaScript 11.1%
  • Shell 9.5%
  • PHP 4.3%
  • Other 7.8%
Find a file
2026-02-28 02:26:28 +01:00
.github/workflows Git sync conflict cleanup 2026-02-28 01:20:28 +01:00
app Git sync conflict cleanup 2026-02-28 01:20:28 +01:00
build Git sync conflict cleanup 2026-02-28 01:20:28 +01:00
config Bugfixes 2026-02-12 22:43:52 +01:00
daemon Git sync conflict cleanup 2026-02-28 01:20:28 +01:00
docs Git sync conflict cleanup 2026-02-28 01:20:28 +01:00
github/workflows chore: remove tracked OS/sync artifacts, apply .gitignore 2026-02-28 01:17:57 +01:00
legacy chore: remove tracked OS/sync artifacts, apply .gitignore 2026-02-28 01:17:57 +01:00
nixos chore: remove tracked OS/sync artifacts, apply .gitignore 2026-02-28 01:17:57 +01:00
scripts Git sync conflict cleanup 2026-02-28 01:20:28 +01:00
systemd chore: remove tracked OS/sync artifacts, apply .gitignore 2026-02-28 01:17:57 +01:00
udev Bugfixes 2026-02-12 22:43:52 +01:00
zed v3.2.2 Bugfixes 2026-02-22 23:25:10 +01:00
.gitignore Git sync conflict cleanup 2026-02-28 01:20:28 +01:00
ADMIN-GUIDE.md Git sync conflict cleanup 2026-02-28 01:20:28 +01:00
CHANGELOG.md Git sync conflict cleanup 2026-02-28 01:20:28 +01:00
CONTRIBUTING.md Git sync conflict cleanup 2026-02-28 01:20:28 +01:00
DEPENDENCIES.md Git sync conflict cleanup 2026-02-28 01:20:28 +01:00
ERROR-REFERENCE.md Git sync conflict cleanup 2026-02-28 01:20:28 +01:00
get.sh Installer Bugfix 2026-02-25 19:59:59 +01:00
HARDWARE-COMPATIBILITY.md v3.0.0 Bugfixes 2026-02-19 21:34:49 +01:00
install.sh Git sync conflict cleanup 2026-02-28 01:20:28 +01:00
INSTALLATION-GUIDE.md Git sync conflict cleanup 2026-02-28 01:20:28 +01:00
LICENSE Changelog update 2026-02-24 02:44:22 +01:00
Makefile Git sync conflict cleanup 2026-02-28 01:20:28 +01:00
nginx-dplaneos.conf Release v3.3.0 — UX & security hardening 2026-02-22 22:09:02 +01:00
NON-ECC-WARNING.md Git sync conflict cleanup 2026-02-28 01:20:28 +01:00
README.md Update README.md 2026-02-28 02:26:28 +01:00
RECOVERY.md Git sync conflict cleanup 2026-02-28 01:20:28 +01:00
RELEASE-NOTES-v3.2.0.md Update and rename RELEASE-NOTES-v3.1.0-enterprise.md to RELEASE-NOTES-v3.2.0.md 2026-02-21 18:31:45 +01:00
RELEASE-NOTES-v3.2.1.md Security patch — closes T5 (XSS) identified in threat model audit. 2026-02-21 21:01:09 +01:00
RELEASE-NOTES-v3.3.0.md Release v3.3.0 — UX & security hardening 2026-02-22 22:09:02 +01:00
RELEASE-NOTES-v3.3.1.md Add: RELEASE-NOTES 2026-02-27 20:19:15 +01:00
RELEASE-NOTES.md Git sync conflict cleanup 2026-02-28 01:20:28 +01:00
SECURITY.md Git sync conflict cleanup 2026-02-28 01:20:28 +01:00
SHOWSTOPPER-MITIGATION-GUIDE.md Git sync conflict cleanup 2026-02-28 01:20:28 +01:00
stignore fix: remove sync conflict files, add .stignore 2026-02-25 10:49:32 +01:00
THREAT-MODEL.md Git sync conflict cleanup 2026-02-28 01:20:28 +01:00
TROUBLESHOOTING.md Git sync conflict cleanup 2026-02-28 01:20:28 +01:00
VERSION Install .sh hotfix 2026-02-25 10:38:52 +01:00

D-PlaneOS — ZFS-first NAS Operating System

ZFS-first NAS operating system for advanced homelab operators. Designed around immutability, safe container lifecycle management, and reproducible infrastructure.

Quick Start

Ubuntu / Debian

tar xzf dplaneos-*.tar.gz
cd dplaneos
sudo bash install.sh

Access the web UI at http://your-server immediately after install.

Default login: admin / admin — change immediately after first login.

Rebuilding from source? You need Go 1.22+ and gcc: make build compiles fresh.

NixOS

cd nixos
sudo bash setup-nixos.sh
sudo nixos-rebuild switch --flake .#dplaneos

See nixos/README.md for the complete NixOS guide.

Edit /etc/systemd/system/dplaned.service and add -backup-path:

ExecStart=/opt/dplaneos/daemon/dplaned -db /var/lib/dplaneos/dplaneos.db -backup-path /mnt/usb/dplaneos.db.backup

Creates a VACUUM INTO backup on startup and every 24 hours.


Features

  • Storage: ZFS pools, datasets, snapshots, replication, encryption, quotas, SMART monitoring, file explorer with chunked uploads
  • Sharing: SMB / AFP / Time Machine, NFS exports, iSCSI block targets — all managed via the UI
  • Compute: Docker container management, Compose stacks, ephemeral sandbox clones, safe rollback-aware updates
  • Network: Interface config, bonding, VLANs, routing, DNS
  • Identity: Users, groups, LDAP / Active Directory, 2FA, API tokens
  • Security: RBAC (4 roles, 34 permissions), audit log with HMAC integrity chain, firewall, TLS certificates
  • System: Settings, logs, UPS management, IPMI / sensors, hardware detection, cloud sync (rclone), HA cluster
  • GitOps: Git-sync repositories, state reconciliation
  • UI: Material Design 3, dark theme, responsive, keyboard shortcuts, realtime metrics WebSocket

Safe Container Updates

POST /api/docker/update — ZFS snapshot → pull → restart → health check. On failure: instant rollback. No other NAS OS does this.

ZFS Time Machine

Browse any snapshot like a folder. Find a deleted file from yesterday, restore just that one file — no full rollback needed.

Ephemeral Docker Sandbox

Test any container on a ZFS clone (zero disk cost). Stop the container, the clone disappears. No residue.

ZFS Health Predictor

Deep pool health monitoring: per-disk error tracking, checksum error detection, risk levels (low / medium / high / critical), S.M.A.R.T. integration. Warns you before a disk dies, not after.

NixOS Config Guard

On NixOS systems: validate configuration.nix before applying, list / rollback generations, dry-activate checks. Cannot brick your system.

ZFS Replication (Remote)

Native zfs send | ssh remote zfs recv — block-level replication that is 100× faster than rsync and preserves all snapshots on the remote.


Optional Protocols

Install separately; auto-detected and fully managed by D-PlaneOS once present.

Protocol Install command Notes
SMB / Windows shares sudo apt install samba D-PlaneOS writes and manages smb.conf
AFP / Time Machine (macOS) included with Samba Uses Samba's fruit module — no extra package
NFS exports sudo apt install nfs-kernel-server D-PlaneOS writes /etc/exports and runs exportfs -ra
iSCSI block targets sudo apt install targetcli-fb D-PlaneOS manages LIO targets via targetcli
UPS monitoring sudo apt install nut D-PlaneOS reads status via upsc

If a protocol package is not installed, the UI shows a clear message with the install command rather than returning an error.


LDAP / Active Directory

Navigate to Identity → Directory Service to configure. Supports:

  • Active Directory, OpenLDAP, FreeIPA (one-click presets)
  • Group → Role mapping (auto-assign permissions)
  • Just-In-Time user provisioning
  • Background sync with audit trail
  • TLS 1.2+ enforced

Architecture

  • Frontend: HTML5 + Material Design 3, flyout navigation, no framework dependencies
  • Backend: Go daemon (dplaned, ~8 MB) on port 9000, 256 API routes
  • Database: SQLite with WAL mode, synchronous=FULL, daily .backup (WAL-safe)
  • Web Server: nginx reverse proxy (TLS termination)
  • Storage: ZFS (native kernel module) + ZED hook for real-time disk failure alerts
  • Security: Input validation on all exec.Command (regex whitelist), RBAC (4 roles, 34 permissions), injection-hardened, OOM-protected (1 GB limit)
  • NixOS: Full support via Flake — entire NAS defined in a single configuration.nix

Documentation


License

Source-available under PolyForm Shield 1.0.0. See LICENSE file.