Files
CRM/MISCHLABS_DEPLOYMENT.md

1.9 KiB

MischLabs Monica Deployment

This repository now acts as the MischLabs deployment repository for Monica CRM. The NAS runs the official Docker image directly instead of building and pushing a custom image through Gitea.

Repository and Image

  • Gitea repository: https://git.mischlabs.de/MrDiderot/CRM.git
  • Runtime image: monica:4-apache
  • NAS path: /volume2/docker/mischcrm
  • Default NAS port: 38090:80
  • Public URL: https://crm.mischlabs.de

Architecture

The NAS pulls Monica directly from Docker Hub. This avoids Cloudflare upload limits for large Docker layers and keeps the setup simple.

  • mischcrm: Monica Apache web container
  • mischcrm_cron: Monica scheduler container using cron.sh
  • mischcrm_db: MariaDB 11

Persistent Docker volumes:

  • mischcrm_monica_storage: Monica storage, OAuth keys, uploads, logs
  • mischcrm_monica_db: MariaDB data

First Start on NAS

cd /volume2/docker/mischcrm
cp .env.mischlabs.example .env

Generate secrets:

openssl rand -base64 32
openssl rand -hex 32

Edit .env:

  • APP_KEY must be base64:<openssl rand -base64 32 output>
  • DB_PASSWORD must be the long random hex password
  • APP_URL must be https://crm.mischlabs.de

Then start:

docker compose pull
docker compose up -d

Check:

docker ps --filter "name=mischcrm" --format "table {{.Names}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}"
docker logs mischcrm --tail=120

Updates

Watchtower updates monica:4-apache directly from Docker Hub.

Manual update:

cd /volume2/docker/mischcrm
git pull --ff-only
docker compose pull
docker compose up -d

Important

Do not commit .env.

Do not delete Docker volumes unless you explicitly want to remove Monica data.

If Monica redirects incorrectly behind Cloudflare, check:

  • APP_URL
  • APP_TRUSTED_PROXIES=*
  • Cloudflare tunnel target port 38090