- Implementiere eine Überprüfung in den Skripten `install.sh` und `update_config.sh`, um sicherzustellen, dass die Konfigurationsdatei an dem richtigen Ort liegt. Falls nicht, wird die Datei verschoben und die Berechtigungen sowie der Eigentümer entsprechend angepasst.
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
yourchatBenutzer - 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
-
Repository klonen/übertragen:
# Auf dem Ubuntu Server git clone <your-repo-url> cd YourChat -
Vollständiges Deployment:
chmod +x deploy/*.sh ./deploy/deploy.sh -
Service starten:
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.*: Datenbankverbindungrooms: Vordefinierte Chat-Räume
Konfiguration bearbeiten:
sudo nano /opt/yourchat/config/chatconfig.json
Service-Verwaltung
# 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:
sudo ufw allow 1235/tcp
Troubleshooting
Service startet nicht
# 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
# Prüfen welcher Prozess den Port verwendet
sudo netstat -tlnp | grep 1235
# Port in Konfiguration ändern
sudo nano /opt/yourchat/config/chatconfig.json
Berechtigungsprobleme
# 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
# Konfiguration
sudo cp /opt/yourchat/config/chatconfig.json /backup/chatconfig.json.backup
# Datenbank (falls lokal)
sudo pg_dump yourchat > /backup/database.backup
Wiederherstellung
# 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:
# Code aktualisieren
git pull
# Anwendung updaten
./deploy/update.sh
Sicherheit
- Die Anwendung läuft als dedizierter
yourchatBenutzer - Konfigurationsdateien haben restriktive Berechtigungen
- Service startet nicht automatisch nach Reboot (kann mit
systemctl enableaktiviert werden) - Logs werden über systemd journal verwaltet