Sign inSign up

myferr/deo

By myferr

•Updated about 1 year ago

Go-based open source document-oriented JSON database

Image
Developer tools
Databases & storage
1

434

myferr/deo repository overview

Project Logo
⁠A lightweight, Go-based open source document-oriented JSON database.

deo (/'dioh/⁠, pronounced dee-oh) is a Go-based, open source document-oriented database that stores data as msgpack-compressed JSON files. It’s entirely accessed through a RESTful API, making it simple to integrate and easy to deploy as a single binary.


⁠cURL Examples

⁠Create a document
curl -X POST http://localhost:6741/api/dbs/my_db/collections/my_collection/documents \
  -H "Content-Type: application/json" \
  -d '{"name": "John Doe", "age": 30}'
⁠Read a document
curl http://localhost:6741/api/dbs/my_db/collections/my_collection/documents/<document_id>
⁠Update a document
curl -X PUT http://localhost:6741/api/dbs/my_db/collections/my_collection/documents/<document_id> \
  -H "Content-Type: application/json" \
  -d '{"name": "John Doe", "age": 31}'
⁠Delete a document
curl -X DELETE http://localhost:6741/api/dbs/my_db/collections/my_collection/documents/<document_id>

⁠Architecture

⁠Storage Layout
$HOME/.deo/{database_name}/{collection_name}/*.msgpack
│      │              │                   │
│      │              │                   └── Documents (*.msgpack)
│      │              └── Collection
│      └── Deo Database
└── User Home Directory
⁠RESTful API Structure
localhost:6741   /api   /dbs   /{database_name}   /collections   /{collection_name}   /documents
│                │      │      │                  │              │                    │
│                │      │      │                  │              │                    └── Documents endpoint
│                │      │      │                  │              └── Collection name slug
│                │      │      │                  └── Collections endpoint
│                │      │      └── Database name slug
│                │      └── Database endpoint
│                └── API root
└── Hostname + Port

⁠Using Docker

Images:

Tags⁠

⁠Command line

To run Deo in a Docker container, use the following command:

docker run -d -p 6741:6741 --name deo ghcr.io/myferr/deo:latest

Tip

`myferr/deo:latest` may not exist, so either don't specify a tag or use `ghcr.io/myferr/deo:latest`
⁠Compose

To run Deo in a Docker Compose setup, use the following configuration:

services:
  deo:
    image: ghcr.io/myferr/deo:latest
    ports:
      - "6741:6741"

and then start the container:

docker-compose up -dv

⁠Studio

deo has a "studio" web UI to manage databases, collections, and documents which is useful for testing. Accessible at http://localhost:6741/studio⁠

⁠Demonstration

https://github.com/user-attachments/assets/bf61fd84-8498-4ca6-9376-10ef5dc9d32c⁠

Tag summary

Content type

Image

Digest

sha256:ed0427db1…

Size

17.4 MB

Last updated

about 1 year ago

docker pull myferr/deo