Reference
Configuration
Web, mobile, and Storage Node configuration.
For the Relay and deployment unit, see Self-hosting → Configuration.
Web client (apps/web/.env.local)
| Variable | Scope | Purpose |
|---|---|---|
RELAY_URL | server | Internal Relay base URL for route handlers (default http://localhost:8080) |
PUBLIC_RELAY_URL | server | Public origin shown in the pairing command; required for “+ Add Storage Node” |
NEXT_PUBLIC_RELAY_URL | browser | Relay WS origin; leave unset in single-origin deploys |
NEXT_PUBLIC_VAPID_PUBLIC_KEY | browser | VAPID public key for browser push; must match the Relay |
NEXT_PUBLIC_SHARD_SIZE_BYTES | browser (build) | Build-time default shard size (clamped) |
Mobile client
The Relay URL is entered at runtime on first launch and stored in the device
keychain, so it is not an environment variable. It can be changed under
Settings → Server; changing it signs the device out. Remote URLs must use
https://; cleartext is allowed only for loopback and the Android emulator
alias 10.0.2.2.
The mobile .env only carries optional build-time values:
| Variable | Purpose |
|---|---|
EXPO_PUBLIC_EAS_PROJECT_ID | EAS project id for Expo push tokens; unset disables push |
Storage Node
Environment variables:
| Variable | Purpose |
|---|---|
NODUS_DATA_DIR | Data directory (tilde-expanded) |
NODUS_RELAY_URL | Relay endpoint fallback |
NODUS_PAIRING_CODE | Pairing code for automation |
Files:
| Path | Contents |
|---|---|
~/.nodus/config.toml | data_dir, and relay_url after a successful pairing |
~/.nodus/identity/node_private_key | Raw 32-byte Ed25519 seed (mode 0600) |
~/.nodus/identity/node_id | Hex-encoded Ed25519 public key (the stable node_id) |
~/.nodus/migration.json | Journal for an interrupted data-dir move |
<data-dir>/nodus.db | SQLite catalogue (WAL) |
<data-dir>/objects/ | Content-addressed encrypted shards |
<data-dir>/temp/ | In-progress atomic writes |