#!/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 VENV_DIR="$SCRIPT_DIR/.venv" echo "Python-Abhängigkeiten werden installiert (venv: $VENV_DIR)..." python3 -m venv "$VENV_DIR" "$VENV_DIR/bin/pip" install -q -r "$SCRIPT_DIR/requirements.txt" PYTHON="$VENV_DIR/bin/python" # ── 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" </dev/null | awk '{print $7; exit}'):8765" echo "Tipp: Seite als Lesezeichen auf Handy/PC speichern." echo "" fi echo "Erster Start: ollama pull gemma3:12b"