filesystem admin over HTTP https://www.betternas.com
Find a file
2026-04-01 16:13:45 +00:00
apps Secure first-loop control-plane auth and mount routing. 2026-04-01 14:13:14 +00:00
docs prepare runtime loop 2026-04-01 05:12:11 +00:00
infra/docker fix secrets 2026-04-01 15:58:28 +00:00
packages Secure first-loop control-plane auth and mount routing. 2026-04-01 14:13:14 +00:00
scripts Keep stack verification idempotent under node auth. 2026-04-01 14:52:14 +00:00
.editorconfig pnpm, verify, cleanup (#6) 2026-03-31 23:59:52 -04:00
.env.agent.example prepare runtime loop 2026-04-01 05:12:11 +00:00
.gitignore introduce .env 2026-04-01 04:32:08 +00:00
.prettierignore pnpm, verify, cleanup (#6) 2026-03-31 23:59:52 -04:00
control.md prepare runtime loop 2026-04-01 05:12:11 +00:00
go.work init (#5) 2026-03-31 23:50:51 -04:00
go.work.sum edit 2026-04-01 04:04:04 +00:00
package.json setup agent runtime requirements (#7) 2026-04-01 00:37:15 -04:00
pnpm-lock.yaml pnpm, verify, cleanup (#6) 2026-03-31 23:59:52 -04:00
pnpm-workspace.yaml pnpm, verify, cleanup (#6) 2026-03-31 23:59:52 -04:00
README.md prepare runtime loop 2026-04-01 05:12:11 +00:00
skeleton.md setup agent runtime requirements (#7) 2026-04-01 00:37:15 -04:00
TODO.md update todos 2026-04-01 16:13:45 +00:00
tsconfig.base.json pnpm, verify, cleanup (#6) 2026-03-31 23:59:52 -04:00
turbo.json pnpm, verify, cleanup (#6) 2026-03-31 23:59:52 -04:00

betterNAS

  • control-plane owns policy and identity (decides)
  • node-agent owns file serving (serves)
  • web owns UX (consumer facing)
  • nextcloud-app is optional adapter only for cloud storage in s3 n shit

Monorepo

  • apps/web: Next.js control-plane UI
  • apps/control-plane: Go control-plane service
  • apps/node-agent: Go NAS runtime / WebDAV node
  • apps/nextcloud-app: optional Nextcloud adapter
  • packages/contracts: canonical shared contracts
  • packages/ui: shared React UI
  • infra/docker: local Docker runtime

The root planning and delegation guide lives in skeleton.md.

Verify

Run the repo acceptance loop with:

pnpm verify

Runtime loop

Bootstrap clone-local runtime settings with:

pnpm agent:bootstrap

If .env.agent is missing, bootstrap writes clone-local defaults for this checkout.

Bring the stack up, verify it, and tear it down with:

pnpm stack:up
pnpm stack:verify
pnpm stack:down --volumes

Agent loop

Run the full static and integration loop with:

pnpm agent:verify

Create or refresh the sibling agent clones with:

pnpm clones:setup