Installation Guide

Complete installation instructions for MDDB on all supported platforms.

Docker (Recommended)

The easiest way to run MDDB is with Docker.

Pull and Run

docker pull tradik/mddb:latest docker run -d \ --name mddb \ -p 11023:11023 \ -p 11024:11024 \ -v mddb-data:/data \ tradik/mddb:latest curl http://localhost:11023/health

Docker Compose

curl -O https://raw.githubusercontent.com/tradik/mddb/main/docker-compose.yml docker-compose up -d docker-compose logs -f docker-compose down

Docker Hub: https://hub.docker.com/r/tradik/mddb


Linux

Ubuntu / Debian

Server:

wget https://github.com/tradik/mddb/releases/latest/download/mddbd-latest-linux-amd64.deb sudo dpkg -i mddbd-latest-linux-amd64.deb sudo systemctl start mddbd
sudo systemctl enable mddbd sudo systemctl status mddbd

Client:

wget https://github.com/tradik/mddb/releases/latest/download/mddb-cli-latest-linux-amd64.deb sudo dpkg -i mddb-cli-latest-linux-amd64.deb mddb-cli --help
man mddb-cli

RHEL / CentOS / Fedora

Server:

wget https://github.com/tradik/mddb/releases/latest/download/mddbd-latest-linux-amd64.rpm sudo rpm -i mddbd-latest-linux-amd64.rpm sudo systemctl start mddbd
sudo systemctl enable mddbd sudo systemctl status mddbd

Client:

wget https://github.com/tradik/mddb/releases/latest/download/mddb-cli-latest-linux-amd64.rpm sudo rpm -i mddb-cli-latest-linux-amd64.rpm mddb-cli --help

Arch Linux (Manual)

wget https://github.com/tradik/mddb/releases/latest/download/mddbd-latest-linux-amd64.tar.gz tar xzf mddbd-latest-linux-amd64.tar.gz sudo mv mddbd-latest-linux-amd64/mddbd /usr/local/bin/
sudo chmod +x /usr/local/bin/mddbd mddbd

systemd Service (Manual Setup)

Create /etc/systemd/system/mddbd.service:

[Unit]
Description=MDDB - Markdown Database Server
After=network.target [Service]
Type=simple
User=mddb
Group=mddb
WorkingDirectory=/var/lib/mddb
ExecStart=/usr/local/bin/mddbd
Restart=on-failure
RestartSec=5s Environment=MDDB_DB_PATH=/var/lib/mddb/mddb.db
Environment=MDDB_HTTP_PORT=11023
Environment=MDDB_GRPC_PORT=11024 [Install]
WantedBy=multi-user.target

Enable and start:

sudo useradd -r -s /bin/false mddb
sudo mkdir -p /var/lib/mddb
sudo chown mddb:mddb /var/lib/mddb sudo systemctl daemon-reload
sudo systemctl enable mddbd
sudo systemctl start mddbd sudo journalctl -u mddbd -f

macOS

Homebrew (Coming Soon)

brew tap tradik/mddb
brew install mddbd mddb-cli mddbd brew services start mddbd

Manual Installation

Intel Mac (amd64):

wget https://github.com/tradik/mddb/releases/latest/download/mddbd-latest-darwin-amd64.tar.gz tar xzf mddbd-latest-darwin-amd64.tar.gz sudo mv mddbd-latest-darwin-amd64/mddbd /usr/local/bin/
sudo chmod +x /usr/local/bin/mddbd mddbd

Apple Silicon (arm64):

wget https://github.com/tradik/mddb/releases/latest/download/mddbd-latest-darwin-arm64.tar.gz tar xzf mddbd-latest-darwin-arm64.tar.gz sudo mv mddbd-latest-darwin-arm64/mddbd /usr/local/bin/
sudo chmod +x /usr/local/bin/mddbd mddbd

Client (CLI):

wget https://github.com/tradik/mddb/releases/latest/download/mddb-cli-latest-darwin-amd64.tar.gz
tar xzf mddb-cli-latest-darwin-amd64.tar.gz
sudo mv mddb-cli-latest-darwin-amd64/mddb-cli /usr/local/bin/ wget https://github.com/tradik/mddb/releases/latest/download/mddb-cli-latest-darwin-arm64.tar.gz
tar xzf mddb-cli-latest-darwin-arm64.tar.gz
sudo mv mddb-cli-latest-darwin-arm64/mddb-cli /usr/local/bin/ mddb-cli --help

FreeBSD

wget https://github.com/tradik/mddb/releases/latest/download/mddbd-latest-freebsd-amd64.tar.gz tar xzf mddbd-latest-freebsd-amd64.tar.gz sudo mv mddbd-latest-freebsd-amd64/mddbd /usr/local/bin/
sudo chmod +x /usr/local/bin/mddbd mddbd

