Files
ignis-core/deploy/README.md
2026-05-16 11:22:02 +07:00

85 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Deploy
Практичный минимум для запуска `ignis-core` как `systemd`-сервиса.
В папке:
- `ignis-core.service` -- шаблон unit-файла
- `ignis-core.env.example` -- пример переменных окружения
## Предположения
Ниже используется такая раскладка:
- код проекта: `/opt/ignis/ignis-core`
- env-файл: `/etc/ignis-core/ignis-core.env`
- Unix-пользователь: `ignis`
- SQLite БД: `/var/lib/ignis-core/ignis.db`
Если у вас другие пути, просто поправьте unit и env-файл.
## 1. Подготовить пользователя
```bash
sudo useradd --system --home /opt/ignis --shell /usr/sbin/nologin ignis
```
## 2. Разложить проект
```bash
sudo mkdir -p /opt/ignis
sudo cp -R /path/to/ignis-core /opt/ignis/ignis-core
cd /opt/ignis/ignis-core
python3 -m venv .venv
. .venv/bin/activate
pip install -r requirements.txt
sudo chown -R ignis:ignis /opt/ignis
```
## 3. Подготовить env-файл
```bash
sudo mkdir -p /etc/ignis-core
sudo cp deploy/ignis-core.env.example /etc/ignis-core/ignis-core.env
sudo chmod 640 /etc/ignis-core/ignis-core.env
sudo chown root:ignis /etc/ignis-core/ignis-core.env
```
Что важно заполнить обязательно:
- `IGNIS_API_KEY`
- `SCAN_NETWORK`
Для домашней сети лучше задавать `SCAN_NETWORK` явно, особенно если на хосте есть VPN или несколько интерфейсов.
## 4. Установить unit
```bash
sudo cp deploy/ignis-core.service /etc/systemd/system/ignis-core.service
sudo systemctl daemon-reload
sudo systemctl enable --now ignis-core.service
```
## 5. Проверка
```bash
sudo systemctl status ignis-core.service
sudo journalctl -u ignis-core.service -n 100 --no-pager
curl -H 'X-API-Key: <master-key>' http://127.0.0.1:8000/auth/me
```
## Обновление
```bash
cd /opt/ignis/ignis-core
. .venv/bin/activate
pip install -r requirements.txt
sudo systemctl restart ignis-core.service
```
## Замечания
- `StateDirectory=ignis-core` в unit создаёт `/var/lib/ignis-core` автоматически.
- По умолчанию сервис слушает `0.0.0.0:8000`.
- Если нужен reverse proxy, его проще ставить перед `ignis-core`, а сам сервис оставить на локальном порту.