Skip to content

test(harness): add containerized x86 dev/test harness#95

Merged
dakejahl merged 1 commit into
mainfrom
test/local-dev-harness
Jun 27, 2026
Merged

test(harness): add containerized x86 dev/test harness#95
dakejahl merged 1 commit into
mainfrom
test/local-dev-harness

Conversation

@dakejahl

Copy link
Copy Markdown
Contributor

Summary

Adds test/: a containerized way to run the ARK-OS userspace stack and web UI on an x86 dev machine — no camera, no flight controller, no reflash.

Problem

Verifying UI or manager changes meant cutting a release tag, rebuilding the ark_jetson_kernel image, and reflashing — a slow loop for what is mostly userspace work. Nothing let the deb/UI run off-device, and the stack assumes real hardware (camera, FC serial, Jetson/Pi GPIO).

Solution

One app container runs the four FastAPI managers, the Express gateway, nginx and the built Vue UI on shared localhost (mirroring the device), alongside a go2rtc sidecar whose camera is a synthetic ffmpeg test pattern. A pymavlink heartbeat stub stands in for the flight controller so the Autopilot page connects, and small systemctl/journalctl shims let the Services page work without systemd. bash test/run.sh up builds and starts everything (no Compose or buildx required); the UI is served at http://localhost:8080. The Connections page (nmcli) is the one degraded surface — documented in the README along with how to swap the FC stub for PX4 SITL. A root .dockerignore keeps the build context lean.

Run the four managers, the gateway, nginx and the built UI on x86 in
containers, with a synthetic go2rtc camera and a pymavlink heartbeat stub
standing in for the flight controller — so UI and manager changes can be
exercised with no hardware and no reflash.
@dakejahl
dakejahl merged commit 9ff68d7 into main Jun 27, 2026
1 check passed
@dakejahl
dakejahl deleted the test/local-dev-harness branch June 27, 2026 00:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant