betterNAS/docs/01-nas-node.md
2026-04-01 16:43:25 +00:00

1.8 KiB

betterNAS Part 1: NAS Node

This document describes the software that runs on the actual NAS machine, VM, or workstation that owns the files.

What it is

The NAS node is the machine that actually has the storage.

It should run:

  • the node-service
  • a WebDAV server surface
  • export configuration
  • optional enrollment or heartbeat back to control-server
  • later, a reproducible install path such as Docker or Nix

It should expose one or more storage exports such as:

  • /data
  • /media
  • /backups
  • /vm-images

What it does

  • serves the real file bytes
  • exposes chosen directories over WebDAV
  • reports identity, health, and exports to control-server
  • stays simple enough to self-host on a single NAS box

What it should not do

  • own product policy
  • decide user access rules by itself
  • become the system of record for users, grants, or shares

Diagram

                      self-hosted betterNAS stack

      web control plane ---> control-server ---> [THIS DOC] node-service
               ^                                        |
               |                                        |
               +---------------- user browser ----------+

      local Mac ---------------- Finder mount ----------+

Core decisions

  • The NAS node should be where WebDAV is served from whenever possible.
  • The node should be installable as one boring runtime on the user's machine.
  • The node should expose exports, not product semantics.

TODO

  • Define the self-hosted install shape: Docker first, Nix second, or both.
  • Define the node identity and enrollment model.
  • Define the storage export model: path, label, tags, permissions, capacity.
  • Define when the node self-registers vs when bootstrap tooling registers it.
  • Define direct-access vs relay-access behavior for remote use.