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