Deploying a Home NAS on Debian: 2.5GB of RAM Reclaimed
A home server running TrueNAS consumed 3.2GB of its 8GB RAM at idle. Migrating to Debian 13 with Cockpit reduced that to 640MB, freeing 2.5GB for caching and workloads. The migration preserved the ZFS pool and improved boot time by over two minutes.
TrueNAS is a robust appliance, but its baseline requirements are not optimized for modest hardware. Its own documentation specifies 8GB of RAM as the minimum, because the middleware, web UI, apps system, and ZFS share a single memory pool. On a repurposed desktop with two 4TB WD Red Plus drives in a mirror, that left ZFS with insufficient room for its read cache, which directly impacts NAS performance.
The alternative: install plain Debian 13 and add Cockpit, a browser-based server management dashboard. This configuration runs on demand via socket activation, meaning the dashboard consumes no memory when not in use. The result is a leaner, more efficient system that does more with less.
Why TrueNAS Requires 8GB of RAM
TrueNAS is built on Debian, but it restricts package installation. The shell returns a flat refusal: Package management tools are disabled on TrueNAS appliances. This is a deliberate design choice to maintain system integrity, but it limits flexibility. For users who need custom tools like restic for off-site backups, the workaround is to wrap them in apps, which adds overhead.
The 8GB floor is not arbitrary. The middleware, web UI, apps system, and ZFS all draw from the same memory pool. On a system with 8GB, that leaves little for ZFS caching, which is what makes a NAS feel responsive. A colleague who tested TrueNAS against Unraid and ZimaOS called that floor a pretty high number in the current RAM market.
How to Migrate a ZFS Pool from TrueNAS to Debian
The migration process is straightforward, but it requires care. The critical step is exporting the ZFS pool from TrueNAS before wiping the system. Keeping a copy of the TrueNAS config file off the server is also essential, as it allows for a rollback if needed.
After installing Debian 13 with no desktop, only SSH and standard utilities, ZFS is available from the contrib repo. The trixie-backports repository carries OpenZFS 2.4.3, which is newer than the 2.3.4 shipped with TrueNAS 25.10. A single zpool import tank command restored all data, including photos, work files, and Linux ISOs.
For Cockpit, the installation is a one-line command: sudo apt install -t trixie-backports cockpit cockpit-podman cockpit-machines. The dashboard runs on port 9090. Additional plugins handle NAS functions: cockpit-file-sharing manages Samba and NFS shares, cockpit-podman runs containers, and cockpit-machines handles virtual machines.
Cockpit vs. TrueNAS: Memory Usage on the Same Hardware
The performance difference is significant. At idle, TrueNAS 25.10 uses 3.2GB of RAM, while Debian 13 with Cockpit uses 640MB. Boot to SMB shares online takes 2 minutes 41 seconds on TrueNAS, compared to 52 seconds on Debian. The Debian system also runs more workloads: three containers and one VM, versus two apps on TrueNAS.
The freed memory is put to use. Jellyfin, Syncthing, and Uptime Kuma run as Podman containers, and a 2GB Home Assistant VM operates within cockpit-machines. On TrueNAS, running that VM alongside two apps pushed the system into swap. On Debian, ZFS still gets about 3.4GB for its cache with everything running.
What Breaks When You Switch from TrueNAS to Debian?
The main issue is Apple's Time Machine support. TrueNAS configures Samba with Apple-specific extensions automatically. Plain Samba does not. The fix requires adding vfs objects = fruit streams_xattr and fruit:time machine = yes to the share configuration, plus installing avahi-daemon for network discovery. The cockpit-file-sharing plugin has an advanced settings box for this, so the fix takes about five minutes once known.
Another consideration is monitoring. TrueNAS includes snapshot tasks, replication, and email alerts for drive failures. Debian ships a monthly ZFS scrub by default, but alerts must be configured manually. Setting up smartd and the ZFS event daemon to send emails is possible, but it requires a hands-on approach.
Is Debian with Cockpit the Right NAS OS for You?
Plain Linux suits a small box that does a bit of everything. For users comfortable in a terminal and running modest hardware, Debian with Cockpit is a viable alternative to TrueNAS. The trade-off is the loss of appliance polish, but the gains in memory efficiency and flexibility are substantial.
TrueNAS remains the right choice for those who want a turnkey appliance. For a home lab focused on VMs, Proxmox is a better fit. But for a lightweight, multi-purpose server, Debian with Cockpit delivers more with less. The migration paid off in the first week, and the system now runs more workloads than ever before.
FAQ: Migrating from TrueNAS to Debian with Cockpit
Can I import my TrueNAS ZFS pool into Debian?
Yes. Export the pool from TrueNAS before wiping the system, then install Debian with ZFS support. A single zpool import tank command restores all data.
Does Cockpit use less memory than TrueNAS?
Yes. At idle, Cockpit uses 640MB of RAM, compared to 3.2GB for TrueNAS, because it runs on demand via socket activation.
What plugins do I need for NAS functions in Cockpit?
Use cockpit-file-sharing for Samba and NFS shares, cockpit-podman for containers, and cockpit-machines for virtual machines.
How do I fix Time Machine backups after switching?
Add the fruit VFS objects to the Samba share configuration and install avahi-daemon for network discovery.