mk-nas

An old PC as a small, quiet NAS, with mk-drive as its face.

Version 0.6. Pools, datasets, snapshots, shares and copies work, the installer stick boots, and a box installs new signed releases from its own System page.

The Storage overview in mk-drive, dark theme: two things that need attention, the last day's events, tiles for CPU, memory, network, disks and temperature, and the pools tank and vault with their usage bars
A test box: two pools of fixture data from the stand-in agent

A failed disk, in plain words.

The pool page is what zpool status says, without the terminal: what is wrong, what to do, and Replace next to the disk that went. The rebuild shows its progress.

The pool vault, degraded and 32% through rebuilding onto a new disk, with an explanation, the mirror's disks and a Replace button by the removed one

Every disk, and how it is doing.

Size, type, which pool it serves, temperature, hours powered on and SMART health, under the by-id name that survives a reboot and a cable swap.

The Disks table: four pool disks, one free disk and the NVMe system disk, each with temperature, age and health; one has 2 pending sectors

Snapshots on a schedule, and one before the cleanup.

Hourly and daily policies per dataset, plus the ones you name yourself. Each row says how much space it alone keeps; roll back or delete from there.

The Snapshots list, newest first: automatic hourly and daily snapshots of tank/photos and tank/docs, when each was taken and how much it uses

A dataset becomes a network folder.

Switch on SMB or NFS per dataset and the page gives the address to paste. A share can be a Time Machine target; each has its own list of who may open it.

The Shares page: photos over SMB and NFS and a Time Machine share, each with its smb://nas.local address

A copy on another machine.

Send a dataset to any ZFS machine over ssh, snapshot by snapshot, on a schedule. The box's own settings are kept in a dataset too, so they travel with it.

Copies elsewhere: tank/photos copied daily to a backup host with the last incremental runs, the NAS's ssh key, and the settings backup with Back up now and Restore

And the rest

Details

A bootable stick
make iso   # then write the image to a USB stick and boot the box from it
Or install the agent on an existing Ubuntu Server with the .deb.
Runs on
An x86 PC with a disk for the system and one or more for data. Ubuntu Server LTS under the hood.
Licence
AGPL-3.0, free and open source, on as many disks as the box holds. A commercial licence is available for companies that cannot use the AGPL.
Source
github.com/mkornas/mk-nas