mirror of
https://github.com/harivansh-afk/betterNAS.git
synced 2026-04-15 19:05:14 +00:00
63 lines
1.8 KiB
Markdown
63 lines
1.8 KiB
Markdown
# 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
|
|
|
|
```text
|
|
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.
|