Полная синхронизация

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
2026-05-19 19:40:42 +03:00
co-authored by Qwen-Coder
parent df5ce8a683
commit cae22004b1
17 changed files with 1139 additions and 138 deletions
+93
View File
@@ -0,0 +1,93 @@
# Развёртывание 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` в каждом сервисе.