Roadmap¶
What is planned, in priority order, with honest notes on where each item actually stands. Updated as things move; anything finished goes to Project status.
Next¶
Signed update manifests¶
The update train is served over HTTPS and packages are checked against checksums from the manifest — but the manifest itself rests on TLS alone. The project already has a release signing key (ed25519, the same one that signs the ISOs); what remains is to sign the manifests with it, replacing the inherited scheme that relied on an iX certificate authority and has been cut out.
A web interface for containers¶
Containers run from the command line, and now they need an interface. Not a Portainer clone — the minimum someone actually installs a NAS for:
- list of containers and images, state, resource use;
- pull an image, create a container: name, ports, a dataset mounted inside, environment variables, start on boot;
- start, stop, remove, read the log;
- a link to the application's own web interface, where the container offers one.
On the way it has to handle two known traps by itself: podman storage must
live on a dataset, or it ends up in tmpfs, and for Linux images the interface
should report the state of emulation rather than fail silently with
Exec format error.
Later¶
A firewall in the web interface¶
TrueNAS never had one — a deliberate call by iX that a NAS is not a firewall. We disagree: a machine holding data sits on a network, and filtering rules belong in the interface. The research is done. The rule model is taken from OPNsense (BSD licence), the backend is pf, user rules are isolated in their own anchor and leave container NAT alone, and application is atomic with a guard against locking yourself out: an undeletable rule for interface access plus a confirmation with a rollback timer. Not implemented yet.
A new update mechanism: pkgbase and bectl¶
The inherited updater was written in 2014, when the standard tools did not exist, and it moves the system around in a gigabyte-sized archive. FreeBSD 15 supports pkgbase officially — the base system as ordinary pkg packages. The plan: clone a new boot environment (copy-on-write), update the packages inside it with plain pkg, activate, reboot; roll back by activating the previous environment. A routine update then costs megabytes instead of a gigabyte, and the old version is never touched.
Publishing builds automatically¶
The build runs from sources to ISO on its own, but publishing to the update train is still done by hand. Finish the pipeline: built, passed acceptance, published.
Further out¶
- Wider test coverage: different disk controllers, raidz pools, separate cache and log devices, behaviour under real load.
- Ready-made storage appliances on BSDnas — an idea being weighed, no more than that.
What this roadmap does not have¶
Dates. Promising one would cost more than the feature itself. The order is the promise: what is higher comes first.