177 lines
3.6 KiB
Markdown
177 lines
3.6 KiB
Markdown
# Task Manager - Docker Deployment
|
|
|
|
Anleitung zum Starten des Task Managers mit Docker und Docker Compose.
|
|
|
|
## Voraussetzungen
|
|
|
|
- Docker installiert
|
|
- Docker Compose installiert
|
|
|
|
## Schnellstart
|
|
|
|
### 1. Repository klonen / Dateien herunterladen
|
|
|
|
```bash
|
|
cd taskmanager
|
|
```
|
|
|
|
### 2. Mit Docker Compose starten
|
|
|
|
```bash
|
|
docker-compose up -d
|
|
```
|
|
|
|
Dieser Befehl:
|
|
- Erstellt die PostgreSQL Datenbank
|
|
- Baut das Docker-Image der Anwendung
|
|
- Führt automatisch Datenbankmigrationen durch
|
|
- Erstellt einen Admin-Benutzer
|
|
- Startet die Anwendung auf Port 3000
|
|
|
|
### 3. Anwendung öffnen
|
|
|
|
Öffne im Browser: http://localhost:3000
|
|
|
|
## Standard-Login
|
|
|
|
Nach dem ersten Start wurde automatisch ein Admin-Benutzer angelegt:
|
|
|
|
- **Email:** admin@taskmanager.de
|
|
- **Passwort:** admin123
|
|
|
|
**WICHTIG:** Ändere das Passwort nach dem ersten Login!
|
|
|
|
## Logs anzeigen
|
|
|
|
```bash
|
|
# Alle Logs anzeigen
|
|
docker-compose logs -f
|
|
|
|
# Nur App-Logs
|
|
docker-compose logs -f app
|
|
|
|
# Nur Datenbank-Logs
|
|
docker-compose logs -f db
|
|
```
|
|
|
|
## Container stoppen
|
|
|
|
```bash
|
|
docker-compose down
|
|
```
|
|
|
|
## Container stoppen und Daten löschen
|
|
|
|
**ACHTUNG:** Löscht alle Daten in der Datenbank!
|
|
|
|
```bash
|
|
docker-compose down -v
|
|
```
|
|
|
|
## Container neu bauen
|
|
|
|
Falls du Änderungen am Code gemacht hast:
|
|
|
|
```bash
|
|
docker-compose down
|
|
docker-compose build --no-cache
|
|
docker-compose up -d
|
|
```
|
|
|
|
## Umgebungsvariablen
|
|
|
|
Die wichtigsten Umgebungsvariablen sind in der `docker-compose.yml` bereits konfiguriert:
|
|
|
|
- `DATABASE_URL`: Verbindung zur PostgreSQL Datenbank
|
|
- `NEXTAUTH_URL`: URL der Anwendung (für NextAuth)
|
|
- `NEXTAUTH_SECRET`: Secret für NextAuth Session-Verschlüsselung
|
|
|
|
**Für Produktion** solltest du diese Werte ändern:
|
|
- Ein sicheres `NEXTAUTH_SECRET` generieren
|
|
- `NEXTAUTH_URL` auf deine Domain setzen
|
|
- Datenbank-Passwort in `docker-compose.yml` ändern
|
|
|
|
## Datenbank-Verbindung
|
|
|
|
Die PostgreSQL Datenbank läuft auf:
|
|
- **Host:** localhost (von außen) / db (intern)
|
|
- **Port:** 5432
|
|
- **User:** taskmanager
|
|
- **Passwort:** taskmanager123
|
|
- **Datenbank:** taskmanager
|
|
|
|
## Persistente Daten
|
|
|
|
Zwei Docker Volumes werden erstellt:
|
|
- `postgres_data`: PostgreSQL Datenbank
|
|
- `uploads`: Hochgeladene Dateien
|
|
|
|
Diese bleiben auch nach `docker-compose down` erhalten.
|
|
|
|
## Troubleshooting
|
|
|
|
### Port 3000 bereits belegt
|
|
|
|
Ändere in `docker-compose.yml` den Port:
|
|
```yaml
|
|
ports:
|
|
- "3001:3000" # Nutze Port 3001 statt 3000
|
|
```
|
|
|
|
### Port 5432 bereits belegt
|
|
|
|
Falls du bereits eine PostgreSQL-Instanz laufen hast:
|
|
```yaml
|
|
ports:
|
|
- "5433:5432" # Nutze Port 5433 statt 5432
|
|
```
|
|
|
|
### Migration schlägt fehl
|
|
|
|
```bash
|
|
# Container neu starten
|
|
docker-compose restart app
|
|
|
|
# Logs prüfen
|
|
docker-compose logs app
|
|
```
|
|
|
|
### Admin-User wurde nicht erstellt
|
|
|
|
```bash
|
|
# Seeding manuell ausführen
|
|
docker-compose exec app npx prisma db seed
|
|
```
|
|
|
|
## Manuelle Befehle
|
|
|
|
```bash
|
|
# In App-Container einsteigen
|
|
docker-compose exec app sh
|
|
|
|
# Prisma Studio starten (Datenbank-GUI)
|
|
docker-compose exec app npx prisma studio
|
|
|
|
# Migration manuell ausführen
|
|
docker-compose exec app npx prisma migrate deploy
|
|
|
|
# Seeding manuell ausführen
|
|
docker-compose exec app npx prisma db seed
|
|
```
|
|
|
|
## Sicherheitshinweise für Produktion
|
|
|
|
1. **Ändere das NEXTAUTH_SECRET** in `docker-compose.yml`
|
|
2. **Ändere das Datenbank-Passwort** in `docker-compose.yml`
|
|
3. **Ändere das Admin-Passwort** nach dem ersten Login
|
|
4. **Verwende HTTPS** mit einem Reverse Proxy (z.B. Nginx, Traefik)
|
|
5. **Setze NEXTAUTH_URL** auf deine echte Domain
|
|
6. **Verwende Environment-Files** statt hardcodierter Secrets
|
|
|
|
## Support
|
|
|
|
Bei Problemen prüfe:
|
|
1. Docker-Logs: `docker-compose logs -f`
|
|
2. Sind alle Container gestartet? `docker-compose ps`
|
|
3. Ist die Datenbank erreichbar? `docker-compose exec app npx prisma db seed`
|