FreeNAS is managed through a comprehensive web interface that is supplemented by a minimal shell console that handles essential administrative functions. The web interface supports storage pool configuration, user management, sharing configuration and system maintenance. As an embedded system appliance, FreeNAS boots from a USB Flash device or SATADOM. This image is configured using a USB Flash/CD-ROM bootable installer. The FreeNAS operating system is fully independent of its storage disks, allowing its configuration database and encryption keys to be backed up and restored to a fresh installation of the OS. This separation also allows for FreeNAS system upgrades to be performed through the web interface.

The FreeNAS project was started in October 2005 by Olivier Cochard-Labbé who based it on the m0n0wall embedded firewall and FreeBSD 6.0. Volker Theile joined the project in July 2006 and became the project lead in April 2008. In September 2009, the development team concluded that the project, then at release .7, was due for a complete rewrite in order to accommodate modern features such as a plug-in architecture. Volker Theile decided that the project best be reimplemented using Debian Linux and shifted his development efforts to the interim CoreNAS project and eventually OpenMediaVault where he continues as the project lead. Cochard-Labbé responded to community objections to "The Debian version of FreeNAS" and resumed activity in the project and oversaw its transfer to FreeNAS user iXsystems.[9][10] Developers Daisuke Aoyama and Michael Zoon continued developing FreeNAS 7 as the NAS4Free project. Meanwhile, iXsystems rewrote FreeNAS with a new architecture based on FreeBSD 8.1, releasing FreeNAS 8 Beta in November 2010.[11] The plug-in architecture arrived with FreeNAS 8.2 and FreeNAS versioning was synchronized with FreeBSD for clarity. FreeNAS 8.3 introduced full-disk encryption and FreeBSD 9.1-based FreeNAS 9.1 brought an updated plug-in architecture that is compatible with the TrueOS Warden jail management framework. FreeNAS 9.1 was also the first version of FreeNAS to use the community-supported OpenZFS v5000 with Feature Flags.[12][13] FreeNAS 9.2, based on FreeBSD 9.2 included performance improvements and introduced a RESTAPI for remote system administration.[14] FreeNAS 9.3, based on FreeBSD 9.3 introduced a ZFS-based boot device, an initial Setup Wizard and a high-performance in-kerneliSCSI server.[15] FreeNAS 9.10, based on FreeBSD 10.3-RC3 brought an end to the FreeNAS/FreeBSD synchronized naming and introduced Graphite monitoring support and experimental support for the bhyve hypervisor.[16]

In October 2015, ten years after the original FreeNAS release, FreeNAS 10 ALPHA was released, providing a preview of what would become FreeNAS Corral GA on March 15, 2017.[17] FreeNAS Corral introduced a new graphical user interface, command-line interface, underlying middleware, container management system and virtual machine management system.[18] FreeNAS Corral departs from FreeNAS by providing not only NAS functionality but also hyper-converged functionality thanks to its integrated virtual machine support. However, on April 12, 2017 iXsystems announced that FreeNAS Corral would instead be relegated to being a 'Technology Preview', citing issues such as "general instability, lack of feature parity with 9.10 (Jails, iSCSI, etc), and some users experiencing lower performance than expected"[19] and the departure of the project lead. Instead, the decision was made to revert to the existing 9.10 code and bring Corral features to 9.10.3 and further.

In May 2017, iX Systems announced that FreeNAS 11 would be imminently released, which was based on 9.10 but included features such as an update of the FreeBSD operating system, virtual machine management, updates to jails, and a new beta user interface along the lines of Corral but based on Angular JS.

The 8.0 reimplementation of FreeNAS moved the project from a m0n0BSD/m0n0wall/PHP-based architecture to one based on FreeBSD's NanoBSD embedded build system, the Python programming language, the Django web application framework and the dōjō toolkit (JavaScript library).[20] It also used the lighttpd web server, but this was replaced with nginx in FreeNAS 8.2. The terminated successor to 9.10.2, known as FreeNAS Corral, retained the nginx web server and ZFS-based boot device of FreeNAS but replaces the Django/dōjō web application framework with an original one. FreeNAS 11 implemented a new interface using Angular JS.

The "Corral" branch was cancelled on or around 23 April 2017, the developers citing as reasons that although it had been a major "ground up" rewrite of FreeNAS, too many issues had emerged within 2 weeks of release. Development reverted to the proven 9.10 branch of FreeNAS and the Corral branch was relegated to a "techology preview".[22][23]

Changes include the addition of cloud synchronization and preliminary Docker container support, as well as updates to the Angular-based administrative GUI and noticeable OpenZFS improvements for handling large files and multiple snapshots.[27][28]

2 factor authentication, LDAP, Active Directory, RADIUS, IPSec, Kerberos and other authentication/user management systems supported in FreeBSD and therefore available for FreeNAS (Note: some but not all supported in GUI).

Multi-version boot environment - the boot menu provides access to previous versions of FreeNAS which have been upgraded. In the event of a boot issue or system problem, FreeNAS can also load any of these at boot, as "known good" versions, without "rolling back" the server.