# 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. Подготовить пользователя ```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` Для домашней сети лучше задавать `SCAN_NETWORK` явно, особенно если на хосте есть VPN или несколько интерфейсов. ## 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: ' 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, его проще ставить перед `ignis-core`, а сам сервис оставить на локальном порту.