diff --git a/README.md b/README.md index 74dc74a..aeb39eb 100644 --- a/README.md +++ b/README.md @@ -120,6 +120,36 @@ CREATE TABLE random_data ( ); ``` +## systemd + +Юнит-файл: `deploy/systemd/cards.service` + +```ini +[Unit] +Description=Cards web server +After=network-online.target + +[Service] +Type=simple +User=cards +Group=cards +ExecStart=/usr/bin/cards /etc/cards/config.json +Restart=on-failure +AmbientCapabilities=CAP_NET_BIND_SERVICE +NoNewPrivileges=yes +ProtectSystem=full +ProtectHome=yes +PrivateTmp=yes +``` + +Установка вручную: + +```bash +sudo cp deploy/systemd/cards.service /usr/lib/systemd/system/ +sudo systemctl daemon-reload +sudo systemctl enable --now cards +``` + ## Сборка deb-пакета ```bash @@ -130,6 +160,26 @@ cpack Результат: `cards-1.0.0-Linux.deb` +### Содержимое deb-пакета + +| Путь | Назначение | +|---|---| +| `/usr/bin/cards` | Исполняемый файл | +| `/usr/lib/systemd/system/cards.service` | systemd-юнит | +| `/etc/cards/config.json.example` | Пример конфигурации | +| `/usr/share/doc/cards/LICENSE` | Лицензия | + +### Управляющие скрипты + +При установке deb-пакета (`postinst`): +- Создаётся пользователь и группа `cards` +- Копируется `/etc/cards/config.json.example` → `/etc/cards/config.json` (если нет) +- Сервис `cards` включается и запускается + +При удалении (`prerm`): +- Сервис останавливается и отключается + ## Завершение работы -Для остановки сервера отправьте сигнал `SIGINT` (Ctrl+C) или `SIGTERM`. +- Вручную: `Ctrl+C` или `kill` с сигналом `SIGTERM` +- systemd: `systemctl stop cards`