You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs(installation): add prebuilt binary install path and fix Docker volume mount
Add a prebuilt binary section to the installation page covering Linux
x64/arm64 tarballs, systemd unit setup, and GitHub CLI one-liner. Update
the quickstart to show the binary option first with Docker as the
macOS/Windows alternative.
Correct the Docker data volume mount path from /data to /var/lib/nodedb
across all docker run examples, the Compose snippet, and the environment
variable reference table. Update data_dir default to reflect the
per-install-method values (~/.nodedb/data for binary, /var/lib/nodedb
for Docker).
description: Build NodeDB from source. Requires Rust 1.94+ and Linux with io_uring support.
3
+
description: Install NodeDB via prebuilt binary, Docker, or from source. Linux kernel 5.1+ required.
4
4
---
5
5
6
6
# Installation
7
7
8
-
NodeDB requires Linux kernel 5.1+ (for io_uring) and Rust 1.94+.
8
+
NodeDB requires Linux kernel 5.1+ (for io_uring), regardless of how you install it.
9
+
10
+
There are three ways to install NodeDB:
11
+
12
+
1. [Prebuilt binary](#prebuilt-binary-linux) — **recommended on Linux.** Direct kernel access to io_uring, no virtualization overhead, best raw performance.
13
+
2. [Docker](/docs/introduction/docker) — **recommended on macOS / Windows / WSL2**, or when you want a one-command setup with zero host configuration.
14
+
3. [Build from source](#build-from-source) — for development or custom features.
15
+
16
+
All three share the same [configuration](#configuration) and connection paths described below.
17
+
18
+
## Prebuilt binary (Linux)
19
+
20
+
Each tagged release ships a static `nodedb` tarball on GitHub for `linux-x64` and `linux-arm64`. macOS and Windows users should use [Docker](/docs/introduction/docker) until those targets ship.
Then `sudo systemctl enable --now nodedb`. The user/group must be able to read the config file and write `data_dir`.
77
+
78
+
For a specific version or to browse changelogs, see the release page: <https://github.com/NodeDB-Lab/nodedb/releases>. The SQL surface is still pre-1.0 and changes between tags, so pin a version in production.
79
+
80
+
## Docker
81
+
82
+
See [Docker](/docs/introduction/docker) for the full Compose and `docker run` setup. The right choice on macOS, Windows, or any host where you don't want to manage a binary directly.
# Run tests (use nextest — the cluster integration tests rely on
96
+
# the test groups defined in .config/nextest.toml and will hang
97
+
# under plain `cargo test`)
98
+
cargo install cargo-nextest --locked # one-time
99
+
cargo nextest run --all-features
21
100
```
22
101
23
102
The build produces two binaries:
24
103
25
104
- `target/release/nodedb` — the database server
26
105
- `target/release/ndb` — the terminal client (TUI with syntax highlighting, tab completion, history search)
27
106
28
-
## Start the Server
107
+
Start the server:
29
108
30
109
```bash
31
110
./target/release/nodedb
111
+
112
+
# Or with a config file
113
+
./target/release/nodedb --config nodedb.toml
32
114
```
33
115
34
-
Default output:
116
+
Default startup output:
35
117
36
118
```
37
119
2026-01-01T00:00:00Z INFO nodedb: Starting NodeDB
@@ -43,7 +125,12 @@ Default output:
43
125
44
126
## Configuration
45
127
46
-
All protocols share one bind address. Env vars take precedence over the TOML file.
128
+
This section applies to **every** install method — prebuilt binary, Docker, and source builds all read the same TOML schema and respond to the same environment variables. Pick whichever is convenient:
129
+
130
+
- **TOML file** — pass `--config /path/to/nodedb.toml` on the command line. Best for production / systemd / pre-baked images.
131
+
- **Environment variables** — prefix `NODEDB_*`. Best for Docker (`-e`), Compose (`environment:`), and Kubernetes. Env vars **override** values from the TOML file when both are set.
132
+
133
+
All protocols share one bind address (`host`); only the port differs per protocol.
47
134
48
135
```toml
49
136
# nodedb.toml
@@ -63,24 +150,24 @@ resp = 6381 # Optional: set to enable
- **OS**: Linux (kernel 5.1+ for io_uring) — required for the binary and source builds; Docker users can run on any host that supports a Linux container with io_uring.
0 commit comments