-
-
Notifications
You must be signed in to change notification settings - Fork 2
uk Deploy Native
Цей документ описує запуск SelenaCore на Linux-дистрибутивах поза основною тестованою родиною Debian/Ubuntu (Raspberry Pi OS, Jetson L4T, Debian 12, Ubuntu 22.04/24.04). Інсталятор тепер автоматично визначає пакетний менеджер і надає best-effort підтримку для Fedora/RHEL, Arch та openSUSE.
Протестовано на: Jetson L4T, Raspberry Pi OS, Debian 12, Ubuntu 22.04/24.04.
Community-підтримка (best-effort): Fedora 40+, RHEL 9 / Rocky / Alma, Arch Linux / Manjaro, openSUSE Tumbleweed / Leap 15.5+.
Повідомити про проблеми: https://github.com/dotradepro/SelenaCore/issues
- systemd (SelenaCore використовує systemd-юніти
smarthome-core,smarthome-agent,piper-tts,selena-display). Non-systemd init-системи (OpenRC на Alpine, runit на Void) не підтримуються — wizard пропустить встановлення нативних сервісів і надрукує інструкції. - 64-бітний CPU (amd64 / arm64). armv7 Raspberry Pi 3 не підтримується.
- Мінімум 4 GB RAM (рекомендовано 8 GB для локальної LLM).
- Docker Engine 24+ з плагіном Compose.
- Python 3.9+ на хості (інсталятор встановить новіший через
uv, якщо системний застарий). - Для власників NVIDIA GPU: драйвери NVIDIA + Container Toolkit (інсталятор обробляє на apt/dnf/pacman/zypper).
git clone https://github.com/dotradepro/SelenaCore.git
cd SelenaCore
sudo ./install.shІнсталятор:
- Визначає пакетний менеджер (
apt/dnf/pacman/zypper). - Встановлює базові пакети (curl, git, Python, ffmpeg, arp-scan, NetworkManager, build toolchain, …).
- Встановлює Docker Engine + Compose-плагін.
- Встановлює нативні AI-рантайми (Ollama + Piper TTS) на хості.
- Створює системного користувача
selenaта директорії. - Запускає docker-стек (
core,agent) на порту 80. - Друкує
http://<lan-ip>/— відкрийте в браузері для проходження wizard.
Далі wizard завантажує STT/TTS/LLM моделі, створює адмін-користувача, реєструє пристрій на платформі та вмикає systemd-сервіси.
SelenaCore запускає два класи сервісів:
| Сервіс | Від імені | Чому |
|---|---|---|
smarthome-core.service (Docker) |
системний selena
|
Фоновий демон — не потребує seat, не потребує home |
selena-display.service (cage kiosk) |
оператор | Wayland-композитор потребує login seat; у root його нема |
piper-tts.service (опційно) |
оператор | Моделі голосів лежать у ~/.local/share/piper/
|
"Оператор" — людина, що сидить перед пристроєм (або, для headless —
будь-який не-root користувач). За замовчуванням install.sh бере
$SUDO_USER — того, хто запустив sudo ./install.sh.
# Випадок 1 — ви залоговані як оператор, робите sudo:
pi@raspberrypi:~ $ sudo ./install.sh
# → kiosk/piper прив'язуються до `pi`, `pi` додається до docker+selena
# Випадок 2 — SSH під root (без sudo), або $SUDO_USER порожній/root,
# ОБОВ'ЯЗКОВО передайте --kiosk-user:
root@box:~ # ./install.sh --kiosk-user=alice
# → kiosk/piper прив'язуються до `alice`
# Випадок 3 — install.sh відмовиться прив'язувати kiosk до root.
# Якщо --kiosk-user не передано і $SUDO_USER порожній/root,
# установка selena-display.service ПРОПУСКАЄТЬСЯ з попередженням.
# Все решта ставиться нормально — kiosk можна увімкнути пізніше
# повторним запуском install.sh з --kiosk-user=NAME.Перезапустіть sudo ./install.sh з сесії нового користувача, або
передайте --kiosk-user=<newname>. Юніти selena-display.service і
piper-tts.service перегенеруються під нового користувача; старий
лишається у групах docker і selena (нешкідливо). Деінсталяція не
потрібна.
Створюється автоматично інсталятором — системний користувач (без shell,
без логіну), якому належить docker-контейнер, /var/lib/selena і
/secure. Ви ніколи не логінитесь як selena. Людей-операторів
додають до цієї групи щоб мали доступ до спільних log- і
model-директорій.
Без додаткових кроків. Це основний протестований шлях.
sudo dnf install -y git curl
git clone https://github.com/dotradepro/SelenaCore.git
cd SelenaCore
sudo ./install.shНотатки:
- Docker встановлюється через
https://get.docker.com, який налаштовує репозиторійdocker-ceі ставить Compose-плагін. - NVIDIA Container Toolkit встановлюється з
nvidia.github.io/libnvidia-container/stable/rpm/. - SELinux: якщо увімкнено в enforcing-режимі — можливо треба перемаркувати
/var/lib/selenaі/secure:sudo chcon -R -t container_file_t /var/lib/selena /secure
- Файрвол:
firewalldза замовчуванням увімкнено. Відкрийте порт 80:sudo firewall-cmd --permanent --add-service=http && sudo firewall-cmd --reload
sudo pacman -Syu --needed git curl
git clone https://github.com/dotradepro/SelenaCore.git
cd SelenaCore
sudo ./install.shНотатки:
- Docker та NVIDIA Container Toolkit беруться з офіційних Arch-репо
(
community). Якщоnvidia-container-toolkitвідсутній — встановіть з AUR. -
cogіseatdне встановлюються автоматично на Arch — лишеcage+wtype. Kiosk-режим працює;selena-display.serviceвикористаєcageнапряму.
sudo zypper install -y git curl
git clone https://github.com/dotradepro/SelenaCore.git
cd SelenaCore
sudo ./install.shНотатки:
- Docker встановлюється через
https://get.docker.com. - NVIDIA toolkit repo додається через
zypper addrepoз RPM-дзеркала NVIDIA. - AppArmor/SELinux зазвичай вимкнено; додаткові кроки не потрібні.
Якщо бажаєте зробити все власноруч:
# 1. Встановити базові пакети (адаптуйте під ваш дистрибутив)
# Повний список дивіться у install.sh → install_host_packages.
# 2. Встановити Docker + Compose
curl -fsSL https://get.docker.com | sh
sudo systemctl enable --now docker
sudo usermod -aG docker "$USER"
# 3. Встановити Ollama (хост-сервіс, усі дистрибутиви)
curl -fsSL https://ollama.com/install.sh | sh
sudo systemctl enable --now ollama
# 4. Встановити Piper TTS Python-пакет (від не-root користувача)
pip install --user piper-tts aiohttp
# 5. Створити директорії
sudo install -d -m 0755 /var/lib/selena/models/{piper,vosk,whisper} \
/var/lib/selena/speaker_embeddings /var/log/selena
sudo install -d -m 0750 /secure
# 6. Клонування та конфіг
git clone https://github.com/dotradepro/SelenaCore.git /opt/selena-core
cd /opt/selena-core
cp config/core.yaml.example config/core.yaml
cp .env.example .env
# 7. Білд фронтенду + старт стека
npx vite build
docker compose up -d --build
# 8. Staging systemd-юнітів (wizard їх увімкне)
sudo bash scripts/install-systemd.sh
# 9. Відкрийте http://<ip>/ та пройдіть wizardВи на дистрибутиві без жодного з apt/dnf/pacman/zypper. SelenaCore "з коробки" не підтримує nixpkgs, xbps (Void), apk (Alpine), eopkg (Solus). Використайте розділ Ручна установка вище, адаптуючи імена пакетів вручну.
systemctl status ollama
journalctl -u ollama -n 50Найчастіша причина: відсутні GPU-драйвери або порт 11434 зайнятий. Змініть
через OLLAMA_HOST=127.0.0.1:11435 у
/etc/systemd/system/ollama.service.d/override.conf і оновіть llm.ollama_url
у config/core.yaml.
scripts/piper-tts.service містить шаблонні плейсхолдери __USER__,
__HOME__, __PYTHON__. Якщо Piper падає, перезапустіть:
sudo bash scripts/install-systemd.shякий повторно підставить плейсхолдери з поточного конфіга.
docker-compose.yml монтує /run/user/${HOST_UID}/pulse. Якщо сесія
rootless / headless / linger вимкнено, сокет може бути відсутній. Увімкніть
linger:
sudo loginctl enable-linger "$USER"Потім перестворіть compose-стек:
docker compose down && docker compose up -darp-scan потребує raw-socket capability. Compose запускає контейнер із
network_mode: host + privileged: true — це обов'язково. На non-Debian
перевірте, що контейнер успадкував ці прапорці:
docker inspect selena-core | grep -E 'NetworkMode|Privileged'sudo setenforce 0 # перевірити
# Якщо виправило — перемаркувати шляхи установки:
sudo chcon -R -t container_file_t /var/lib/selena /secure /opt/selena-core
sudo setenforce 1Якщо ви запустили SelenaCore на дистрибутиві поза тестованим списком — ми будемо вдячні за звіт. Створіть issue з:
- Дистрибутив + версія (
cat /etc/os-release) - Вивід
sudo ./install.sh --dry-run - Перша помилка або попередження
- Вивід
docker compose logs core --tail 50
Деталі див. у CONTRIBUTING.md.
🤖 This wiki is auto-synced from docs/ in the main repo. Hand-edits on the wiki UI get overwritten on the next push. Open a PR against the main repo instead.
MIT License · Sponsor · Ko-fi
SelenaCore
🇬🇧 English
Getting started
Architecture
Voice & translation
Hardware integration
Development
- Modules overview
- Module development
- System module development
- Module API guide
- Module bus protocol
- Widget development
- User manager / auth
Reference
🇺🇦 Українська
Початок
Архітектура
Голос і переклад
Інтеграція заліза
Розробка
- Розробка модулів
- Розробка системних модулів
- Module API
- Module bus
- Widget development
- User manager / auth
Довідник