3.6 KiB
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:
- Email: admin@taskmanager.de
- Passwort: admin123
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 DatenbankNEXTAUTH_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_SECRETgenerieren NEXTAUTH_URLauf 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 Datenbankuploads: 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
- Ändere das NEXTAUTH_SECRET in
docker-compose.yml - Ändere das Datenbank-Passwort in
docker-compose.yml - Ändere das Admin-Passwort nach dem ersten Login
- Verwende HTTPS mit einem Reverse Proxy (z.B. Nginx, Traefik)
- Setze NEXTAUTH_URL auf deine echte Domain
- Verwende Environment-Files statt hardcodierter Secrets
Support
Bei Problemen prüfe:
- Docker-Logs:
docker-compose logs -f - Sind alle Container gestartet?
docker-compose ps - Ist die Datenbank erreichbar?
docker-compose exec app npx prisma db seed