Files
ignis-core/deploy/README.md
2026-05-16 15:50:40 +07:00

84 lines
2.4 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
Минимальный `systemd`-деплой для `ignis-core`.
В каталоге:
- `ignis-core.service` — unit-файл;
- `ignis-core.env.example` — пример env-конфига.
## Предполагаемая раскладка
- код: `/opt/ignis/ignis-core`
- env: `/etc/ignis-core/ignis-core.env`
- пользователь: `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`
Для машин с VPN или несколькими интерфейсами `SCAN_NETWORK` лучше задавать явно.
## 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 проще ставить перед сервисом, а не внутрь него.
- Перед обновлением backend-контракта полезно перегенерировать `openapi.json` и прогнать `unittest`.