Download latest ISO image releases or read about the current status of the project.
hootNAS comes with a web based management application and API based on a ubuntu LTS, it is packaged in two versions, one with hardware drivers for running on bare metal, and one for running in a virtual machine.
The ambition of hootNAS is to be a robust, utilitarian, user, and developer friendly NAS that can be used out-of-the-box, or customized to make it your very own, it should be much more than just OS "open source", let's call it "applicable open source" or AOS.
Although the intended use cases are individuals, academic organizations and small to medium businesses, with high data volumes, home users might also find it useful as they can add any functionality they need.
hootNAS accomplishes this by using ubiquitous technology, tools and frameworks etc. to curb context switching and trivial tasks, thus enabling the developer to focus more on solving actual problems and prevent developer fatigue. Additionally there is an emphasis on providing quality in documentation, in particular adding context, reasoning and references.
- Super fast, runs in-memory
- No installation required
- Simple setup and easy to upgrade
- Boot from any media, even a slow USB-stick
- Boot from network drive or PXE boot
- No dedicated boot disk required
- True data and system OS separation
- Local authentication, or remote LDAP or Active Directory servers
- SMB, NFS and iSCSI network folders and blockdevices
- Industrial grade ZFS storage
- Management dashboard web application
- Self-service user dashboard web application
- API for custom or automated management
The in-memory operation is partially inspired by SmartOS
The devlopment stack consists of node.js and bash for backend interfacing, Express.js for serving the API and web application, the latter built using Vite.js and Vue.js with Bootstrap components, and JSDoc for JS documentation.
The technology stack consists of ubuntu LTS version as the base OS, OpenZFS for storage, SAMBA, Linux-NFS and Open-iSCSI for serving storage, LDAP and Active Directory clients for authentication, and SQLite for state management.
- Create a hootNAS instance - Get hootNAS up and running in no time.
- Prepare your development environment - If you want to start contribute to the project.
- Developing the webapp - If you want to work with frontend JS with Vue 3 in Vite.
- Developing the webapi - If you want to work with backend JS with node.js.
- Developing hootOS - If you want to work with OS development.
- Documentation - The documentation is a work in progress.
It is the hope that this project one day will become a community effort, eventually striking a reasonable balance between "complete" and "nothingness forever". Therefore all contributions are welcome, including issue reports and feature requests.
In the meantime all contributors are required to sign the hootNAS Contributor License Agreement prior to contributing code to an open source repository. This process is handled automatically by cla-assistant. Simply open a pull request and a bot will automatically check to see if you have signed the latest agreement. If not, you will be prompted to do so as part of the pull request process.
This project operates under the hootNAS Code of Conduct. By participating in this project you agree to abide by its terms.
The name hootNAS is a temporary placeholder, and is subject to change to something more techy once the project is more mature.
This software is provided as-is, without warranty of any kind or commercial support through hootNAS. See the associated license for additional details. Questions, issues, feature requests, and contributions should be directed to the community as outlined in the hootNAS Community Guidelines.
This is code is licensed under the Apache License 2.0. Full license is available here.
Placeholder for future content