# Gadget Drone Worker — Systemd Template Service Unit # ============================================================================ # This is a TEMPLATE unit. Create instances per workspace: # /etc/systemd/system/gadget-drone@my-workspace.service # # The %I placeholder is replaced with the instance name. # The drone's working directory is set to /home/gadget/drones/%I # # Enable and start: # sudo systemctl enable gadget-drone@my-workspace # sudo systemctl start gadget-drone@my-workspace # # View logs: # journalctl -u gadget-drone@my-workspace -f # ============================================================================ [Unit] Description=Gadget Drone Worker — %I Documentation=https://github.com/dtp-technologies/gadget-code After=network.target gadget-code-web.service Wants=gadget-code-web.service [Service] Type=simple User=gadget Group=gadget # Environment variables for secrets EnvironmentFile=/etc/gadget/gadget-drone.env # Each drone instance runs in its own workspace directory WorkingDirectory=/home/gadget/drones/%I ExecStart=/usr/local/bin/gadget-drone Restart=on-failure RestartSec=5 # Security hardening NoNewPrivileges=true ProtectSystem=strict ProtectHome=read-only ReadWritePaths=/home/gadget/drones/%I PrivateTmp=true # Resource limits LimitNOFILE=65536 # Logging StandardOutput=journal StandardError=journal SyslogIdentifier=gadget-drone@%I [Install] WantedBy=multi-user.target