Skip to content

Getting started

This documentation will explain how to run your own auto-update server.


If you find this work helpful, please consider supporting my work by becoming a Github sponsor.

I made a bet to open-source all the code I built here instead of paywalling it. By opening it up instead of fighting and hiding, I believe we can make the world a better place.

Furthermore, I want to focus on Capgo tooling, and make it an open and transparent business.

But to make it possible, it is necessary for all of us to do our part, including you πŸ₯Ή.

If Capgo doesn’t suit you, then pay your own price and back a bootstrapped Maker on your terms.

Features parity

If you choose to go with your own server, you will lose the 5-min setup flow.
You need to implement all of these features yourself.

FeaturesCapgoSelf hosted
Auto revertβœ…πŸš§
Email alerts on failβœ…πŸš§
Channels Overrideβœ…πŸš§
Device Overrideβœ…πŸš§
Channels Settingsβœ…πŸš§
Device Settingsβœ…πŸš§
Custom IDβœ…πŸš§
Auto Set Channelsβœ…πŸš§
API Channelsβœ…πŸš§
Updates Statisticsβœ…πŸš§
Fail Download Statisticsβœ…πŸš§
App Usage Statisticsβœ…πŸš§
Update Encryptionβœ…πŸš§

Be mindful that you can’t use the Capgo cloud and your server at the same time.

Choose between Auto and Manual

In auto mode, part of the logic is handled by the Native code, updates are decided server side, this is more secure and allows fine grain updates, partial deployment to one device or group and more.

In manual mode, all the logic is handled by the JS.

Install Capacitor updater

Install the Capacitor updater
npm install @capgo/capacitor-updater
npx cap sync

Prepare your bundle

To send updates to your app, you need to zip it. The best way to be certain your zip is good is to use the Capgo CLI for zipping.

Create a bundle with your files to serve from your server
npx @capgo/cli/latest bundle zip

You will have to serve this zip from your server on your own.