94 lines
2.9 KiB
Markdown
94 lines
2.9 KiB
Markdown
# Развёртывание Wyoming Satellite
|
||
|
||
## Быстрый старт на новом сервере
|
||
|
||
### 1. Клонирование репозитория
|
||
```bash
|
||
git clone <repository-url> /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` в каждом сервисе.
|