SkyHub is a polyrepo platform: no monorepo, no shared build. Each responsibility lives in its own Git repository, and every repo is hosted under the same GitHub organization — github.com/ID-Robots. This page is the index: it maps each repo to its role, its language/stack, and the docs section that covers it in depth. Fifteen repositories make up the platform today. Twelve are live services or firmware; three (observer, probe, carrier) are stubs — a README.md with generic development principles and no source code yet. Treat the stubs as planned work, not running systems.
Clone URLs follow one pattern — https://github.com/ID-Robots/<repo>.git. To pull the whole platform into a ~/Projects layout that matches this documentation:

How the repos fit together

The repos cluster into functional planes around the Gateway control-plane hub. The Gateway (Flask/Socket.IO) authenticates users and dispatches drone commands over rosbridge; everything else feeds into or hangs off that spine. For the end-to-end request/telemetry/video walkthroughs across these repos, see Platform Architecture Overview and the Ecosystem Overview.

The repositories

Control plane

Video plane

Simulation

Network & manual control

Ground hardware & firmware

Deployment

Planned / stub repos

These repos exist on GitHub but contain only a README.md (development principles, no source). Document intent, do not assume running behavior.

Shared infrastructure (not a repo)

Three backing stores are provisioned by skyhub_terraform and touched by multiple services rather than owned by any single repo:
  • PostgreSQL — the shared skyhub database (user, drone, user_drone_access, and more). Read/written by skyhub_gateway_service, skyhub_ws_proxy, and skyhub_user_vpn. See Database Schema Reference.
  • Redis — the pub/sub bus for gamepad and telemetry channels, keyed off drone IP. Shared by the Gateway, WS Proxy, and on-drone skyhub_core. See Redis Channels & MAVLink Port Map.
  • AWS S3 / ECR — asset storage, VPN peer configs, Terraform state, and the container registry each service pulls images from.

Scoping a cross-repo change

Because SkyHub is a polyrepo with shared infrastructure, some changes cannot stay in one repo:
These tables are read by three repos simultaneously: skyhub_gateway_service (ORM models), skyhub_ws_proxy (drone IP lookup), and skyhub_user_vpn (iptables rule generation). A migration in the Gateway ripples into VPN isolation and gamepad routing — coordinate all three.
The Gateway’s command/telemetry contract on :9090 is implemented by both skyhub_core (physical) and skyhub_sitl (simulated). A new topic or field must be added to both, or SITL and physical drones will diverge.
Manual gamepad control does not flow through the Gateway. It travels Dashboard → skyhub_ws_proxy → Redis → the agent half of skyhub_core’s application image. Changes here span the Dashboard, WS Proxy, and Core — never the Gateway.
A single stream crosses four repos: producer (skyhub_core or skyhub_sitl) → skyhub_whip → skyhub_janus → consumer (skyhub_dashboard), with the Gateway creating the room. SDP/codec/room-ID changes must be verified end-to-end.
New to the platform? Start with the SkyHub Platform Introduction, skim the Core Concepts & Glossary, then stand up a local stack with the Local Development Quickstart.