added docker setup
This commit is contained in:
@@ -0,0 +1,139 @@
|
||||
# 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
|
||||
```
|
||||
Reference in New Issue
Block a user