A free, open-source Network Attached Storage appliance
Turn any 64-bit machine — a spare PC, a home server, or an ARM board — into a full-featured NAS with a clean web interface, btrfs storage, and one-click file sharing.
EasyNAS is a self-contained storage appliance built on openSUSE Tumbleweed and packaged as a bootable installer image with the KIWI appliance builder. You install it to a disk, answer a short first-boot wizard, then manage everything from your browser — no Linux administration required.
The management interface is a Mojolicious (Perl) web application. Storage is built on btrfs, giving you software RAID, transparent compression, snapshots, and self-healing pools that survive an OS reinstall.
EasyNAS is part of the EasySYS family of open infrastructure appliances.
- btrfs storage pools — single-disk, RAID 0/1/5/6/10, add or remove disks online, transparent compression, and scrubbing.
- Self-describing pools — storage carries its own identity on-disk, so pools are rediscovered automatically after an OS reinstall or hardware move.
- One-click file sharing — Samba (SMB/CIFS), NFS, FTP, AFP, TFTP, rsync, and SSH, each installable as an optional add-on.
- Dashboard monitoring — live CPU, memory, and filesystem usage at a glance.
- Web management — disks, volumes, shares, users, groups, and networking from an HTTPS interface (self-signed certificate generated on first boot).
- Console menu — a text menu on the local console for IP/status, reinstall, restart, shutdown, and a rescue shell.
- First-boot wizard — timezone, license agreement, and network setup on the very first power-on.
- Multi-architecture — x86_64, Raspberry Pi, and generic ARM64 boards, plus a ready-to-run virtual-machine image.
- Stable & testing channels — signed zypper repositories with automatic update checks.
Optional capabilities ship as separate packages so the base appliance stays lean. Install them from the Add-ons page in the web interface.
| Category | Add-ons |
|---|---|
| File sharing | Samba, NFS, FTP, AFP, TFTP, rsync, SSH |
| Media | DLNA, Plex |
| Services | LXC containers, MariaDB, RADIUS |
| Storage | iSCSI target |
| Languages | German, Portuguese, Chinese, Polish |
| Image | Target | Format |
|---|---|---|
x86_64 |
Standard PCs and servers (BIOS/UEFI) | Install ISO |
Raspberry Pi |
Raspberry Pi 3/4/CM (aarch64) | Raw disk image |
ARM64 |
Generic UEFI ARM64 boards (Orange Pi, Rock, CM3588, …) | Raw + installer |
VM |
Virtual machines (KVM/QEMU, Proxmox) | qcow2 |
- Download the image for your platform from repo.easysys.io/easynas.
- Write it to a USB stick or disk:
# x86_64 installer ISO sudo dd if=EasyNAS.x86_64-1.99.install.iso of=/dev/sdX bs=4M status=progress oflag=sync # ARM board raw image (decompress first if .xz) xzcat EasyNAS.aarch64-1.99.raw.xz | sudo dd of=/dev/sdX bs=4M status=progress oflag=sync
- Boot the target machine from it. The x86_64 installer copies EasyNAS to the internal disk and reboots; ARM images boot directly from the written media.
- Complete the first-boot wizard (timezone, license, network).
Once installed, the console shows the address to connect to:
Browse to https://<appliance-ip>:1443 to configure EasyNAS
Open that URL in your browser (accept the self-signed certificate) and sign in with the administrator account created during first boot. From there you can:
- Disks → wipe and prepare drives.
- Volumes → create a btrfs pool (choose your RAID level).
- Filesystems → create and mount subvolumes.
- Add-ons → enable Samba/NFS/… and publish shares.
The local console also offers a menu for status, reinstall, and a rescue shell.
The web interface listens on port 1443 by default; change it in
/etc/easynas/easynas.conf (EASYNAS_PORT=).
┌──────────────────────────────────────────────┐
│ Web UI (Mojolicious / Perl, HTTPS :1443) │
│ script/easy_nas → lib/EasyNAS/Controller/*.pm │
├──────────────────────────────────────────────┤
│ Add-ons (RPM subpackages: fs-*, srv-*, mm-*) │
├──────────────────────────────────────────────┤
│ Storage: btrfs pools, self-describing, self- │
│ healing after reinstall │
├──────────────────────────────────────────────┤
│ Base OS: openSUSE Tumbleweed (KIWI appliance) │
└──────────────────────────────────────────────┘
- Configuration lives on a dedicated config partition (
/config) that is independent of the OS, so a reinstall preserves settings and storage. - Updates replace the OS/application via signed zypper repositories rather than patching in place, keeping every appliance on a known-good image.
| Path | Purpose |
|---|---|
script/easy_nas |
Mojolicious application entry point |
lib/EasyNAS/Controller/ |
Web controllers (dashboard, disk, volume, filesystem, samba, nfs, …) |
templates/, public/ |
Views and static assets |
lang/ |
Translations |
addons/*.easynas |
Add-on manifests (name, service, dependencies) |
startup/ |
Console menu (easynas.sh), first-boot wizard, update checker |
docs/ |
Website & user documentation (MkDocs), plus internal design notes |
Full documentation is hosted at easynas.org.
The site is built with MkDocs from the pages in docs/ (mkdocs.yml,
deployed with deploy-docs.sh).
Design notes for internals (immutable OS, storage recovery, snapshots, identity)
live under docs/.
Issues and pull requests are welcome. The web application is written in Perl
(Mojolicious); add-ons follow the pattern in lib/EasyNAS/Controller/ and a
matching addons/<name>.easynas manifest.
EasyNAS is free software, released under the GNU General Public License v3.0. See LICENSE for details.
Created by Yariv Hakim — © 2012–2026.