Files
satellite/install_test_services.sh
T
sirmrak b27d633f06 refactor: упростить test сервисы — только satellite (wake word и event production)
- services/test/*.service — удалены wake word и event test сервисы
- services/test/wyoming-satelite-vosk-test.service — использует production порты
- install_test_services.sh — обновлён для одного сервиса
- services/test/start_test.sh — запуск только satellite
- docs/deployment/systemd-services.md — обновлена документация

Test satellite использует:
- Production wake word (:10400)
- Production event (:10500)
- Те же порты что и production (:10700)
- WebSocket :8675 + Audio Level (новые функции)
2026-05-20 17:50:16 +03:00

102 lines
3.4 KiB
Bash
Executable File

#!/bin/bash
#
# Установка TEST systemd сервисов для Wyoming Satellite (dev branch)
# Автоматически определяет пути и подставляет их в service файлы
#
set -e
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
SERVICE_DIR="${SCRIPT_DIR}/services/test"
SYSTEMD_DIR="/etc/systemd/system"
echo "🔧 Установка TEST systemd сервисов для Wyoming Satellite (dev)"
echo "=============================================================="
# Определяем текущего пользователя
CURRENT_USER="${SUDO_USER:-$(whoami)}"
HOME_DIR=$(getent passwd "$CURRENT_USER" | cut -d: -f6)
echo "👤 Пользователь: $CURRENT_USER"
echo "🏠 Домашняя директория: $HOME_DIR"
# Ищем виртуальное окружение
VENV_PATH=""
for candidate in \
"${HOME_DIR}/projects/.venv_satellite" \
"${HOME_DIR}/.venv_satellite" \
"${SCRIPT_DIR}/.venv" \
"${SCRIPT_DIR}/.venv_satellite"
do
if [ -f "${candidate}/bin/python3" ]; then
VENV_PATH="${candidate}"
break
fi
done
if [ -z "$VENV_PATH" ]; then
echo "❌ Виртуальное окружение не найдено!"
echo " Создайте его: cd ${SCRIPT_DIR} && ./setup_dev.sh"
exit 1
fi
echo "✅ VENV: $VENV_PATH"
# Создаём временную директорию для обработанных сервисов
TEMP_DIR=$(mktemp -d)
trap "rm -rf ${TEMP_DIR}" EXIT
# Обрабатываем каждый test service файл
for service_file in "${SERVICE_DIR}"/*.service; do
[ -f "$service_file" ] || continue
filename=$(basename "$service_file")
echo "📄 Обработка: $filename"
# Заменяем плейсхолдеры на актуальные пути
sed -e "s|__SAT_BASE_DIR__|${SCRIPT_DIR}|g" \
-e "s|__SAT_VENV__|${VENV_PATH}|g" \
-e "s|__CURRENT_USER__|${CURRENT_USER}|g" \
-e "s|__HOME_DIR__|${HOME_DIR}|g" \
"$service_file" > "${TEMP_DIR}/${filename}"
# Копируем в systemd
sudo cp "${TEMP_DIR}/${filename}" "${SYSTEMD_DIR}/"
echo " ✅ Установлен в ${SYSTEMD_DIR}/${filename}"
done
# Перезагружаем systemd
echo ""
echo "🔄 Перезагрузка systemd..."
sudo systemctl daemon-reload
echo ""
echo "✅ TEST сервисы установлены!"
echo ""
echo "📋 TEST сервис (не влияет на production):"
echo " - wyoming-satelite-vosk-test.service (спутник, порт 10700)"
echo ""
echo "💡 Production сервисы должны быть запущены:"
echo " - wyoming-wakeword-vosk.service (:10400)"
echo " - wyoming-event.service (:10500)"
echo ""
echo "🚀 Команды управления:"
echo " # Запуск test satellite"
echo " sudo systemctl start wyoming-satelite-vosk-test.service"
echo ""
echo " # Проверка статуса"
echo " sudo systemctl status wyoming-satelite-vosk-test.service"
echo ""
echo " # Остановка"
echo " sudo systemctl stop wyoming-satelite-vosk-test.service"
echo ""
echo "📊 Просмотр логов:"
echo " journalctl -u wyoming-satelite-vosk-test.service -f"
echo ""
echo "🌐 WebSocket для тестирования:"
echo " ws://127.0.0.1:8675"
echo ""
echo "💡 Пример подключения:"
echo " python3 examples/websocket-service/test_client.py --uri ws://127.0.0.1:8675"
echo ""