From 0f5b04a70483c5cb425d4f224626b200c48917d9 Mon Sep 17 00:00:00 2001 From: fds2610 Date: Wed, 25 Mar 2026 13:31:34 +0100 Subject: [PATCH] added systemd service --- activate.sh | 51 ++++++++++++++++++++++++++++++++++++++++++++++ steuerkram.service | 16 +++++++++++++++ 2 files changed, 67 insertions(+) create mode 100755 activate.sh create mode 100644 steuerkram.service diff --git a/activate.sh b/activate.sh new file mode 100755 index 0000000..9930150 --- /dev/null +++ b/activate.sh @@ -0,0 +1,51 @@ +#!/usr/bin/env bash +set -euo pipefail + +SERVICE_NAME="steuerkram" +SERVICE_FILE="$(cd "$(dirname "$0")" && pwd)/steuerkram.service" +INSTALL_PATH="/etc/systemd/system/${SERVICE_NAME}.service" + +# Berechtigungen prüfen +if [[ $EUID -ne 0 ]]; then + echo "Fehler: Dieses Skript benötigt Root-Rechte." + echo "Bitte ausführen mit: sudo $0" + exit 1 +fi + +# Service-Datei prüfen +if [[ ! -f "$SERVICE_FILE" ]]; then + echo "Fehler: Service-Datei nicht gefunden: $SERVICE_FILE" + exit 1 +fi + +# Abhängigkeiten prüfen +if ! command -v docker &>/dev/null; then + echo "Fehler: docker ist nicht installiert oder nicht im PATH." + exit 1 +fi + +if ! docker compose version &>/dev/null; then + echo "Fehler: 'docker compose' (Plugin) ist nicht verfügbar." + exit 1 +fi + +# Docker-Daemon aktivieren +echo "Aktiviere docker.service ..." +systemctl enable docker +systemctl start docker + +# Service-Datei installieren +echo "Installiere ${SERVICE_NAME}.service nach ${INSTALL_PATH} ..." +cp "$SERVICE_FILE" "$INSTALL_PATH" +chmod 644 "$INSTALL_PATH" + +# Systemd neu laden und Service aktivieren +echo "Lade systemd-Konfiguration neu ..." +systemctl daemon-reload + +echo "Aktiviere und starte ${SERVICE_NAME}.service ..." +systemctl enable --now "$SERVICE_NAME" + +echo "" +echo "Fertig. Status:" +systemctl status "$SERVICE_NAME" --no-pager diff --git a/steuerkram.service b/steuerkram.service new file mode 100644 index 0000000..596d9ce --- /dev/null +++ b/steuerkram.service @@ -0,0 +1,16 @@ +[Unit] +Description=Steuerkram – Belegverwaltung +Documentation=https://github.com/Steuerkram/Steuerkram +Requires=docker.service +After=docker.service network-online.target + +[Service] +Type=simple +WorkingDirectory=/home/fds/projects/Steuerkram +ExecStart=/usr/bin/docker compose up --remove-orphans +ExecStop=/usr/bin/docker compose down +Restart=on-failure +RestartSec=10s + +[Install] +WantedBy=multi-user.target