# Развёртывание Wyoming Satellite ## Быстрый старт на новом сервере ### 1. Клонирование репозитория ```bash git clone /path/to/Satellite cd Satellite ``` ### 2. Создание виртуального окружения ```bash # Вариант A: в домашней директории (рекомендуется) python3 -m venv ~/.venv_satellite source ~/.venv_satellite/bin/activate # Вариант B: в projects python3 -m venv ~/projects/.venv_satellite source ~/projects/.venv_satellite/bin/activate ``` ### 3. Установка зависимостей ```bash pip install -r requirements.txt ``` ### 4. Установка systemd сервисов ```bash sudo ./install_systemd_services.sh ``` Скрипт автоматически: - Найдёт виртуальное окружение - Определит текущего пользователя - Подставит правильные пути в service файлы - Установит wrapper `satellite-python` в `/usr/local/bin/` ### 5. Запуск сервисов ```bash # LED сервис (опционально) sudo systemctl enable wyoming-event.service sudo systemctl start wyoming-event.service # Wyoming Satellite sudo systemctl enable wyoming-satelite-vosk.service sudo systemctl start wyoming-satelite-vosk.service # Wake Word сервис sudo systemctl enable wyoming-wakeword-vosk.service sudo systemctl start wyoming-wakeword-vosk.service ``` ### 6. Проверка статуса ```bash sudo systemctl status wyoming-event.service journalctl -u wyoming-event.service -f ``` --- ## Структура service файлов Все service файлы используют плейсхолдеры, которые заменяются при установке: | Плейсхолдер | Описание | |-------------|----------| | `__SAT_BASE_DIR__` | Путь к репозиторию Satellite | | `__SAT_VENV__` | Путь к виртуальному окружению | | `__CURRENT_USER__` | Имя пользователя | | `__HOME_DIR__` | Домашняя директория пользователя | --- ## Ручная установка (альтернатива) Если скрипт не работает, можно вручную: 1. Отредактировать файлы в `service/`, заменив плейсхолдеры 2. Скопировать в `/etc/systemd/system/` 3. Выполнить `sudo systemctl daemon-reload` --- ## Wrapper `satellite-python` Глобальный скрипт `/usr/local/bin/satellite-python` позволяет запускать Python из venv без указания полного пути: ```ini # В systemd сервисе ExecStart=satellite-python /path/to/script.py ``` Это избавляет от необходимости прописывать пути к `.venv` в каждом сервисе.