Open source control plane for Ubuntu Server

See your storage.
Keep Ubuntu in control.

RootNAS turns native server state into a clear, responsive interface without hiding the operating system or requiring a cloud account.

Ubuntu 24.04 LTS+ · amd64 · AGPL-3.0-or-later

Native stateUbuntu remains authoritative
Fail closedAmbiguity is never hidden
Local accessNo external account required
Signed deliveryAuthenticated APT metadata

01 / WHY ROOTNAS

A server panel should explain the system, not replace it.

01

Native-first by design

RootNAS makes native Ubuntu storage state understandable without replacing it. The terminal and native configuration stay available.

02

Honest system state

Partial observations, unknown devices, stale data, and native warnings remain explicit. An unused-looking disk is never presented as safe to erase.

03

Small privileged surface

The browser API cannot execute privileged system commands. A separate agent accepts only bounded, typed operations over a protected local socket.

02 / ARCHITECTURE

Root access stops at the smallest possible process.

The network-facing service runs without root. Authentication, input validation, and the privileged Ubuntu boundary remain separate and independently testable.

  1. Browser Local HTTPS session

    Responsive interface and same-origin API requests.

  2. API Unprivileged validation

    PAM-backed sessions and strict browser contracts.

  3. Agent Minimal root boundary

    Peer-verified socket and allowlisted native probes.

  4. Ubuntu System remains canonical

    Standard services, tools, devices, and configuration.

03 / INSTALL

Install from the signed APT repository.

For Ubuntu Server 24.04 LTS+ on amd64. Release validation currently targets Ubuntu 24.04 LTS.

STEP 01

Trust the archive key

rootnas-keyring.sh
sudo apt update
sudo apt install --yes ca-certificates curl gnupg
curl --fail --location \
  --output /tmp/rootnas-archive-keyring.gpg \
  https://artcc.github.io/RootNAS/apt/stable/rootnas-archive-keyring.gpg

test "$(gpg --batch --show-keys --with-colons --fingerprint /tmp/rootnas-archive-keyring.gpg | awk -F: '$1 == "fpr" { print $10; exit }')" = "B43848B92B01CE38B3067DCFB271AA54E83DF39C"
sudo install -D -m 0644 /tmp/rootnas-archive-keyring.gpg /etc/apt/keyrings/rootnas-archive-keyring.gpg
rm /tmp/rootnas-archive-keyring.gpg
EXPECTED OPENPGP FINGERPRINT B438 48B9 2B01 CE38 B306 7DCF B271 AA54 E83D F39C
STEP 02

Configure APT

rootnas-install.sh
sudo tee /etc/apt/sources.list.d/rootnas.sources >/dev/null <<'EOF'
Types: deb
URIs: https://artcc.github.io/RootNAS/apt/stable
Suites: noble
Components: main
Architectures: amd64
Signed-By: /etc/apt/keyrings/rootnas-archive-keyring.gpg
EOF

sudo apt update
sudo apt install rootnas
AFTER INSTALLATION

Open https://<server-address>:8443/ and sign in with an eligible non-root Ubuntu user in the sudo group.

The initial certificate is self-signed, so the browser will display a trust warning until certificate management is implemented or the certificate is trusted locally.