Get started

Free, open source, ready in a minute.

GenesisDB is MIT licensed. No license key, no signup, no event limit. Pick an install method, start the server and commit your first event.

1
Run the server
One static binary or container. The only required setting is an auth token with at least 32 bytes.
2
Pick a client
Use curl, any HTTP client or one of the official SDKs for eight languages.
3
Model your events
Subjects, event types, preconditions and queries. The docs walk you through every concept.
Install

Choose your way in.

Every release publishes a multi-arch image (linux/amd64, linux/arm64) on Docker Hub and GitHub Packages, plus static binaries for Linux and macOS.

docker run --rm --name genesisdb \
  -e GENESISDB_AUTH_TOKEN="$(openssl rand -hex 32)" \
  -p 127.0.0.1:8080:8080 \
  -v genesisdb-data:/app/data \
  genesisdb/genesisdb:latest

# also available as ghcr.io/genesisdb-io/genesisdb:latest
first-events.sh
curl localhost:8080/api/v2/commit \
  -H "Authorization: Bearer $GENESISDB_AUTH_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"events":[{"source":"app","subject":"/customer/1","type":"customer.created","data":{"name":"Bruce"}}]}'

curl localhost:8080/api/v2/fetch \
  -H "Authorization: Bearer $GENESISDB_AUTH_TOKEN" \
  -d '{"subject":"/customer"}'

The server binds to loopback by default, the container to 0.0.0.0. For remote access configure TLS or put a TLS reverse proxy in front, and use separate read and write tokens. Details are in the deployment guide.

SDKs

Official clients.

Source and releases

Code, issues, pull requests and release artifacts with checksums.

Open GitHub
Upgrading from 1.x

Drop-in replacement. Data directories migrate on first start, clients keep working. A backup before upgrading is mandatory.

Upgrade guide
Need a hand?

Open an issue on GitHub or get in touch with us directly.