2.4 KiB
2.4 KiB
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_KEYSCAN_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.