managarten/docs/DEPLOYMENT.md
Till-JS ac663a6c91 chore: remove staging/Hetzner infra, add Watchtower auto-deploy
- Remove old Hetzner deployment workflows (cd-staging, cd-production)
- Remove staging docker-compose files
- Remove outdated staging/Hetzner documentation
- Add Watchtower to docker-compose.macmini.yml for auto-updates
- Update CLAUDE.md with Mac Mini server access
- Simplify docs/DEPLOYMENT.md for new architecture

Production now runs on Mac Mini with automatic deployments via Watchtower.

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-25 14:01:11 +01: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/manacore-monorepo && ./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 manacore-chat-backend"

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

Services & URLs

Service URL Container
Dashboard https://mana.how manacore-web
Auth API https://auth.mana.how mana-core-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/manacore-monorepo

# 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