taskmanager/README.Docker.md
2025-11-12 17:16:01 +01:00

3.6 KiB

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

cd taskmanager

2. Mit Docker Compose starten

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:

WICHTIG: Ändere das Passwort nach dem ersten Login!

Logs anzeigen

# 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

docker-compose down

Container stoppen und Daten löschen

ACHTUNG: Löscht alle Daten in der Datenbank!

docker-compose down -v

Container neu bauen

Falls du Änderungen am Code gemacht hast:

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:

ports:
  - "3001:3000"  # Nutze Port 3001 statt 3000

Port 5432 bereits belegt

Falls du bereits eine PostgreSQL-Instanz laufen hast:

ports:
  - "5433:5432"  # Nutze Port 5433 statt 5432

Migration schlägt fehl

# Container neu starten
docker-compose restart app

# Logs prüfen
docker-compose logs app

Admin-User wurde nicht erstellt

# Seeding manuell ausführen
docker-compose exec app npx prisma db seed

Manuelle Befehle

# 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