[Unit] Description=GuruConnect Remote Desktop Server Documentation=https://git.azcomputerguru.com/azcomputerguru/guru-connect After=network-online.target postgresql.service Wants=network-online.target [Service] Type=simple User=guru Group=guru WorkingDirectory=/home/guru/guru-connect/server # Environment variables (loaded from .env file) EnvironmentFile=/home/guru/guru-connect/server/.env # Start command ExecStart=/home/guru/guru-connect/target/x86_64-unknown-linux-gnu/release/guruconnect-server # Restart policy Restart=on-failure RestartSec=10s StartLimitInterval=5min StartLimitBurst=3 # Resource limits LimitNOFILE=65536 LimitNPROC=4096 # Security hardening NoNewPrivileges=true PrivateTmp=true ProtectSystem=strict ProtectHome=read-only ReadWritePaths=/home/guru/guru-connect/server # Logging StandardOutput=journal StandardError=journal SyslogIdentifier=guruconnect # Watchdog (server must send keepalive every 30s or systemd restarts) WatchdogSec=30s [Install] WantedBy=multi-user.target