Release: v2.3.0

This commit is contained in:
Patrick Asmus
2026-09-06 13:46:50 +02:00
parent b5930459f1
commit 808d34a244
8 changed files with 1766 additions and 8 deletions
+93
View File
@@ -0,0 +1,93 @@
#!/bin/bash
###############################################
# stream-recorder - Installations-Script
# Richtet den systemd-Timer für die
# automatische Zeitplanung ein.
###############################################
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
SERVICE_NAME="stream-recorder"
echo ""
echo "stream-recorder - Installation"
echo "=============================="
echo ""
# Root-Prüfung
if [[ $EUID -ne 0 ]]; then
echo "FEHLER: Dieses Script muss als root ausgeführt werden."
echo " sudo $0"
exit 1
fi
# Prüfe ob systemd vorhanden
if ! command -v systemctl &>/dev/null; then
echo "FEHLER: systemd ist nicht verfügbar."
echo " Dieses Script benötigt systemd für die Zeitplanung."
exit 1
fi
# Prüfe Abhängigkeiten
if ! command -v ffmpeg &>/dev/null; then
echo "ffmpeg nicht gefunden. Installiere ffmpeg..."
apt-get update -qq && apt-get install -y -qq ffmpeg
echo "ffmpeg installiert."
fi
# Hauptscript ausführbar machen
chmod +x "${SCRIPT_DIR}/stream-recorder.sh"
echo "Installationspfad: ${SCRIPT_DIR}"
echo ""
# systemd Service erstellen
cat > "/etc/systemd/system/${SERVICE_NAME}.service" <<EOF
[Unit]
Description=stream-recorder Scheduler
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
ExecStart=${SCRIPT_DIR}/stream-recorder.sh scheduler
KillMode=none
StandardOutput=journal
StandardError=journal
EOF
# systemd Timer erstellen
cat > "/etc/systemd/system/${SERVICE_NAME}.timer" <<EOF
[Unit]
Description=stream-recorder Scheduler Timer
[Timer]
OnBootSec=30
OnCalendar=*-*-* *:*:00
AccuracySec=10
[Install]
WantedBy=timers.target
EOF
# systemd neu laden und Timer aktivieren
systemctl daemon-reload
systemctl enable "${SERVICE_NAME}.timer"
systemctl start "${SERVICE_NAME}.timer"
echo "Installation abgeschlossen!"
echo ""
echo "Status:"
systemctl status "${SERVICE_NAME}.timer" --no-pager 2>/dev/null || true
echo ""
echo "Der Scheduler prüft jetzt jede Minute die Job-Dateien"
echo "und startet/stoppt Aufnahmen automatisch."
echo ""
echo "Nächste Schritte:"
echo " 1. Job-Datei erstellen: cp jobs/templates/example-rtmp.job.dist jobs/mein-stream.job"
echo " 2. Job-Datei bearbeiten: nano jobs/mein-stream.job"
echo " 3. SCHEDULE_ENABLED=true setzen und Zeiten konfigurieren"
echo " 4. Jobs prüfen: ./stream-recorder.sh list"
echo ""
echo "Deinstallation: sudo install/uninstall.sh"
+61
View File
@@ -0,0 +1,61 @@
#!/bin/bash
###############################################
# stream-recorder - Deinstallations-Script
# Entfernt den systemd-Timer und stoppt
# alle laufenden Aufnahmen.
###############################################
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
SERVICE_NAME="stream-recorder"
echo ""
echo "stream-recorder - Deinstallation"
echo "================================="
echo ""
# Root-Prüfung
if [[ $EUID -ne 0 ]]; then
echo "FEHLER: Dieses Script muss als root ausgeführt werden."
echo " sudo $0"
exit 1
fi
# Timer stoppen und deaktivieren
if systemctl is-active --quiet "${SERVICE_NAME}.timer" 2>/dev/null; then
echo "Stoppe Timer..."
systemctl stop "${SERVICE_NAME}.timer"
fi
if systemctl is-enabled --quiet "${SERVICE_NAME}.timer" 2>/dev/null; then
echo "Deaktiviere Timer..."
systemctl disable "${SERVICE_NAME}.timer"
fi
# Service-Dateien entfernen
if [[ -f "/etc/systemd/system/${SERVICE_NAME}.timer" ]]; then
rm -f "/etc/systemd/system/${SERVICE_NAME}.timer"
echo "Timer-Datei entfernt."
fi
if [[ -f "/etc/systemd/system/${SERVICE_NAME}.service" ]]; then
rm -f "/etc/systemd/system/${SERVICE_NAME}.service"
echo "Service-Datei entfernt."
fi
systemctl daemon-reload
# Laufende Aufnahmen stoppen
echo ""
read -rp "Alle laufenden Aufnahmen stoppen? [j/N] " stop_all
if [[ "$stop_all" =~ ^[Jj]$ ]]; then
"${SCRIPT_DIR}/stream-recorder.sh" stop-all 2>/dev/null || true
echo "Aufnahmen gestoppt."
fi
echo ""
echo "Deinstallation abgeschlossen."
echo ""
echo "Hinweis: Die Job-Dateien, Konfiguration und Aufnahmen"
echo " wurden NICHT entfernt."