rov-autonomy/deploy/argonaut-api.service
Grant du Toit 97decac205 Add deploy/ folder — systemd units and launch wrappers
- argonaut.service + argonaut-stack.sh (autonomy stack)
- argonaut-api.service + argonaut-api.sh (FastAPI backend)
- README documents deploy locations, pip dependencies, install procedure
- Resolves: systemd/wrapper files were previously not version-controlled
- Documents fastapi/uvicorn system-wide install (--ignore-installed typing_extensions)
2026-07-05 15:50:42 +00:00

34 lines
1.0 KiB
Desktop File

# argonaut-api.service — Argonaut 3 FastAPI backend
#
# HTTP bridge from Cockpit widgets to the ROS2 autonomy stack (port 8081).
# Endpoints: /health, /abort (W3 RETURN TO SAFE), /mission/start, /mission/stop.
#
# DEPLOY LOCATION: /etc/systemd/system/argonaut-api.service
#
# DEV POLICY (matches argonaut.service):
# Installed but NOT enabled-on-boot. Start manually:
# sudo systemctl start argonaut-api.service
# When field-ready, enable on boot:
# sudo systemctl enable argonaut-api.service
#
# Soft ordering After=argonaut.service so the ROS2 graph is up first, but
# no hard Requires= — the API can still start for /health checks if the
# stack is down (mission commands then return a clear "unavailable" error).
[Unit]
Description=Argonaut 3 FastAPI backend (HTTP -> ROS2 bridge)
After=network-online.target argonaut.service
Wants=network-online.target
[Service]
Type=simple
User=ubuntu
Group=ubuntu
WorkingDirectory=/data/ros2_ws
ExecStart=/usr/local/bin/argonaut-api.sh
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target