Files
yourchat/deploy/README.md
Torsten Schulz (local) d92c40748e Implementiere Benutzerverbindungskontrolle und verbessere Nachrichtenverwaltung
- 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.
2025-09-01 15:30:19 +02:00

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