MDDB Quick Start Guide

Installation

Prerequisites

  • Go 1.26 or later
  • Make (optional)

Build from Source

git clone <repository-url>
cd mddb

make build

cd services/mddbd
go build -o mddbd .

Running the Server

Using Make

make run

make install-dev-tools
make dev

make run-prod

Manual Start

cd services/mddbd

./mddbd

MDDB_ADDR=":8080" MDDB_MODE="wr" MDDB_PATH="data.db" ./mddbd

First Steps

1. Add Your First Document

curl -X POST http://localhost:11023/v1/add \
  -H 'Content-Type: application/json' \
  -d '{
    "collection": "blog",
    "key": "hello-world",
    "lang": "en_US",
    "meta": {
      "category": ["blog"],
      "author": ["Your Name"]
    },
    "contentMd": "# Hello World\n\nThis is my first document in MDDB!"
  }'

2. Retrieve the Document

curl -X POST http://localhost:11023/v1/get \
  -H 'Content-Type: application/json' \
  -d '{
    "collection": "blog",
    "key": "hello-world",
    "lang": "en_US"
  }'

3. Search Documents

curl -X POST http://localhost:11023/v1/search \
  -H 'Content-Type: application/json' \
  -d '{
    "collection": "blog",
    "limit": 10
  }'

4. Create a Backup

curl "http://localhost:11023/v1/backup?to=my-backup.db"

Common Use Cases

Blog/CMS Backend

curl -X POST http://localhost:11023/v1/add \
  -H 'Content-Type: application/json' \
  -d '{
    "collection": "posts",
    "key": "my-first-post",
    "lang": "en_US",
    "meta": {
      "category": ["tech"],
      "tags": ["golang", "database"],
      "status": ["published"],
      "publishDate": ["2024-01-15"]
    },
    "contentMd": "# My First Post\n\nContent here..."
  }'

curl -X POST http://localhost:11023/v1/search \
  -H 'Content-Type: application/json' \
  -d '{
    "collection": "posts",
    "filterMeta": {"status": ["published"]},
    "sort": "updatedAt",
    "asc": false
  }'

Documentation System

curl -X POST http://localhost:11023/v1/add \
  -H 'Content-Type: application/json' \
  -d '{
    "collection": "docs",
    "key": "getting-started",
    "lang": "en_US",
    "meta": {
      "section": ["introduction"],
      "version": ["1.0"]
    },
    "contentMd": "# Getting Started\n\nWelcome to our documentation..."
  }'

Multi-language Content

curl -X POST http://localhost:11023/v1/add \
  -H 'Content-Type: application/json' \
  -d '{
    "collection": "pages",
    "key": "about",
    "lang": "en_US",
    "meta": {"type": ["page"]},
    "contentMd": "# About Us\n\nWe are..."
  }'

curl -X POST http://localhost:11023/v1/add \
  -H 'Content-Type: application/json' \
  -d '{
    "collection": "pages",
    "key": "about",
    "lang": "pl_PL",
    "meta": {"type": ["page"]},
    "contentMd": "# O Nas\n\nJesteśmy..."
  }'

Configuration Examples

Read-Only Mode (for read replicas)

MDDB_MODE="read" MDDB_ADDR=":11024" ./mddbd

Custom Port and Database Path

MDDB_ADDR=":8080" MDDB_PATH="/data/mddb.db" ./mddbd

Testing the Installation

make test

make test-coverage

make fmt

make lint

Next Steps

Troubleshooting

Port Already in Use

lsof -i :11023

MDDB_ADDR=":11024" ./mddbd

Database Locked

ps aux | grep mddbd

rm mddb.db-lock

Permission Denied

chmod +x mddbd

ls -la mddb.db

Getting Help