Installation¶
This guide covers all methods for installing m9m.
Requirements¶
- Go 1.21+ (for building from source)
- Docker (optional, for container deployment)
- 64-bit Linux, macOS, or Windows
Installation Methods¶
Package Manager / Installer (Recommended)¶
Install the latest release binary:
Homebrew (macOS/Linux)¶
Go Install (Alternative)¶
The simplest way to install m9m:
This installs the m9m binary to your $GOPATH/bin directory.
Docker (Optional)¶
Run m9m in a container:
# Basic usage
docker run -p 8080:8080 ghcr.io/neul-labs/m9m:latest
# With persistent data
docker run -p 8080:8080 \
-v m9m-data:/app/data \
ghcr.io/neul-labs/m9m:latest
# With custom configuration
docker run -p 8080:8080 \
-v ./config.yaml:/app/config/config.yaml \
-v m9m-data:/app/data \
ghcr.io/neul-labs/m9m:latest
Docker Compose¶
Create a docker-compose.yml:
version: '3.8'
services:
m9m:
image: ghcr.io/neul-labs/m9m:latest
ports:
- "8080:8080"
volumes:
- m9m-data:/app/data
environment:
- M9M_LOG_LEVEL=info
restart: unless-stopped
volumes:
m9m-data:
Run with:
Build from Source¶
Clone and build the project:
# Clone repository
git clone https://github.com/neul-labs/m9m.git
cd m9m
# Install dependencies
make deps
# Build
make build
# The binary is at ./m9m
./m9m version
Binary Downloads¶
Download pre-built binaries from the GitHub Releases page.
Verify Installation¶
Check that m9m is installed correctly:
# Check version
m9m version
# Start the server
m9m serve
# In another terminal, check health
curl http://localhost:8080/health
Data Directories¶
m9m stores data in the following locations by default:
| Platform | Location |
|---|---|
| Linux | ~/.m9m/ |
| macOS | ~/.m9m/ |
| Windows | %USERPROFILE%\.m9m\ |
Directory structure:
~/.m9m/
├── data/
│ ├── m9m.db # Workflow storage (SQLite)
│ └── queue.db # Job queue (SQLite)
├── config/
│ └── config.yaml # Configuration file
└── logs/
└── m9m.log # Log files