MyPilot is a self-hosted control plane for a SunnyPilot/openpilot fork — devices, settings, routes, logs, models, software, and backups. You own the device, the data, and the control plane. No required cloud. Your car keeps driving even if MyPilot is offline.
A complete control panel running on infrastructure you control.
Pair a comma device with a one-time, signed code. Live presence, telemetry, and remote reboot — offroad-gated and audited.
Change device settings remotely with offroad, danger, and capability gating. Every change is reconciled live and logged.
Your drives and logs ingested to object storage you control. Download the real bytes, set retention, delete anything.
See the device's real driving models; switch and roll back — the device verifies the checksum before activating.
Release and staging channels mapped to real branches. Update and roll back, all offroad-only.
Snapshot settings to JSON, diff, restore, and move config between devices.
Nothing deployment-specific is hard-coded. Fork it, set your Stack URL and install source in Settings, point a build at it, and pair. Every step is in the docs.
Clone the repo and run ./scripts/install.sh — Podman-first (Docker works too). Postgres, Redis, MinIO, API, web, Caddy.
Open your URL, set up the first admin, and change the password. Strong secrets are generated for you.
In Settings, set your Stack URL and GitHub install source — every install URL follows. No hard-coding.
Install your branch via the comma's Custom Software, then pair from the code shown on the device screen. No SSH.
git clone <your-fork> mypilot && cd mypilot
./scripts/install.sh # Podman-first; prints your URL