jax-daemon
CLI and daemon for end-to-end encrypted P2P storage buckets.
Installation
Quick Start
# Initialize configuration
# Start the daemon
# Create a bucket
# Add files
# List contents
Commands
Global Options
)
)
init
Initialize a new jax configuration directory.
Creates ~/.jax/ with identity keypair and local database.
daemon
Start the background service with HTTP API, P2P networking, and web UI.
daemon --gateway-only
Start a minimal gateway service for content serving only (no UI, no API).
# Or with full daemon + gateway on separate port
The gateway provides:
- P2P peer syncing (mirror role)
/gw/:bucket_id/*pathfor serving published bucket content with HTML file explorer/_status/livez,/_status/readyz,/_status/identityhealth endpoints- Content negotiation (
Accept: application/jsonfor JSON responses) ?download=truequery param for raw file downloads
Use --gateway-only for lightweight deployments when you only need content serving without the full daemon features.
version
Display version information.
Bucket Commands
create
list
add
# Examples
ls
cat
share
# Roles: owner (full access), mirror (read after publish)
clone
sync
HTTP API
When the daemon is running, it exposes a REST API at http://localhost:3000:
Health
GET /health/live
GET /health/ready
GET /health/version
Bucket API (v0)
POST /api/v0/bucket/create
GET /api/v0/bucket/list
POST /api/v0/bucket/:id/add
GET /api/v0/bucket/:id/ls
GET /api/v0/bucket/:id/cat
DELETE /api/v0/bucket/:id/delete
POST /api/v0/bucket/:id/mkdir
POST /api/v0/bucket/:id/mv
POST /api/v0/bucket/:id/share
POST /api/v0/bucket/:id/publish
PUT /api/v0/bucket/:id/rename
GET /api/v0/bucket/:id/export
Web UI
The daemon serves a web interface with file explorer, viewer, editor, history, and peer management.
Gateway
Serves published bucket content over HTTP at /gw/:bucket_id/*path.
Via daemon + gateway: Run jax daemon --gateway to enable gateway on separate port alongside UI and API.
Via gateway-only: Run jax daemon --gateway-only for standalone gateway (no UI/API).
# Access content (HTML file explorer)
# Access content (JSON)
# Download raw file
Features HTML file explorer, content negotiation, URL rewriting for relative links, and automatic index file serving.
Configuration
Default location: ~/.jax/
~/.jax/
├── identity.key # Ed25519 private key
├── database.sqlite # Local metadata
└── blobs/ # Content-addressed storage
Environment Variables
RUST_LOG=debug # Debug logging
RUST_BACKTRACE=1 # Backtraces on panic
License
MIT