Files
Memoh/DEPLOYMENT.md
T
BBQ cedac8dbf6 chore: require config.toml for deployment, update docs (#139)
- docker-compose.yml now defaults to ./config.toml instead of
  conf/app.docker.toml, enforcing explicit configuration for
  production deployments (dev environment still uses conf/ directly)
- Update DEPLOYMENT.md and docs with clear instructions to copy
  config template before starting
- Update config-toml.md: add registry/cni fields, remove obsolete
  [brave] section (search providers are now managed via web UI),
  fix default values
- Add China mainland mirror documentation
2026-02-26 20:20:29 +08:00

2.3 KiB

Memoh Deployment Guide

One-Click Install

curl -fsSL https://memoh.sh | sudo sh

The script prompts for configuration, generates config.toml, and starts all services.

Manual Install

git clone https://github.com/memohai/Memoh.git
cd Memoh
cp conf/app.docker.toml config.toml
nano config.toml   # Change passwords and JWT secret
sudo docker compose up -d

On macOS or if your user is in the docker group, sudo is not required.

Important

: You must create config.toml before starting. docker-compose.yml mounts ./config.toml into the containers — running without it will fail.

Access:

Default credentials: admin / admin123 (change in config.toml)

Prerequisites

  • Docker (with Docker Compose v2)
  • Git

Configuration

config.toml is generated from conf/app.docker.toml and should live in the project root. It is mounted into all containers at startup and is not tracked by git.

Recommended changes for production:

  • admin.password — Admin password
  • auth.jwt_secret — JWT secret (generate with openssl rand -base64 32)
  • postgres.password — Database password (also set POSTGRES_PASSWORD env var)

China Mainland Mirror

Uncomment registry = "memoh.cn" in config.toml under [mcp], then use:

sudo docker compose -f docker-compose.yml -f docker/docker-compose.cn.yml up -d

Common Commands

Prefix with sudo on Linux if your user is not in the docker group.

docker compose up -d          # Start
docker compose down           # Stop
docker compose logs -f        # View logs
docker compose ps             # Status
docker compose pull && docker compose up -d  # Update images

Production

  1. Change all default passwords and secrets
  2. Configure HTTPS (reverse proxy or docker-compose.override.yml with SSL)
  3. Configure firewall
  4. Set resource limits
  5. Regular backups

Troubleshooting

docker compose logs server    # View service logs
docker compose config         # Check configuration
docker compose build --no-cache && docker compose up -d  # Full rebuild

Security Warnings

  • Main service has privileged container access — only run in trusted environments
  • Must change all default passwords and secrets
  • Use HTTPS in production