|
1 | 1 | <p align="center"> |
2 | | - <img src="https://raw.githubusercontent.com/nasty-project/nasty/main/webui/src/lib/assets/nasty-white.svg" width="300" alt="NASty — Storage with attitude. A modern NAS appliance built on bcachefs, designed for homelabs and small teams." /> |
| 2 | + <img src="https://raw.githubusercontent.com/nasty-project/nasty/main/webui/src/lib/assets/nasty-white.svg" width="300" alt="NASty" /> |
| 3 | +</p> |
| 4 | + |
| 5 | +<p align="center"> |
| 6 | + <strong>Reference documentation for the <a href="https://github.com/nasty-project/nasty">NASty</a> NAS appliance.</strong> |
3 | 7 | </p> |
4 | 8 |
|
5 | 9 | --- |
6 | 10 |
|
7 | | -## What is NASty? |
| 11 | +This repository holds the long-form docs for [nasty-project/nasty](https://github.com/nasty-project/nasty). For the project itself — features, installation, screenshots, contributing — start there. |
8 | 12 |
|
9 | | -NASty is a self-contained NAS operating system that turns commodity hardware into a full-featured storage appliance. |
| 13 | +## What's here |
10 | 14 |
|
11 | | -- **Filesystems** with compression, checksumming, erasure coding, and tiering |
12 | | -- **Subvolumes** with O(1) snapshots and COW cloning |
13 | | -- **File sharing** via NFS, SMB, iSCSI, and NVMe-oF |
14 | | -- **Virtual machines** with QEMU/KVM and browser-based VNC console |
15 | | -- **Apps** for running containerized services on the appliance |
16 | | -- **Alerts** with configurable rules for filesystem usage, disk health, and more |
17 | | -- **Web UI** for managing everything from a browser |
18 | | -- **Web terminal** with built-in shell access |
19 | | -- **Atomic updates** with one-click rollback |
20 | | -- **Kubernetes integration** via a CSI driver for dynamic volume provisioning |
| 15 | +[`api.md`](api.md) — the **JSON-RPC method reference**. Every RPC the engine accepts, with role, params, return type, and any related object schemas. Regenerated nightly from the engine's `--dump-docs` output (the engine is the source of truth). |
21 | 16 |
|
22 | | -## Getting Started |
| 17 | +## Interactive API browser |
23 | 18 |
|
24 | | -Download the latest ISO from [Releases](../../releases) and boot it on your hardware. The installer will guide you through disk selection and initial setup. |
| 19 | +For a searchable, browsable, *try-it-out* version of `api.md`, the same OpenAPI spec is served as a static Swagger UI at: |
25 | 20 |
|
26 | | -Pre-built QCOW2 cloud images (x86_64 and aarch64) are also available in Releases for VM-based testing. |
| 21 | +**[nasty-api.pages.dev](https://nasty-api.pages.dev)** |
27 | 22 |
|
28 | | -Default credentials: `admin` / `admin`. |
| 23 | +Updated on the same nightly cadence as `api.md` from this repo. On a running NASty box the engine serves the identical page at `/api/docs` (authenticated against your session, so "Try it out" actually works against your own RPC surface) and the raw spec at `/api/openapi.json`. |
29 | 24 |
|
30 | | -## Kubernetes CSI Driver |
| 25 | +## How the docs stay in sync |
31 | 26 |
|
32 | | -NASty includes a CSI driver for dynamic volume provisioning in Kubernetes clusters: |
| 27 | +`api.md` is *generated*, not hand-written. The regen workflow: |
33 | 28 |
|
34 | | -- [nasty-csi](https://github.com/nasty-project/nasty-csi) -- CSI driver |
35 | | -- [nasty-chart](https://github.com/nasty-project/nasty-chart) -- Helm chart |
36 | | -- [nasty-go](https://github.com/nasty-project/nasty-go) -- Go client library |
37 | | -- [nasty-plugin](https://github.com/nasty-project/nasty-plugin) -- kubectl plugin (`kubectl nasty`) |
| 29 | +1. Checks out [`nasty-project/nasty`](https://github.com/nasty-project/nasty) `main` |
| 30 | +2. Runs `nasty-engine --dump-docs` against the workspace |
| 31 | +3. Copies the resulting `api.md` into this repo |
| 32 | +4. Commits if anything changed (commit message includes the source-repo SHA) |
| 33 | +5. Bundles the matching `openapi.json` + vendored Swagger UI into a static site and deploys it to `nasty-api.pages.dev` |
38 | 34 |
|
39 | | -## Protocols |
| 35 | +Runs once a day at 04:00 UTC and on manual workflow_dispatch. So docs are at most ~24h behind `main`. See [`.github/workflows/regen-api-md.yml`](.github/workflows/regen-api-md.yml) for the implementation. |
40 | 36 |
|
41 | | -| Protocol | Use Case | |
42 | | -|----------|----------| |
43 | | -| **NFS** | Linux/Unix file sharing, Kubernetes ReadWriteMany | |
44 | | -| **SMB** | Windows/macOS file sharing | |
45 | | -| **iSCSI** | Block storage for VMs and databases | |
46 | | -| **NVMe-oF** | High-performance block storage over TCP | |
| 37 | +Spotted drift? File an issue or PR against [`nasty-project/nasty`](https://github.com/nasty-project/nasty) — the registry lives in the engine, this repo just publishes. |
47 | 38 |
|
48 | 39 | ## License |
49 | 40 |
|
|
0 commit comments