Files
home-voice-assistant/deploy/setup.sh
Daniil Klimov 7ca8268b78 Initial commit: Cosmo Voice Satellite
Two-agent voice assistant (Cosmo + Люся) via OpenClaw Gateway.
Streaming STT (Groq) + LLM + TTS (ElevenLabs) pipeline with
keep-alive sessions, barge-in, and daily conversation sessions.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-12 13:34:08 +03:00

117 lines
3.8 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
set -euo pipefail
# ============================================================
# Cosmo Voice Satellite — полная установка на Raspberry Pi 5
# Запуск: sudo bash setup.sh
# ============================================================
APP_DIR="/home/daniil/home-voice-assistant"
APP_USER="daniil"
SERVICE_NAME="cosmo-satellite"
echo "========================================"
echo " Cosmo Satellite — установка на Pi 5"
echo "========================================"
# --- 1. Системные пакеты ---
echo ""
echo "▶ 1/6 Устанавливаю системные пакеты..."
apt-get update
apt-get install -y \
python3 \
python3-venv \
python3-dev \
python3-pip \
portaudio19-dev \
libsndfile1 \
pulseaudio \
pulseaudio-module-bluetooth \
bluez \
bluez-tools \
ffmpeg \
git
# --- 2. Python venv ---
echo ""
echo "▶ 2/6 Создаю виртуальное окружение..."
cd "$APP_DIR"
sudo -u "$APP_USER" python3 -m venv .venv
sudo -u "$APP_USER" .venv/bin/pip install --upgrade pip
sudo -u "$APP_USER" .venv/bin/pip install -r requirements.txt
# --- 3. Проверка .env ---
echo ""
echo "▶ 3/6 Проверяю .env..."
if [ ! -f "$APP_DIR/.env" ]; then
echo "❌ Файл .env не найден! Скопируй .env на Pi перед запуском."
exit 1
fi
# Проверяем ключевые переменные
source "$APP_DIR/.env"
if [ -z "${GATEWAY_TOKEN:-}" ]; then
echo "❌ GATEWAY_TOKEN не задан в .env"
exit 1
fi
if [ -z "${GROQ_API_KEY:-}" ]; then
echo "❌ GROQ_API_KEY не задан в .env"
exit 1
fi
echo " .env OK"
# --- 4. Bluetooth (PulseAudio) ---
echo ""
echo "▶ 4/6 Настраиваю Bluetooth audio..."
# Включаем PulseAudio для пользователя (если не systemd --user)
sudo -u "$APP_USER" systemctl --user enable pulseaudio
sudo -u "$APP_USER" systemctl --user start pulseaudio || true
echo " Bluetooth настроен."
echo " Подключи колонку вручную:"
echo " bluetoothctl"
echo " > scan on"
echo " > pair <MAC>"
echo " > connect <MAC>"
echo " > trust <MAC>"
echo ""
echo " После подключения найди sink:"
echo " pactl list sinks short"
echo " И пропиши AUDIO_SINK=bluez_sink.XX_XX_XX.a2dp_sink в .env"
# --- 5. systemd сервис ---
echo ""
echo "▶ 5/6 Устанавливаю systemd сервис..."
cp "$APP_DIR/deploy/cosmo-satellite.service" /etc/systemd/system/${SERVICE_NAME}.service
systemctl daemon-reload
systemctl enable ${SERVICE_NAME}
echo " Сервис установлен: ${SERVICE_NAME}"
# --- 6. Проверка ---
echo ""
echo "▶ 6/6 Проверяю установку..."
sudo -u "$APP_USER" "$APP_DIR/.venv/bin/python" -c "
from satellite.config import GATEWAY_URL, AGENT
print(f' Gateway : {GATEWAY_URL}')
print(f' Агент : {AGENT}')
print(' Python imports OK')
"
echo ""
echo "========================================"
echo " Установка завершена!"
echo "========================================"
echo ""
echo "Команды:"
echo " sudo systemctl start ${SERVICE_NAME} # запустить"
echo " sudo systemctl stop ${SERVICE_NAME} # остановить"
echo " sudo systemctl restart ${SERVICE_NAME} # перезапустить"
echo " sudo journalctl -u ${SERVICE_NAME} -f # логи в реальном времени"
echo " cat ${APP_DIR}/errors.log # лог ошибок"
echo ""
echo "Не забудь:"
echo " 1. Подключить BT колонку и прописать AUDIO_SINK в .env"
echo " 2. Прописать PORCUPINE_KEY и WAKE_WORD_MODEL в .env"
echo " 3. Затем: sudo systemctl start ${SERVICE_NAME}"
echo ""