███████████ ██████████   ███████████
 ██░░░░░░███ ██░░░░░███  ██░░░░░░░███
 ██     ███ ██     ███  ██       ███
 ██     ███ ██     ███  ██       ███
 ██     ███ ██     ███  ██       ███
 ███████████ ██████████   ███████████
 ░░░░░░░░░░  ░░░░░░░░░   ░░░░░░░░░░░

web3 database · ipfs native · encrypted · self-hosted

1. install

one command. detects your OS, installs Node 20+, Kubo IPFS, PM2, and the ZDB server.

curl -fsSL https://zdb.zexvro.in/install.sh | bash

works on Linux, macOS, and Termux (Android). idempotent — safe to re-run for updates.

what it installs

2. cli commands

commanddescription
zdb upstart IPFS + ZDB daemons
zdb up --infostart and show system info
zdb downstop all services
zdb statuscheck daemon status
zdb infotraffic, storage, memory, peers
zdb logstail daemon logs
zdb installinstall or update ZDB

3. api

ZDB runs on http://localhost:8899 by default. all endpoints return JSON.

health

GET /health
// response
{
  "status": "ok",
  "version": "0.2.1",
  "uptime": 12345
}

create record

POST /v1/db/{collection}
Content-Type: application/json

{
  "name": "zexvro",
  "value": 42
}
// response
{
  "ok": true,
  "id": "a1b2c3d4e5f6",
  "cid": "Qm..."
}

get record

GET /v1/db/{collection}/{id}

// response: the stored JSON object

list records

GET /v1/db/{collection}

// response
{
  "records": [...],
  "total": 100,
  "page": 1
}

update record

PUT /v1/db/{collection}/{id}
Content-Type: application/json

{
  "name": "zexvro",
  "value": 99
}

delete record

DELETE /v1/db/{collection}/{id}

{
  "ok": true,
  "deleted": "a1b2c3d4e5f6"
}

query records

POST /v1/db/{collection}/query
Content-Type: application/json

{
  "where": {
    "field": "status",
    "op": "==",
    "value": "active"
  }
}

4. encryption

all data is AES-256-GCM encrypted before uploading to IPFS. encryption is on by default.

5. ipfs integration

ZDB uses IPFS as its storage and verification layer.

environment variables

variabledefaultdescription
PORT8899server port
IPFS_API_URLhttp://localhost:5001Kubo API endpoint
ZDB_ENCRYPT1enable AES-256-GCM encryption
ZDB_IPFS_ONLY0read data exclusively from IPFS
ADMIN_KEYadmin API authentication key

6. architecture

ZDB is designed as a lean, self-contained daemon. phone = storage/compute/IPFS. laptop = frontend/API.

zero npm dependencies. entire server fits in a single directory.

7. security

8. termux (android)

ZDB runs natively on Android via Termux. no root required.

tip: use Tailscale to connect your phone and laptop. the phone becomes your IPFS node and ZDB server, accessible from anywhere.

9. faq

what is ZDB?

ZDB is a web3-native database. it stores data on IPFS with end-to-end encryption. self-hosted, zero dependencies, runs anywhere Node.js runs.

why IPFS?

content-addressed storage means your data is tamper-proof by design. every write gets a CID — a cryptographic fingerprint of the data. no central authority, no vendor lock-in.

is it really zero dependencies?

yes. the server uses only Node.js built-ins. no npm install needed for the server itself.

can i use it in production?

ZDB is designed for self-hosted, personal, and small-team use. for high-traffic production, consider running multiple IPFS nodes for redundancy.

10. links