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

2.4 KiB
Raw Blame History

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. Создать системного пользователя

sudo useradd --system --home /opt/ignis --shell /usr/sbin/nologin ignis

2. Разложить проект и зависимости

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-файл

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

sudo cp deploy/ignis-core.service /etc/systemd/system/ignis-core.service
sudo systemctl daemon-reload
sudo systemctl enable --now ignis-core.service

5. Проверить запуск

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

Обновление

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.