opencrm/docker
duffyduck 89cf92eaf5 added docker setup 2026-02-08 19:59:49 +01:00
..
.env.example added docker setup 2026-02-08 19:59:49 +01:00
Caddyfile added docker setup 2026-02-08 19:59:49 +01:00
Dockerfile added docker setup 2026-02-08 19:59:49 +01:00
README.md added docker setup 2026-02-08 19:59:49 +01:00
docker-compose.yml added docker setup 2026-02-08 19:59:49 +01:00
entrypoint.sh added docker setup 2026-02-08 19:59:49 +01:00

README.md

OpenCRM Docker Deployment

Schnellstart

  1. Umgebungsvariablen konfigurieren:

    cd docker
    cp .env.example .env
    nano .env  # Sichere Werte setzen
    
  2. Container starten (erster Start mit RUN_SEED=true):

    docker compose up -d
    

    Beim ersten Start wird automatisch:

    • Auf die Datenbank gewartet
    • Migrationen ausgeführt
    • Seed-Daten geladen (wenn RUN_SEED=true)
  3. Nach erfolgreicher Installation:

    # RUN_SEED in .env auf false setzen
    sed -i 's/RUN_SEED=true/RUN_SEED=false/' .env
    
  4. Anwendung aufrufen:

    • Mit Domain: https://your-domain.com
    • Lokal: http://localhost
  5. Login:

    • E-Mail: admin@admin.com
    • Passwort: admin

Architektur

                    ┌─────────────┐
                    │   Caddy     │
                    │  (SSL/TLS)  │
                    │   :80/:443  │
                    └──────┬──────┘
                           │
                    ┌──────▼──────┐
                    │   OpenCRM   │
                    │   (Node.js) │
                    │    :3001    │
                    └──────┬──────┘
                           │
                    ┌──────▼──────┐
                    │   MariaDB   │
                    │    :3306    │
                    └─────────────┘

Befehle

Container verwalten

# Starten
docker compose up -d

# Stoppen
docker compose down

# Logs anzeigen
docker compose logs -f app

# Neustart
docker compose restart app

Datenbank

# Migration ausführen
docker compose exec app npx prisma migrate deploy

# Seed-Daten laden
docker compose exec app npx tsx prisma/seed.ts

# Prisma Studio (Datenbank-UI)
docker compose exec app npx prisma studio

Backup & Restore

# Backup-Verzeichnis ist unter /app/backups gemountet
# Backups werden über die Anwendung erstellt/wiederhergestellt

Update

# Image neu bauen und Container aktualisieren
docker compose build --no-cache
docker compose up -d
# Migrationen werden automatisch beim Start ausgeführt

Volumes

Volume Beschreibung
mariadb_data Datenbank-Dateien
uploads_data Hochgeladene Dokumente
backups_data Backup-Dateien
caddy_data SSL-Zertifikate
caddy_config Caddy-Konfiguration

SSL-Zertifikat

Caddy holt automatisch ein Let's Encrypt Zertifikat wenn:

  • Die Domain in .env korrekt gesetzt ist
  • Port 80 und 443 von außen erreichbar sind
  • DNS auf den Server zeigt

Für lokale Entwicklung mit DOMAIN=localhost wird ein selbstsigniertes Zertifikat verwendet.

Troubleshooting

Container startet nicht

docker compose logs app

Datenbank-Verbindung fehlgeschlagen

# Warten bis MariaDB bereit ist
docker compose logs db

SSL-Zertifikat Probleme

docker compose logs caddy
# Caddy-Daten zurücksetzen
docker compose down
docker volume rm opencrm_caddy_data opencrm_caddy_config
docker compose up -d