Dieser Commit ist enthalten in:
Claude Project Manager
2025-12-28 21:36:45 +00:00
Commit ab1e5be9a9
146 geänderte Dateien mit 65525 neuen und 0 gelöschten Zeilen

398
SERVER_SETUP_ANLEITUNG.md Normale Datei
Datei anzeigen

@ -0,0 +1,398 @@
# Server-Setup Anleitung für TaskMate
Diese Anleitung erklärt Schritt für Schritt, wie Sie TaskMate auf Ihrem Linux-Server installieren.
---
## Voraussetzungen
- Ein Linux-Server (Ubuntu 20.04/22.04 oder Debian empfohlen)
- SSH-Zugang zu Ihrem Server
- Root-Rechte oder sudo-Berechtigungen
---
## Schritt 1: Mit dem Server verbinden
Öffnen Sie ein Terminal (Windows: PowerShell oder CMD) und verbinden Sie sich per SSH:
```bash
ssh benutzername@ihre-server-ip
```
Ersetzen Sie `benutzername` mit Ihrem Benutzernamen und `ihre-server-ip` mit der IP-Adresse Ihres Servers.
---
## Schritt 2: System aktualisieren
```bash
sudo apt update
sudo apt upgrade -y
```
---
## Schritt 3: Docker installieren
### 3.1 Erforderliche Pakete installieren
```bash
sudo apt install -y ca-certificates curl gnupg lsb-release
```
### 3.2 Docker GPG-Schlüssel hinzufügen
```bash
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
```
### 3.3 Docker-Repository hinzufügen
Für Ubuntu:
```bash
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
```
Für Debian:
```bash
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
```
### 3.4 Docker installieren
```bash
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
```
### 3.5 Docker für Ihren Benutzer aktivieren
```bash
sudo usermod -aG docker $USER
```
**Wichtig:** Melden Sie sich ab und wieder an, damit diese Änderung wirksam wird:
```bash
exit
```
Dann erneut verbinden mit SSH.
### 3.6 Docker testen
```bash
docker --version
docker compose version
```
---
## Schritt 4: Projektdateien auf den Server übertragen
### Option A: Mit SCP (vom lokalen Computer)
Öffnen Sie ein **neues** Terminal auf Ihrem lokalen Computer:
```bash
scp -r C:\Users\hendr\Desktop\IntelSight\Projektablage\TaskMate benutzername@ihre-server-ip:~/
```
### Option B: Mit Git (falls vorhanden)
Falls Sie die Dateien in einem Git-Repository haben:
```bash
git clone ihr-repository-url ~/TaskMate
```
### Option C: Mit FileZilla (grafisch)
1. Laden Sie FileZilla herunter: https://filezilla-project.org/
2. Verbinden Sie sich:
- Host: `sftp://ihre-server-ip`
- Benutzername: Ihr Benutzername
- Passwort: Ihr Passwort
- Port: 22
3. Ziehen Sie den Ordner `TaskMate` in Ihr Home-Verzeichnis
---
## Schritt 5: Umgebungsvariablen konfigurieren
Wechseln Sie in das Projektverzeichnis:
```bash
cd ~/TaskMate
```
Erstellen Sie die Konfigurationsdatei:
```bash
cp .env.example .env
```
Öffnen Sie die Datei zum Bearbeiten:
```bash
nano .env
```
Ändern Sie folgende Werte:
```env
# WICHTIG: Ändern Sie diese Werte!
JWT_SECRET=IhrGeheimesPasswort123!
SESSION_SECRET=EinAnderesGeheimesPasswort456!
# Optional: Port ändern (Standard: 3000)
PORT=3000
```
**Tipp für sichere Passwörter:**
```bash
openssl rand -base64 32
```
Kopieren Sie diese generierten Passwörter in die .env-Datei.
Speichern mit: `Ctrl + O`, `Enter`, `Ctrl + X`
---
## Schritt 6: Anwendung starten
### Erster Start (dauert einige Minuten)
```bash
docker compose up -d
```
Die `-d` Option startet die Container im Hintergrund.
### Status prüfen
```bash
docker compose ps
```
Sie sollten sehen, dass der Container "running" ist.
### Logs anzeigen
```bash
docker compose logs -f
```
Mit `Ctrl + C` können Sie die Logs beenden.
---
## Schritt 7: Firewall konfigurieren (falls aktiv)
```bash
sudo ufw allow 3000/tcp
sudo ufw status
```
---
## Schritt 8: Anwendung aufrufen
Öffnen Sie in Ihrem Browser:
```
http://ihre-server-ip:3000
```
### Erste Anmeldung
- Benutzername: `admin`
- Passwort: `admin123`
**WICHTIG:** Ändern Sie das Passwort sofort nach der ersten Anmeldung!
---
## Nützliche Befehle
### Anwendung stoppen
```bash
docker compose stop
```
### Anwendung neu starten
```bash
docker compose restart
```
### Anwendung komplett beenden und entfernen
```bash
docker compose down
```
### Logs anzeigen
```bash
docker compose logs -f
```
### Container-Status prüfen
```bash
docker compose ps
```
### Anwendung aktualisieren
Falls Sie Änderungen am Code gemacht haben:
```bash
docker compose down
docker compose build --no-cache
docker compose up -d
```
---
## Automatischer Start beim Serverstart
Um die Anwendung automatisch zu starten, wenn der Server neu startet:
```bash
sudo systemctl enable docker
```
Docker Compose startet Container mit `restart: unless-stopped` automatisch.
---
## Backups
Die Datenbank wird automatisch täglich gesichert. Die Backups finden Sie unter:
```
~/TaskMate/backups/
```
### Manuelles Backup erstellen
```bash
cp ~/TaskMate/data/database.sqlite ~/TaskMate/backups/backup_$(date +%Y%m%d).sqlite
```
### Backup wiederherstellen
```bash
docker compose stop
cp ~/TaskMate/backups/backup_DATUM.sqlite ~/TaskMate/data/database.sqlite
docker compose start
```
---
## HTTPS mit SSL-Zertifikat (Optional, aber empfohlen)
Für eine sichere Verbindung empfehlen wir die Einrichtung von HTTPS.
### Option A: Mit Nginx als Reverse Proxy
1. Nginx installieren:
```bash
sudo apt install -y nginx
```
2. Certbot für Let's Encrypt installieren:
```bash
sudo apt install -y certbot python3-certbot-nginx
```
3. Nginx-Konfiguration erstellen:
```bash
sudo nano /etc/nginx/sites-available/taskmate
```
Inhalt:
```nginx
server {
listen 80;
server_name ihre-domain.de;
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cache_bypass $http_upgrade;
}
}
```
4. Konfiguration aktivieren:
```bash
sudo ln -s /etc/nginx/sites-available/taskmate /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
```
5. SSL-Zertifikat erstellen:
```bash
sudo certbot --nginx -d ihre-domain.de
```
Folgen Sie den Anweisungen auf dem Bildschirm.
---
## Fehlerbehebung
### Container startet nicht
1. Prüfen Sie die Logs:
```bash
docker compose logs
```
2. Prüfen Sie, ob Port 3000 bereits verwendet wird:
```bash
sudo lsof -i :3000
```
3. Falls ja, ändern Sie den Port in der `.env`-Datei.
### Verbindung nicht möglich
1. Prüfen Sie die Firewall:
```bash
sudo ufw status
```
2. Prüfen Sie, ob Docker läuft:
```bash
sudo systemctl status docker
```
### Datenbank-Fehler
1. Stoppen Sie die Anwendung:
```bash
docker compose stop
```
2. Prüfen Sie die Datenbankdatei:
```bash
ls -la ~/TaskMate/data/
```
3. Falls beschädigt, stellen Sie ein Backup wieder her (siehe oben).
---
## Unterstützung
Bei Problemen prüfen Sie:
1. Die Logs (`docker compose logs -f`)
2. Ob alle Container laufen (`docker compose ps`)
3. Die Firewall-Einstellungen
4. Die .env-Konfiguration
---
## Sicherheitshinweise
1. **Ändern Sie die Standard-Passwörter** sofort nach der Installation
2. **Halten Sie Docker aktuell**: `sudo apt update && sudo apt upgrade`
3. **Regelmäßige Backups** - Die automatischen Backups prüfen
4. **HTTPS verwenden** für Produktionsumgebungen
5. **Firewall konfigurieren** - Nur notwendige Ports öffnen