ME
mediocre9/voyager-ota
a channel based monotonic semver FOTA release distribution platform for developers.
VoyagerOTA
A mini backend system for managing software releases for devices.
Every release is treated as a proper artifact, versioned, validated, and deployed to the correct channel.
Only verified production builds reach field devices.
Features
- Create draft releases with versioning and changelogs.
- Prevent version collisions and duplicate binaries.
- Background workers validate build types automatically.
- Verified production builds move to a safe staging channel.
- Promote releases to production with explicit approval.
- Rollback or revoke releases when necessary.
- Devices fetch updates efficiently via cache or database.
Planned Features
- Devices report if updates are applied.
- Basic health and telemetry via MQTT.
Release Flow
- Draft Release: Create a release draft with only metadata (version, changelog), no binaries yet.
- Upload Binary: Submit the compiled binary; the system hashes it and rejects duplicates.
- Build Inspection: Background workers analyze the binary to determine its build type.
- Staging Channel: Verified production builds are moved to the staging channel for testing.
- Promotion to Production: Manually approve and promote the release to production.
- Device Fetching: Devices fetch updates from the appropriate channel (staging or production) depending on their mode.
Architecture
Release Rules
- Versions must always advance; duplicates rejected
- Only one non-production release per project
- Development/unknown builds cannot be promoted
- Promotion requires explicit action
Setup
Note
Create a .env.development file in the root before running the server.
npm install
# then run server in development mode....
npm run dev
# and then run artifact worker separately.....
npm run artifact-workerIntegration
Tip
Use the official client library voyagerota-client-lib to handle OTA updates on ESP32 and ESP8266 devices.
For full integration details, see the official documentation: VoyagerOTA Documentation
On this page
Languages
TypeScript99.7%JavaScript0.3%
Contributors
MIT License
Created September 11, 2025
Updated March 8, 2026
