Installation
The installer is the supported path on Linux and macOS. Windows uses a release archive. Developers build from source.
Install the user service on Linux or macOS
The installer downloads the latest stable release, verifies its SHA-256 checksum, and starts mddb as a user service:
curl -fsSL https://raw.githubusercontent.com/maruel/mddb/main/contrib/install.sh -o /tmp/install-mddb.sh
bash /tmp/install-mddb.shThe installer takes no arguments. It supports amd64 and arm64. It requires curl, tar, install, and sha256sum or shasum. On Linux it also requires a running systemd user manager. mddb itself requires git on PATH.
| Item | Path |
|---|---|
| Executable | ~/.local/bin/mddb |
| Configuration | ~/.config/mddb/config.toml, or $XDG_CONFIG_HOME/mddb/ if set |
| Data | ~/mddb/data |
| Linux service | systemd user unit mddb.service |
| macOS service | launchd agent com.maruel.mddb, logs in ~/Library/Logs/mddb/ |
The installer writes the example config.toml only when no configuration exists. It never changes config.toml, settings.json, or the data directory. If ~/.local/bin is not on your PATH, the installer tells you.
On Linux, a user service stops when you log out. Keep it running on a server with:
loginctl enable-linger "$USER"Updates install automatically
Run the installer again to update immediately. Each run replaces the executable and the service file.
Stable releases also check for updates every day at 04:50 local time, with up to five minutes of random delay. mddb installs the update and restarts gracefully. Set auto_update = "" in config.toml to turn this off. Development, modified, and prerelease builds never update themselves.
Use a release archive on Windows
GitHub Releases publishes mddb_<os>_<arch> archives for linux, darwin, and windows on amd64 and arm64, with a checksums.txt file. Linux and macOS archives are .tar.gz files. Windows archives are .zip files with mddb.exe, LICENSE, and the example config.toml.
On Windows:
- Download the zip for your architecture.
- Extract it into a directory that your account owns.
- Copy
config.tomlto%USERPROFILE%\.config\mddb\config.tomland edit it. - Make sure Git is on
PATH. - Run
mddb.exefrom the directory that should holddata.
mddb resolves the default data directory against the working directory. The installer and the Windows steps do not register a Windows service.
Build from source
With a Go toolchain, install the server:
go install github.com/maruel/mddb/backend/cmd/mddb@latestThe module embeds a prebuilt web app, so this command needs only Go. To build the web app yourself, clone the repository. This path requires Node.js 26 and pnpm 12:
git clone https://github.com/maruel/mddb.git
cd mddb
make buildmake build installs mddb and notion-import into your Go binary directory.
When you start mddb in a terminal and no config.toml exists, a setup wizard asks for the base URL and optional OAuth credentials. It writes config.toml with mode 0600.
Check the installation
mddb -versionOpen http://localhost:8080 and create an account. The first account becomes the server administrator. Next, review the configuration and the service commands.