A FreeBSD-native NAS management layer
RealNAS
Storage software that respects the operating system it runs on. RealNAS is a userspace daemon and web interface you install with pkg on vanilla FreeBSD. It manages ZFS pools, datasets, snapshots, SMB and NFS shares, users, alerts, and boot environments, without owning the OS underneath it.
Designed for production. The same software runs on a single-host home lab and on multi-rack deployments serving teams, departments, and regulated workloads. Stability comes from boring choices and standard FreeBSD operating practice, not from a parallel universe of vendor tooling.
Install
# on a vanilla FreeBSD 15.x install
pkg install realnas-middleware realnas-webui
sysrc realnasd_enable=YES
service realnasd start
# then open https://<host>:4443 in a browser
No image-based installer, no bespoke ISO, no signed update train. Just a package on a stock FreeBSD system. The configuration RealNAS manages lives in well-defined places. If you edit /etc/rc.conf by hand, your edits survive.
Three ideas
FreeBSD owns the OS
Updates come from freebsd-update, packages from pkg, boot environments from bectl. RealNAS is a tenant on the system, not its landlord.
Your hardware, your data
No telemetry, no phone-home, no licensing daemon. The drives in your closet stay in your closet. Storage formats are open, portable, and yours to move.
On sovereignty → iiiBoring, transparent operations
Everything RealNAS does should be inspectable from a shell with stock FreeBSD tools, and reversible by hand. No magic, no hidden state.
See the architecture →What it manages
- Storage
- ZFS pools, datasets, snapshots and periodic snapshot tasks, replication, scrub schedules.
- File sharing
- SMB via Samba 4.x with native ZFS ACLs; NFSv3/v4 via the FreeBSD nfsd.
- Identity
- Local users and groups with UID/GID alignment, suitable for hosting imported pools.
- Health
- SMART scheduling, alert rules, SMTP notification, syslog integration.
- System
- Boot environments via
bectl; updates viafreebsd-updateandpkg upgrade; certificates; SSH.
Stable infrastructure, at any scale
RealNAS is built to be the storage layer of systems people depend on. The data plane is OpenZFS, the same code base trusted with petabytes of production data across operating systems and industries. The protocol layer is Samba and the FreeBSD NFS server, both deployed at scale for decades. The control plane is a single Python daemon with a documented API, a SQLite configuration store, and a deliberately small surface.
The architecture is the same whether you are running one host in a closet or twenty across a campus. There is no “home edition” that lacks features, no “enterprise edition” with a different code path. The same package, the same daemon, the same UI, the same shell tools. What changes between deployment sizes is the operator’s practice (monitoring, replication, change management, on-call), not the software being operated.
Boring is the goal
Standard ZFS, standard Samba, standard NFS, standard FreeBSD. Every component is independently maintained and independently usable. Familiarity transfers in and out.
Updates without drama
bectl takes the boot environment. freebsd-update and pkg upgrade apply the change. A rollback is a reboot. The same workflow your operators already know.
No hidden state
Configuration lives in places you can cat. Behavior is driven by tools you can strace. Audit trails exist because the system was built to be inspected.
Where to go next
- PhilosophyThe principles RealNAS holds itself to, and what it deliberately is not.
- ArchitectureHow the daemon, the UI, the bindings, and the operating system fit together.
- ManualOperating the system: pools, shares, users, alerts, updates.
- MigrationMoving an existing ZFS deployment onto RealNAS.
- SecurityWhat was removed, what was hardened, what remains to do.
- SovereigntyThe case for local storage and the right to keep running your own infrastructure.
- FreedomLicensing, project governance, and why the base will always work on its own.
- RoadmapWhere the project is, what is near, what doors are intentionally left open.