Skip to content

Run wabe Disk

Use Linux for JavaScript execution. File operations and the virtual shell can also run on macOS. Build from the wabe Disk repository with the pinned Rust 1.95 toolchain.

From the repository root
cargo build --release --workspace

The build produces target/release/wabe-disk and target/release/wabe-quickjs-worker. Keep the worker beside the server binary. The runtime finds it there by default; WABE_DISK_QJS_WORKER can select another path.

Terminal 1
export WABE_DISK_API_KEY='local-development-key'
./target/release/wabe-disk --data ./.data serve --port 8090
Terminal 2
export WABE_DISK_URL='http://127.0.0.1:8090'
export WABE_DISK_API_KEY='local-development-key'
curl --fail-with-body "$WABE_DISK_URL/health" \
-H "Authorization: Bearer $WABE_DISK_API_KEY"

The listener binds to 127.0.0.1. To expose it remotely, use your own TLS reverse proxy or tunnel and configure a server key. The standalone CLI has no bind-address or built-in TLS flag. It has no browser CORS configuration.

Continue with the quickstart using these connection variables.

Supply your bucket and credentials through the supported AWS environment variables. The following command configures a server; it does not create a bucket:

Terminal window
export AWS_ACCESS_KEY_ID='replace-with-access-key'
export AWS_SECRET_ACCESS_KEY='replace-with-secret-key'
export AWS_DEFAULT_REGION='us-east-1'
export WABE_DISK_API_KEY='replace-with-server-key'
./target/release/wabe-disk \
--bucket your-bucket \
--prefix wabe-disk \
--cache ./.cache \
serve --port 8090

Keep one active server writer for each disk’s storage prefix. Opening the same prefix from another writer fences the previous writer. The standalone server does not implement multi-server routing or writer ownership coordination.

Use Ctrl-C or SIGTERM. The server drains requests and confirms pending writes before closing storage. Slow clients and unavailable storage can delay shutdown. Force-killing a buffered server can lose unpersisted writes.

From the repository root:

Terminal window
npm --prefix apps/docs ci
npm --prefix apps/docs run dev

Open http://127.0.0.1:4323. For a static build, run npm --prefix apps/docs run build; output is written to apps/docs/dist. The site uses Astro and Starlight, with no service credentials embedded in the build.