mirror of
https://github.com/harivansh-afk/betterNAS.git
synced 2026-04-15 08:03:42 +00:00
72 lines
1.9 KiB
Markdown
72 lines
1.9 KiB
Markdown
# betterNAS Part 3: Local Device
|
|
|
|
This document describes the software and user experience on the user's Mac or
|
|
other local device.
|
|
|
|
## What it is
|
|
|
|
The local device layer is how a user actually mounts and uses their NAS.
|
|
|
|
It should start simple:
|
|
|
|
- browser opens the web control plane
|
|
- user gets a WebDAV mount URL
|
|
- Finder mounts the export
|
|
|
|
It can later grow into:
|
|
|
|
- a small helper app
|
|
- one-click mount flows
|
|
- auto-mount at login
|
|
- status and reconnect behavior
|
|
|
|
## What it does
|
|
|
|
- authenticates the user to betterNAS
|
|
- fetches allowed mount profiles from `control-server`
|
|
- mounts approved storage exports locally
|
|
- gives the user a native-feeling way to browse files
|
|
|
|
## What it should not do
|
|
|
|
- invent its own permissions model
|
|
- hardcode node endpoints outside the control-server
|
|
- depend on the optional cloud adapter for the core mount flow
|
|
|
|
## Diagram
|
|
|
|
```text
|
|
self-hosted betterNAS stack
|
|
|
|
node-service <--------> control-server <--------> web control plane
|
|
^ ^
|
|
| |
|
|
+------------- [THIS DOC] local device ---------+
|
|
browser + Finder
|
|
```
|
|
|
|
## Core decisions
|
|
|
|
- V1 relies on native Finder WebDAV mounting.
|
|
- The web UI should be enough to get the user to a mountable URL.
|
|
- A lightweight helper app is likely enough before a full native client.
|
|
|
|
## User modes
|
|
|
|
### Mount mode
|
|
|
|
- user mounts a NAS export in Finder
|
|
- files are browsed as a mounted remote disk
|
|
|
|
### Browser mode
|
|
|
|
- user manages the NAS and exports in the web control plane
|
|
- optional later: browse files in the browser
|
|
|
|
## TODO
|
|
|
|
- Define the mount profile format returned by `control-server`.
|
|
- Decide whether the first UX is manual Finder flow, helper app, or both.
|
|
- Define credential handling and Keychain behavior.
|
|
- Define reconnect and auto-mount expectations.
|
|
- Define what later native client work is actually worth doing.
|