#!/bin/bash # Install mana-stt and vllm-voxtral as launchd services on macOS # Run this script on the Mac Mini server set -e SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" LAUNCH_AGENTS_DIR="$HOME/Library/LaunchAgents" LOG_DIR="$HOME/logs" echo "============================================" echo "Installing ManaCore STT Services" echo "============================================" echo "" # Create logs directory mkdir -p "$LOG_DIR" install_service() { local service_name="$1" local plist_file="$service_name.plist" echo "Installing $service_name..." # Stop existing service if running if launchctl list | grep -q "$service_name"; then echo " Stopping existing service..." launchctl unload "$LAUNCH_AGENTS_DIR/$plist_file" 2>/dev/null || true fi # Copy plist to LaunchAgents cp "$SCRIPT_DIR/$plist_file" "$LAUNCH_AGENTS_DIR/" # Load the service echo " Loading service..." launchctl load "$LAUNCH_AGENTS_DIR/$plist_file" sleep 2 if launchctl list | grep -q "$service_name"; then echo " ✓ $service_name installed and running" else echo " ✗ $service_name failed to start" return 1 fi } # Install vLLM first (STT depends on it) install_service "com.manacore.vllm-voxtral" # Wait for vLLM to initialize echo "" echo "Waiting for vLLM server to initialize..." for i in {1..30}; do if curl -s http://localhost:8100/health > /dev/null 2>&1; then echo " ✓ vLLM server is ready" break fi if [ $i -eq 30 ]; then echo " ! vLLM server not responding yet (may still be loading model)" fi sleep 2 done # Install STT service echo "" install_service "com.manacore.mana-stt" echo "" echo "============================================" echo "Installation complete!" echo "============================================" echo "" echo "Services:" echo " vLLM Voxtral: http://localhost:8100" echo " ManaCore STT: http://localhost:3020" echo "" echo "Useful commands:" echo " View vLLM logs: tail -f $LOG_DIR/vllm-voxtral.log" echo " View STT logs: tail -f $LOG_DIR/mana-stt.log" echo " Health check: curl http://localhost:3020/health" echo "" echo "Stop all:" echo " launchctl unload $LAUNCH_AGENTS_DIR/com.manacore.vllm-voxtral.plist" echo " launchctl unload $LAUNCH_AGENTS_DIR/com.manacore.mana-stt.plist"