managarten/docs/DEPLOYMENT.md
Till JS b1b9bbc269
Some checks are pending
CD Mac Mini / Detect Changes (push) Waiting to run
CD Mac Mini / Deploy (push) Blocked by required conditions
CI / Detect Changes (push) Waiting to run
CI / Validate (push) Waiting to run
CI / Build mana-search (push) Blocked by required conditions
CI / Build mana-sync (push) Blocked by required conditions
CI / Build mana-api-gateway (push) Blocked by required conditions
CI / Build mana-crawler (push) Blocked by required conditions
Docker Validate / Validate Dockerfiles (push) Waiting to run
Docker Validate / Build calendar-web (push) Blocked by required conditions
Docker Validate / Build quotes-web (push) Blocked by required conditions
Docker Validate / Build todo-backend (push) Blocked by required conditions
Docker Validate / Build todo-web (push) Blocked by required conditions
Docker Validate / Build mana-auth (push) Blocked by required conditions
Docker Validate / Build mana-sync (push) Blocked by required conditions
Docker Validate / Build mana-media (push) Blocked by required conditions
Mirror to Forgejo / Push to Forgejo (push) Waiting to run
chore: rename repo mana-monorepo → managarten
Phase-3-Rename des ehemaligen Multi-App-Monorepos zum eigenständigen
Produkt-Repo. Verein heißt mana e.V., Plattform-Domain bleibt mana.how,
apps/mana/ bleibt unverändert — nur der Repo-Container kriegt den
neuen Namen "managarten" (Garten der mana-Apps).

Geändert:
- package.json#name + #description
- README.md (Titel + erster Absatz)
- TROUBLESHOOTING.md
- alle Mac-Mini-Skripte (Pfade ~/projects/mana-monorepo → ~/projects/managarten)
- COMPOSE_PROJECT_NAME-default in scripts/mac-mini/status.sh
- .github/workflows/cd-macmini.yml + mirror-to-forgejo.yml
- apps/docs (astro.config.mjs + content)
- .claude/settings.local.json (Bash-Permission-Pfade)
- alle docs/*.md Pfad-Referenzen
- launchd plists, .env.macmini.example, infrastructure/

Forgejo-Repo + GitHub-Repo bereits via API umbenannt. Lokales
Verzeichnis-Rename + Mac-Mini-Cutover folgen separat.
2026-05-09 01:16:02 +02:00

2.6 KiB

Deployment Guide

Overview

Production runs on a Mac Mini accessible via Cloudflare Tunnel at mana.how.

Push to main → CI builds Docker images → GHCR → Watchtower pulls & restarts
                     (automatic)                    (automatic, ~5 min)

Watchtower automatically checks for new Docker images every 5 minutes and updates running containers.

Quick Reference

Environment Location Domain
Local Dev Your machine localhost
Production Mac Mini mana.how

CI/CD Pipeline

What happens automatically

  1. Push to main triggers CI workflow
  2. CI detects changed services
  3. Docker images are built for changed services
  4. Images are pushed to GitHub Container Registry (ghcr.io)

What happens automatically (Watchtower)

Watchtower runs as a Docker container and:

  1. Checks GHCR for new images every 5 minutes
  2. Pulls updated images
  3. Recreates containers with new images
  4. Cleans up old images

No manual action needed for regular deployments.

Manual Deployment (if needed)

For immediate deployment without waiting for Watchtower:

ssh mana-server "cd ~/projects/managarten && ./scripts/mac-mini/deploy.sh"

Monitoring

# Check service status
ssh mana-server "./scripts/mac-mini/status.sh"

# View logs
ssh mana-server "docker logs -f mana-chat-backend"

# Health check
ssh mana-server "./scripts/mac-mini/health-check.sh"

Services & URLs

Service URL Container
Dashboard https://mana.how mana-web
Auth API https://auth.mana.how mana-auth
Chat https://chat.mana.how chat-web
Chat API https://chat-api.mana.how chat-backend
Todo https://todo.mana.how todo-web
Todo API https://todo-api.mana.how todo-backend
Calendar https://calendar.mana.how calendar-web
Calendar API https://calendar-api.mana.how calendar-backend
Clock https://clock.mana.how clock-web
Clock API https://clock-api.mana.how clock-backend
Contacts https://contacts.mana.how contacts-web
Contacts API https://contacts-api.mana.how contacts-backend

Rollback

ssh mana-server
cd ~/projects/managarten

# Rollback to specific image tag
docker compose -f docker-compose.macmini.yml pull <service>:<tag>
docker compose -f docker-compose.macmini.yml up -d <service>

Detailed Documentation