Files
tueit_Transkriptor/install.sh

89 lines
2.9 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SERVICE_NAME="tueit-transcriber"
SERVICE_FILE="$HOME/.config/systemd/user/${SERVICE_NAME}.service"
echo "=== tüit Transkriptor Installer ==="
command -v python3 >/dev/null 2>&1 || { echo "ERROR: python3 not found"; exit 1; }
if ! command -v ollama >/dev/null 2>&1; then
echo "WARNING: ollama not found. Install from https://ollama.com"
echo " Nach der Installation: ollama pull gemma3:12b"
fi
if command -v rocminfo >/dev/null 2>&1; then
echo "ROCm erkannt — GPU-Beschleunigung verfügbar"
else
echo "INFO: ROCm nicht gefunden — Whisper läuft auf der CPU (langsamer)"
echo " Für GPU: sudo pacman -S rocm-hip-sdk"
fi
echo "Python-Abhängigkeiten werden installiert..."
pip install --user -r "$SCRIPT_DIR/requirements.txt"
# ── Netzwerk-Modus abfragen ────────────────────────────────────────────────────
echo ""
echo "Soll die App auch von anderen Geräten im Heimnetz erreichbar sein?"
echo " [1] Nur lokal (Standard, sicherer)"
echo " [2] Im Heimnetz (Windows, Android, andere Linux-Geräte)"
read -r -p "Auswahl [1/2]: " NET_MODE
if [[ "$NET_MODE" == "2" ]]; then
HOST="0.0.0.0"
echo "INFO: App wird auf allen Netzwerk-Interfaces gestartet."
echo " Firewall: sudo ufw allow 8765/tcp"
else
HOST="127.0.0.1"
fi
# Netzwerk-Host in Config schreiben, falls noch nicht vorhanden
CFG_FILE="$HOME/.config/tueit-transcriber/config.toml"
mkdir -p "$(dirname "$CFG_FILE")"
if ! grep -q "\[network\]" "$CFG_FILE" 2>/dev/null; then
printf '\n[network]\nhost = "%s"\n' "$HOST" >> "$CFG_FILE"
echo "Config aktualisiert: $CFG_FILE"
fi
# ── Systemd User Service ───────────────────────────────────────────────────────
mkdir -p "$HOME/.config/systemd/user"
cat > "$SERVICE_FILE" <<EOF
[Unit]
Description=tüit Transkriptor
After=graphical-session.target
[Service]
ExecStart=$(command -v python3) ${SCRIPT_DIR}/main.py
Restart=on-failure
RestartSec=5
Environment=DISPLAY=:0
Environment=DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u)/bus
[Install]
WantedBy=default.target
EOF
systemctl --user daemon-reload
systemctl --user enable "$SERVICE_NAME"
systemctl --user start "$SERVICE_NAME"
echo ""
echo "=== Fertig ==="
echo "Status: systemctl --user status $SERVICE_NAME"
echo "Logs: journalctl --user -u $SERVICE_NAME -f"
echo ""
echo "KDE-Hotkey einrichten:"
echo " Systemeinstellungen → Kurzbefehle → Eigene Kurzbefehle"
echo " Befehl: pkill -USR1 -f main.py"
echo ""
if [[ "$NET_MODE" == "2" ]]; then
echo "Netzwerk-Zugriff: http://$(hostname -I | awk '{print $1}'):8765"
echo "Tipp: Seite als Lesezeichen auf Handy/PC speichern."
echo ""
fi
echo "Erster Start: ollama pull gemma3:12b"