Files
ignis-core/deploy

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

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

Для домашней сети лучше задавать SCAN_NETWORK явно, особенно если на хосте есть VPN или несколько интерфейсов.

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, его проще ставить перед ignis-core, а сам сервис оставить на локальном порту.