Files
singlechat/install-service.sh

75 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
# SingleChat Systemd Service Installation
# Erstellt einen systemd Service für SingleChat
set -e
SERVICE_NAME="singlechat"
SERVICE_FILE="/etc/systemd/system/${SERVICE_NAME}.service"
APP_DIR=$(pwd)
USER=$(whoami)
echo "=========================================="
echo "SingleChat Systemd Service Installation"
echo "=========================================="
# Prüfe ob als root ausgeführt
if [ "$EUID" -ne 0 ]; then
echo "FEHLER: Dieses Skript muss als root ausgeführt werden!"
echo "Bitte führe aus: sudo ./install-service.sh"
exit 1
fi
# Erstelle Service-Datei
echo "Erstelle Service-Datei..."
cat > "$SERVICE_FILE" << EOF
[Unit]
Description=SingleChat Node.js Application
After=network.target
[Service]
Type=simple
User=$USER
WorkingDirectory=$APP_DIR
Environment="NODE_ENV=production"
Environment="PORT=4000"
EnvironmentFile=$APP_DIR/.env
ExecStart=/usr/bin/node server/index.js
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal
SyslogIdentifier=singlechat
[Install]
WantedBy=multi-user.target
EOF
echo "✓ Service-Datei erstellt: $SERVICE_FILE"
# Lade systemd neu
echo "Lade systemd neu..."
systemctl daemon-reload
echo "✓ systemd neu geladen"
# Aktiviere Service
echo "Aktiviere Service..."
systemctl enable $SERVICE_NAME
echo "✓ Service aktiviert"
echo ""
echo "=========================================="
echo "Service-Installation abgeschlossen!"
echo "=========================================="
echo ""
echo "Verfügbare Befehle:"
echo " Start: sudo systemctl start $SERVICE_NAME"
echo " Stop: sudo systemctl stop $SERVICE_NAME"
echo " Status: sudo systemctl status $SERVICE_NAME"
echo " Logs: sudo journalctl -u $SERVICE_NAME -f"
echo ""