rockstor-core: a BTRFS NAS appliance you install as a whole Linux distribution
Linux/BTRFS based Network Attached Storage(NAS)
At a glance
- What is it?
- Rockstor is a Network Attached Storage built on Linux and BTRFS, written in Python and JavaScript and shipped as a complete Linux distribution rather than a package you install onto an existing server. The Rock-on subsystem adds Docker based apps, and the licence story is split across two repositories plus AGPL registry definitions.
- Who is it for?
- rockstor-core fits a home lab or small office that wants a NAS with a management interface, BTRFS features such as snapshots and pooling, and Docker apps on the same box, and that is willing to own the operating system underneath. It is the wrong tool if you want to add NAS features to a server you already administer, since the distribution is the product, and it is the wrong tool if your application consumption needs more than a handful of containers.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 66 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The distribution is the product, not a package on your server
Rockstor is a Network Attached Storage solution built on Linux and the B-Tree Filesystem, written in Python and Javascript, and made available as a complete Linux distribution for convenience. That last clause is the one that determines everything else about the project. This is not a service you install with a package manager onto a running Debian or Rocky host. It is a software appliance, an operating system image that you install to the disk of the machine, and the whole management interface, the storage configuration, and the update path come with it. The project goal is stated plainly in the README, to establish sustainable open source development of an easy to deploy and use NAS solution for commodity hardware, and the README says it goes beyond traditional NAS by supporting Docker based apps and RESTful APIs, and serves as a private cloud storage platform out of the box. The audience is individuals and organisations with commodity hardware, including a Pi 4 or an ARM64 machine.
Some familiarity with an OS install is the price of admission
The Who should use it section sets expectations in one line. As a DIY appliance some familiarity with PC, Pi4, or ARM64 operating system install is required, but not much beyond the basics. That is a meaningful distinction from a consumer NAS appliance that boots from a USB stick and asks you for a hostname. Here you are expected to know how to get an image onto a disk and boot it. The payoff for that effort is control. The storage layer is BTRFS, so the underlying filesystem provides its own mechanisms for snapshots, checksums, and pooling rather than the vendor building those features in a proprietary layer, and the management interface is served by a Python backend with a JavaScript front end. The get-started path is a quickstart guide, and support runs through a community forum where the README says all current developers are also active forum members, with GitHub issues used for tracking, though a forum post is advised beforehand so that the issue is clear and directed at the right repository.
Rock-ons add Docker apps, with a licensing wrinkle
The optional Rock-ons sub-system is how you add applications to the appliance, and it is described as using Docker plugins. The definitions come from a separate rockon-registry repository, and those definitions are licensed AGPL-3.0-or-later. The details matter. The README states that these definitions are not included within the distributed package but are retrieved via the internet from production servers upon this sub-system's setup. So the AGPL text applies to code that lands on your machine at first run rather than code that ships in the box, and a note says all additional software installed via the optional Rock-on sub-system is subject to the individual projects' licensing terms, as indicated by their respective websites and linked within the Rock-ons web UI. For a home user that is a footnote. For an organisation that ships appliances or images to customers, it is a packaging question that has to be answered before distribution, not after.
Two repositories, one package, and a mixed licence expression
The licensing section is the most careful part of the README, and it is where the project's engineering maturity shows. The package code as distributed is developed under two main repositories. The first, rockstor-core, is GPL-3.0-or-later. The second, rockstor-jslibs, is licensed under MIT AND Apache-2.0 AND GPL-3.0-or-later AND LGPL-3.0-or-later AND ISC, indicating the combined works in that repository. Making the package license follows the Fedora Project Wiki guidance on the mixed source licensing scenario, and the resulting expression is stated in full: GPL-3.0-or-later AND (MIT AND Apache-2.0 AND GPL-3.0-or-later AND LGPL-3.0-or-later AND ISC). The package metadata in `pyproject.toml` carries that same expression, alongside the inclusion of the jslibs tarball and its sha256sum file:
license = "GPL-3.0-or-later AND (MIT AND Apache-2.0 AND GPL-3.0-or-later AND LGPL-3.0-or-later AND ISC)"The documentation lives in its own repository, rockstor-doc, licensed CC-BY-SA-4.0, and is developed in the open. Every layer of this distribution has its own terms, and the README points at the SPDX License List for the authoritative identifiers.
A Poetry project with three Python packages and a JavaScript bundle
Based on the repository layout, the core is a Poetry project rather than a setuptools one. The build system requires `poetry-core` with the `poetry.core.masonry.api` backend, and the package metadata names the project `rockstor` with the description of a Btrfs Network Attached Storage appliance. The distribution includes several Python packages pulled from the `src` tree, and the `include` list is what makes the package a complete appliance rather than a library. It carries the `COPYING` file, the jslibs tarball and its checksum, the `build.sh` master build script, `poetry.toml`, the `poetry.lock` dependency lock file, and the `.env` file that is the poetry-plugin-dotenv default source. It also includes whole directory trees, and the comment on the `var` entry explains why: some processes depend on that tree existing. The `conf` and `etc` directories are the configuration directories. The front end has its own build, with a `gulpfile.js` at the root and an `.eslintrc.js` for linting the JavaScript.
Version numbers in the metadata lag the released packages
There is a small inconsistency worth flagging before you pin anything. The `pyproject.toml` in the repository declares the version as 5.1.0, while the release history lists 5.5.3-0 on 2026-05-09, 5.5.4-0 on 2026-06-26, and 5.5.5-0 on 2026-07-06, and the last push was on 2026-08-18. The classifiers mark the project as Development Status 5, Production/Stable, and the repository is not archived. The practical reading is that the version string in the manifest is not the artefact you install, since the distribution is built and versioned through the release process rather than by packaging the manifest as-is. Anyone automating a build from this repository should therefore not assume the manifest version identifies the release, and should track the tagged releases instead. There is no Contributor License Agreement, and the README notes that contributions and corrections to the documentation are always welcome.
Where a NAS appliance is the wrong answer
Two situations rule this project out. The first is a shared server you already administer. If the machine hosts other workloads, or if your organisation runs a standard Linux image on every host for configuration management reasons, replacing the operating system with a NAS appliance is a fight you will lose. The appliance owns the disk layout, the update path, and the network configuration, and the usual pattern of an organisation is to fight exactly that. The second is anything above small scale. The Rockstor project aims to aid individuals and organisations alike, but the design here is a single-node appliance for commodity hardware, and there is nothing in the README about clustering, replication between appliances, or multi-node management. If your requirement is a multi-site file platform with a support contract behind it, this is the wrong shape of software. Within its actual remit, the thing that makes it interesting is that BTRFS is not hidden behind a vendor abstraction.
Editorial conclusion
rockstor-core fits a home lab or small office that wants a NAS with a management interface, BTRFS features such as snapshots and pooling, and Docker apps on the same box, and that is willing to own the operating system underneath. It is the wrong tool if you want to add NAS features to a server you already administer, since the distribution is the product, and it is the wrong tool if your application consumption needs more than a handful of containers. Before you install, read the licensing section carefully, because the package is GPL-3.0-or-later combined with a mixed-licence JavaScript library tarball, and note that the Rock-on definitions are AGPL-3.0-or-later and are fetched from the internet at setup time rather than shipped in the package.
Frequently asked questions
What is Rockstor and what does it run on?
Rockstor is a Network Attached Storage solution built on Linux and the BTRFS filesystem, written in Python and JavaScript, and made available as a complete Linux distribution for convenience. It supports Docker based apps, RESTful APIs, and is described as a private cloud storage platform out of the box.
How is the rockstor-core package licensed?
The core repository is GPL-3.0-or-later, and the rockstor-jslibs repository is licensed under MIT AND Apache-2.0 AND GPL-3.0-or-later AND LGPL-3.0-or-later AND ISC. The combined package expression is GPL-3.0-or-later AND (MIT AND Apache-2.0 AND GPL-3.0-or-later AND LGPL-3.0-or-later AND ISC), following the Fedora Project Wiki guidance on mixed source licensing.
What licence applies to Rock-ons and the apps they install?
The Rock-on definitions come from the rockon-registry repository and are AGPL-3.0-or-later licensed. They are not included in the distributed package but retrieved over the internet when the sub-system is set up, and all additional software installed through Rock-ons is subject to the individual projects' own terms.
Do I need Linux experience to install Rockstor?
Some, but not much. The README says that as a DIY appliance some familiarity with PC, Pi4, or ARM64 operating system install is required, but not much beyond the basics. The project points new users to its quickstart guide and to the community forum for support.
How is rockstor-core packaged and built?
It is a Poetry project using the poetry-core build backend. The package includes the GPL COPYING file, the rockstor-jslibs tarball with its sha256sum, the build.sh script, the poetry config and lock file, and the conf, etc, and var directory trees, alongside the rockstor, storageadmin, and smart_manager Python packages taken from the src tree.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/rockstor-rockstor-core)Was this useful?