feat: system service management (gyandoot service install|remove|status)
- Create systemd + launchd service templates in resources/ - Add gyandoot-core/src/service.rs module with full lifecycle - systemd: user service, daemon-reload, enable, start, stop, disable - launchd: macOS plist, load/unload, start/stop (launchctl) - Add 'gyandoot service install|remove|status' CLI subcommand - Update setup wizard: prompts 'Install system service? [y/N]' - Update install.sh: prompts user for service install after binary - Browser auto-starts at runtime (browser_manager), no separate service needed - Camoufox installed via npm, auto-started by GyanDoot agent loop
This commit is contained in:
31
resources/systemd/gyandoot.service
Normal file
31
resources/systemd/gyandoot.service
Normal file
@@ -0,0 +1,31 @@
|
||||
[Unit]
|
||||
Description=GyanDoot v2.0 — AI Agent Platform
|
||||
Documentation=https://git.gyannetra.in/gnpl_admin/gyandoot-v2
|
||||
After=network.target network-online.target
|
||||
Wants=network-online.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=%USER%
|
||||
Group=%GROUP%
|
||||
ExecStart=%BINARY% serve --host 127.0.0.1 --port 8777
|
||||
Restart=on-failure
|
||||
RestartSec=5
|
||||
TimeoutStopSec=10
|
||||
KillMode=mixed
|
||||
StandardOutput=append:%HOME%/.gyandoot/service.log
|
||||
StandardError=append:%HOME%/.gyandoot/service.log
|
||||
|
||||
# Environment
|
||||
Environment=GYANDOOT_CONFIG=%HOME%/.config/gyandoot/config.toml
|
||||
Environment=GYANDOOT_LOG=info
|
||||
|
||||
# Security hardening
|
||||
NoNewPrivileges=true
|
||||
PrivateTmp=true
|
||||
ProtectHome=read-only
|
||||
ProtectSystem=strict
|
||||
ReadWritePaths=%HOME%/.gyandoot %HOME%/.config/gyandoot
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
Reference in New Issue
Block a user