Windows (WSL2)

MDDB works best on Windows with WSL2 (Windows Subsystem for Linux).

Install WSL2

wsl --install

Install MDDB in WSL2

wget https://github.com/tradik/mddb/releases/latest/download/mddbd-latest-linux-amd64.deb
sudo dpkg -i mddbd-latest-linux-amd64.deb
sudo systemctl start mddbd

Access from Windows: http://localhost:11023

See also:MCP Configuration for setting up MDDB MCP on WSL


Build from Source

Prerequisites

  • Go 1.26+ - Download
  • Make - Optional, for Makefile commands
  • Git - For cloning repository

Clone and Build

git clone https://github.com/tradik/mddb.git
cd mddb cd services/mddbd
go build -o mddbd . cd ../mddb-cli
go build -o mddb-cli . cd ../mddbd
./mddbd

Using Makefile

git clone https://github.com/tradik/mddb.git
cd mddb make build make build-cli
make install-all make run make install-dev-tools
make dev make test make fmt make lint

Generate gRPC Code (if modifying proto files)

make install-grpc-tools make generate-proto

Post-Installation

Verify Installation

curl http://localhost:11023/health curl http://localhost:11023/v1/stats mddb-cli stats

Configure

Environment Variables:

Create /etc/mddb/mddb.env:

MDDB_DB_PATH=/var/lib/mddb/mddb.db
MDDB_HTTP_PORT=11023
MDDB_GRPC_PORT=11024
MDDB_GRAPHQL_ENABLED=true
MDDB_EXTREME=true MDDB_EMBEDDING_PROVIDER=openai
MDDB_EMBEDDING_API_KEY=sk-...
MDDB_EMBEDDING_MODEL=text-embedding-3-small
MDDB_EMBEDDING_DIMENSIONS=1536 MDDB_AUTH_ENABLED=true
MDDB_JWT_SECRET=your-secret-key-here

CLI Configuration:

Create ~/.mddb-cli.yaml:

server_url: http://localhost:11023
grpc_address: localhost:11024
api_mode: rest # or graphql
token: ""
api_key: ""

Firewall Rules

sudo ufw allow 11023/tcp comment 'MDDB HTTP API'
sudo ufw allow 11024/tcp comment 'MDDB gRPC API' sudo firewall-cmd --permanent --add-port=11023/tcp
sudo firewall-cmd --permanent --add-port=11024/tcp
sudo firewall-cmd --reload

Upgrade

Docker:

docker pull tradik/mddb:latest
docker-compose down
docker-compose up -d

Debian/Ubuntu:

wget https://github.com/tradik/mddb/releases/latest/download/mddbd-latest-linux-amd64.deb
sudo dpkg -i mddbd-latest-linux-amd64.deb
sudo systemctl restart mddbd

RHEL/CentOS/Fedora:

wget https://github.com/tradik/mddb/releases/latest/download/mddbd-latest-linux-amd64.rpm
sudo rpm -Uvh mddbd-latest-linux-amd64.rpm
sudo systemctl restart mddbd

Manual:

cp /var/lib/mddb/mddb.db /var/lib/mddb/mddb.db.backup wget https://github.com/tradik/mddb/releases/latest/download/mddbd-latest-linux-amd64.tar.gz
tar xzf mddbd-latest-linux-amd64.tar.gz
sudo mv mddbd-latest-linux-amd64/mddbd /usr/local/bin/ sudo systemctl restart mddbd

Troubleshooting

Port Already in Use

sudo lsof -i :11023 export MDDB_HTTP_PORT=12023
mddbd

Permission Denied

ls -l /var/lib/mddb/ sudo chown -R mddb:mddb /var/lib/mddb/

Service Won't Start

sudo journalctl -u mddbd -n 50 --no-pager sudo systemctl status mddbd sudo systemctl restart mddbd

Binary Not Found

echo $PATH export PATH="/usr/local/bin:$PATH"
source ~/.bashrc

Uninstall

Docker:

docker-compose down -v
docker rmi tradik/mddb

Debian/Ubuntu:

sudo systemctl stop mddbd
sudo systemctl disable mddbd
sudo dpkg -r mddbd mddb-cli
sudo rm -rf /var/lib/mddb

RHEL/CentOS/Fedora:

sudo systemctl stop mddbd
sudo systemctl disable mddbd
sudo rpm -e mddbd mddb-cli
sudo rm -rf /var/lib/mddb

Manual:

sudo systemctl stop mddbd
sudo systemctl disable mddbd
sudo rm /usr/local/bin/mddbd
sudo rm /usr/local/bin/mddb-cli
sudo rm -rf /var/lib/mddb
sudo rm /etc/systemd/system/mddbd.service
sudo systemctl daemon-reload

โ† Back to README | Next: Quick Start โ†’