diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..40906f9 --- /dev/null +++ b/install.sh @@ -0,0 +1,88 @@ +#!/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" <