140 lines
3.2 KiB
Markdown
140 lines
3.2 KiB
Markdown
# OpenCRM Docker Deployment
|
|
|
|
## Schnellstart
|
|
|
|
1. **Umgebungsvariablen konfigurieren:**
|
|
```bash
|
|
cd docker
|
|
cp .env.example .env
|
|
nano .env # Sichere Werte setzen
|
|
```
|
|
|
|
2. **Container starten (erster Start mit RUN_SEED=true):**
|
|
```bash
|
|
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:**
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# Starten
|
|
docker compose up -d
|
|
|
|
# Stoppen
|
|
docker compose down
|
|
|
|
# Logs anzeigen
|
|
docker compose logs -f app
|
|
|
|
# Neustart
|
|
docker compose restart app
|
|
```
|
|
|
|
### Datenbank
|
|
```bash
|
|
# 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
|
|
```bash
|
|
# Backup-Verzeichnis ist unter /app/backups gemountet
|
|
# Backups werden über die Anwendung erstellt/wiederhergestellt
|
|
```
|
|
|
|
### Update
|
|
```bash
|
|
# 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
|
|
```bash
|
|
docker compose logs app
|
|
```
|
|
|
|
### Datenbank-Verbindung fehlgeschlagen
|
|
```bash
|
|
# Warten bis MariaDB bereit ist
|
|
docker compose logs db
|
|
```
|
|
|
|
### SSL-Zertifikat Probleme
|
|
```bash
|
|
docker compose logs caddy
|
|
# Caddy-Daten zurücksetzen
|
|
docker compose down
|
|
docker volume rm opencrm_caddy_data opencrm_caddy_config
|
|
docker compose up -d
|
|
```
|