https://github.com/terminusdb/terminusdb
TerminusDB is a distributed, collaborative database designed for building, sharing, versioning, and reasoning on structured data.
https://github.com/terminusdb/terminusdb
acid cms collaboration database document-database graph-database headless headless-cms immutable knowledge-graphs linked-data nosql open-source opensource revision-control terminusdb
Last synced: about 1 month ago
JSON representation
TerminusDB is a distributed, collaborative database designed for building, sharing, versioning, and reasoning on structured data.
- Host: GitHub
- URL: https://github.com/terminusdb/terminusdb
- Owner: terminusdb
- License: apache-2.0
- Created: 2019-07-23T16:15:27.000Z (almost 6 years ago)
- Default Branch: main
- Last Pushed: 2025-05-06T20:15:45.000Z (about 2 months ago)
- Last Synced: 2025-05-06T20:23:25.898Z (about 2 months ago)
- Topics: acid, cms, collaboration, database, document-database, graph-database, headless, headless-cms, immutable, knowledge-graphs, linked-data, nosql, open-source, opensource, revision-control, terminusdb
- Language: Prolog
- Homepage: https://terminusdb.org
- Size: 13.2 MB
- Stars: 2,928
- Watchers: 38
- Forks: 114
- Open Issues: 25
-
Metadata Files:
- Readme: README.md
- Contributing: docs/CONTRIBUTING.md
- License: LICENSE
- Code of conduct: docs/CODE_OF_CONDUCT.MD
- Security: SECURITY.md
Awesome Lists containing this project
- awesome-distributed-system-projects - terminusdb - distributed database with a collaboration model
- awesome-ccamel - terminusdb/terminusdb - TerminusDB is a distributed, collaborative database designed for building, sharing, versioning, and reasoning on structured data. (Prolog)
- awesome-repositories - terminusdb/terminusdb - TerminusDB is a distributed database with a collaboration model (Prolog)
- awesome-list - terminusdb - intensive applications and knowledge graphs. | terminusdb | 1453 | (Prolog)
- awesome-production-machine-learning - TerminusDB - A graph database management system that stores data like git. (Model, Data and Experiment Management)
- awesome-prolog - TerminuDB - for knowledge graph representation (Database)
- awesome-starred - terminusdb/terminusdb - TerminusDB is a distributed database with a collaboration model (open-source)
README
![]()
---[](https://github.com/terminusdb/terminusdb/actions/workflows/native-build.yml)
[](https://github.com/terminusdb/terminusdb/actions/workflows/docker-amd64-build.yml)
[](https://github.com/terminusdb/terminusdb/actions/workflows/docker-arm64-build.yml)
[](https://github.com/terminusdb/terminusdb/issues)
[](https://opensource.org/licenses/Apache-2.0)## TerminusDB is a distributed database with a collaboration model.
It is designed to be like git, but for data. If you find this project useful, please consider **starring the repo**.
The building blocks of the model are:
- Revision Control: commits for every update
- Diff: differences between commits can be interpreted as patches between states
- Push/Pull/Clone: communicate diffs between nodes using push / pull / clone
- Query: You can query any state of the database at any commit.TerminusDB allows you to link JSON documents in a knowledge graph through a [document API](https://terminusdb.org/docs/document-insertion).
Note that documentation is now maintained at [https://terminusdb.org/docs/](https://terminusdb.org/docs/) and is no longer available at terminusdb.com, which is currently experiencing issues.
### TerminusDB Version 11
[TerminusDB 11](https://github.com/terminusdb/terminusdb/releases/tag/v11.0.0) features a new Rustified storage backend that reduces storage overhead and latency, improves search performance, and simplifies interchange. TerminusDB 11 also comes with some exciting features to make building easier and faster -
- [GraphQL](https://terminusdb.org/docs/graphql-basics) - Use GraphQL as a proper graph query language with deep link discover and path queries
- Added `@unfoldable` document flag to frames - Making data curation easier by unfolding subdocuments within a frame to add all relevant data in one place
- Add `@metadata` to frames - Include additional metadata to document frames including data formatted as Markdown.## Installation Guide
[](https://snapcraft.io/terminusdb)
The easiest way to install TerminusDB as a developer is by using the [Snap](https://snapcraft.io/terminusdb). It does not provide a daemon and is mainly intended for developers that want to try TerminusDB.
For deployments:
1. Add the following to a `.env` file in the source directory:
```shell
# Database administrator's password (required)
TERMINUSDB_ADMIN_PASS=# OpenAI API key (optional)
OPENAI_KEY=# Optional: Number of pages to buffer for the vector database
BUFFER_AMOUNT=120000
```Notes:
* TERMINUSDB_ADMIN_PASS is mandatory and must be set.
* OPENAI_KEY is optional. Without it, AI-based indexing will be disabled. All core document graph database functionality will still work normally.2. `docker compose up`
You should be able to view TerminusDB running by default at `localhost:6363`
> If you're installing TerminusDB on Windows with Docker, our friends at DFRNT wrote this [comprehensive guide](https://dfrnt.com/blog/2023-02-25-run-terminusdb-on-windows-with-docker/).
You can also install TerminusDB from the [Source Code](https://terminusdb.org/docs/install-terminusdb-from-source-code).
## TerminusDB CLI
A simple example creating a person with friends can be created as follows:
```shell
terminusdb db create admin/example1
terminusdb doc insert --graph_type=schema admin/example1 <