- Füge die Methode `removeUserDisconnected` in der ChatRoom-Klasse hinzu, um Benutzer bei Verbindungsabbrüchen zu entfernen und entsprechende Nachrichten zu senden. - Aktualisiere die ChatUser-Klasse, um einen Token-Getter bereitzustellen und die Verbindungsprüfung zu optimieren. - Ändere die Server-Klasse, um die Benutzerverwaltung bei Raumwechseln zu verbessern und Debug-Informationen hinzuzufügen. - Optimiere die Socket-Optionen für eine schnellere Fehlererkennung und verbessere die Handhabung von Anfragen.
198 lines
4.3 KiB
Markdown
198 lines
4.3 KiB
Markdown
# YourChat Deployment Scripts
|
|
|
|
Diese Scripts ermöglichen das einfache Deployment von YourChat auf Ubuntu 22.04 Servern.
|
|
|
|
## Voraussetzungen
|
|
|
|
- Ubuntu 22.04 LTS Server
|
|
- Sudo-Rechte
|
|
- Internetverbindung für Paket-Downloads
|
|
|
|
## Scripts Übersicht
|
|
|
|
### 1. `deploy.sh` - Vollständiges Deployment
|
|
**Verwendung:** `./deploy/deploy.sh`
|
|
|
|
Führt alle Deploy-Schritte automatisch aus:
|
|
- Installation der Abhängigkeiten
|
|
- Bauen der Anwendung
|
|
- Installation als Systemdienst
|
|
- Konfigurations-Setup
|
|
|
|
### 2. `install_dependencies.sh` - Abhängigkeiten installieren
|
|
**Verwendung:** `./deploy/install_dependencies.sh`
|
|
|
|
Installiert alle benötigten Pakete:
|
|
- GCC-13 (als Standard-Compiler)
|
|
- CMake, Build-Tools
|
|
- OpenSSL, jsoncpp, pqxx
|
|
- PostgreSQL (optional)
|
|
|
|
### 3. `build.sh` - Anwendung bauen
|
|
**Verwendung:** `./deploy/build.sh`
|
|
|
|
Baut die Anwendung mit aktiviertem Debug-Flag:
|
|
- Erstellt `build/` Verzeichnis
|
|
- Konfiguriert CMake mit `YC_DEBUG=ON`
|
|
- Kompiliert mit allen verfügbaren CPU-Kernen
|
|
|
|
### 4. `install.sh` - Anwendung installieren
|
|
**Verwendung:** `./deploy/install.sh`
|
|
|
|
Installiert die Anwendung als Systemdienst:
|
|
- Erstellt `/opt/yourchat/` Verzeichnis
|
|
- Kopiert Binaries und Konfiguration
|
|
- Erstellt systemd Service
|
|
- Erstellt `yourchat` Benutzer
|
|
- Aktiviert Service
|
|
|
|
### 5. `update_config.sh` - Konfiguration aktualisieren
|
|
**Verwendung:** `./deploy/update_config.sh`
|
|
|
|
Aktualisiert die Konfiguration sicher:
|
|
- Überschreibt **keine** bestehenden Einträge
|
|
- Ergänzt nur fehlende Konfigurationsoptionen
|
|
- Erstellt automatisch Backups
|
|
- Zeigt Änderungen an
|
|
|
|
### 6. `update.sh` - Anwendung aktualisieren
|
|
**Verwendung:** `./deploy/update.sh`
|
|
|
|
Für zukünftige Updates:
|
|
- Stoppt Service
|
|
- Baut neue Version
|
|
- Aktualisiert Binaries
|
|
- Aktualisiert Konfiguration
|
|
- Startet Service neu
|
|
|
|
## Schnellstart
|
|
|
|
1. **Repository klonen/übertragen:**
|
|
```bash
|
|
# Auf dem Ubuntu Server
|
|
git clone <your-repo-url>
|
|
cd YourChat
|
|
```
|
|
|
|
2. **Vollständiges Deployment:**
|
|
```bash
|
|
chmod +x deploy/*.sh
|
|
./deploy/deploy.sh
|
|
```
|
|
|
|
3. **Service starten:**
|
|
```bash
|
|
sudo systemctl start yourchat
|
|
sudo systemctl status yourchat
|
|
```
|
|
|
|
## Konfiguration
|
|
|
|
Die Konfiguration wird unter `/opt/yourchat/config/chatconfig.json` installiert.
|
|
|
|
**Wichtige Einstellungen:**
|
|
- `server.port`: Port für den Chat-Server (Standard: 1235)
|
|
- `database.*`: Datenbankverbindung
|
|
- `rooms`: Vordefinierte Chat-Räume
|
|
|
|
**Konfiguration bearbeiten:**
|
|
```bash
|
|
sudo nano /opt/yourchat/config/chatconfig.json
|
|
```
|
|
|
|
## Service-Verwaltung
|
|
|
|
```bash
|
|
# Service starten
|
|
sudo systemctl start yourchat
|
|
|
|
# Service stoppen
|
|
sudo systemctl stop yourchat
|
|
|
|
# Service neu starten
|
|
sudo systemctl restart yourchat
|
|
|
|
# Status prüfen
|
|
sudo systemctl status yourchat
|
|
|
|
# Logs anzeigen
|
|
sudo journalctl -u yourchat -f
|
|
|
|
# Service deaktivieren (startet nicht automatisch)
|
|
sudo systemctl disable yourchat
|
|
```
|
|
|
|
## Firewall
|
|
|
|
Falls eine Firewall aktiv ist, den Port freigeben:
|
|
```bash
|
|
sudo ufw allow 1235/tcp
|
|
```
|
|
|
|
## Troubleshooting
|
|
|
|
### Service startet nicht
|
|
```bash
|
|
# Logs prüfen
|
|
sudo journalctl -u yourchat -n 50
|
|
|
|
# Konfiguration prüfen
|
|
sudo cat /opt/yourchat/config/chatconfig.json | python3 -m json.tool
|
|
```
|
|
|
|
### Port bereits belegt
|
|
```bash
|
|
# Prüfen welcher Prozess den Port verwendet
|
|
sudo netstat -tlnp | grep 1235
|
|
|
|
# Port in Konfiguration ändern
|
|
sudo nano /opt/yourchat/config/chatconfig.json
|
|
```
|
|
|
|
### Berechtigungsprobleme
|
|
```bash
|
|
# Berechtigungen korrigieren
|
|
sudo chown -R yourchat:yourchat /opt/yourchat
|
|
sudo chmod 755 /opt/yourchat
|
|
sudo chmod 644 /opt/yourchat/config/chatconfig.json
|
|
```
|
|
|
|
## Backup & Wiederherstellung
|
|
|
|
### Backup erstellen
|
|
```bash
|
|
# Konfiguration
|
|
sudo cp /opt/yourchat/config/chatconfig.json /backup/chatconfig.json.backup
|
|
|
|
# Datenbank (falls lokal)
|
|
sudo pg_dump yourchat > /backup/database.backup
|
|
```
|
|
|
|
### Wiederherstellung
|
|
```bash
|
|
# Konfiguration
|
|
sudo cp /backup/chatconfig.json.backup /opt/yourchat/config/chatconfig.json
|
|
sudo chown yourchat:yourchat /opt/yourchat/config/chatconfig.json
|
|
|
|
# Service neu starten
|
|
sudo systemctl restart yourchat
|
|
```
|
|
|
|
## Updates
|
|
|
|
Für zukünftige Updates:
|
|
```bash
|
|
# Code aktualisieren
|
|
git pull
|
|
|
|
# Anwendung updaten
|
|
./deploy/update.sh
|
|
```
|
|
|
|
## Sicherheit
|
|
|
|
- Die Anwendung läuft als dedizierter `yourchat` Benutzer
|
|
- Konfigurationsdateien haben restriktive Berechtigungen
|
|
- Service startet nicht automatisch nach Reboot (kann mit `systemctl enable` aktiviert werden)
|
|
- Logs werden über systemd journal verwaltet
|