399 Zeilen
7.4 KiB
Markdown
399 Zeilen
7.4 KiB
Markdown
# 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
|