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