---
description: Learn how to self-host Live Updates on your own server, including requirements, restrictions, and how it works.
title: Self-Hosting - Capawesome
image: https://capawesome.io/docs/assets/images/social/cloud/live-updates/advanced/self-hosting.png
---

[ Skip to content](#self-hosting) 

[ 🎉 Introducing **Capawesome Platform** — one platform for Live Updates, Native Builds, App Store Publishing, and Insider SDKs.](https://capawesome.io) 

* [  Formbricks ](/docs/plugins/formbricks/)
* [  Geocoder ](/docs/plugins/geocoder/)
* [  Google Sign-In ](/docs/plugins/google-sign-in/)
* [  libSQL ](/docs/plugins/libsql/)
* [  Live Update ](/docs/plugins/live-update/)
* [  Managed Configurations ](/docs/plugins/managed-configurations/)
* [  Media Session ](/docs/plugins/media-session/)
* [  ML Kit ](/docs/plugins/mlkit/)
* [  NFC ](/docs/plugins/nfc/)
* [  OAuth ](/docs/plugins/oauth/)
* [  Pedometer ](/docs/plugins/pedometer/)
* [  Photo Editor ](/docs/plugins/photo-editor/)
* [  PostHog ](/docs/plugins/posthog/)
* [  Printer ](/docs/plugins/printer/)
* [  Purchases ](/docs/plugins/purchases/)
* [  RealtimeKit ](/docs/plugins/realtimekit/)
* [  Screen Orientation ](/docs/plugins/screen-orientation/)
* [  Screenshot ](/docs/plugins/screenshot/)
* [  Secure Preferences ](/docs/plugins/secure-preferences/)
* [  Speech Recognition ](/docs/plugins/speech-recognition/)
* [  Speech Synthesis ](/docs/plugins/speech-synthesis/)
* [  Share Target ](/docs/plugins/share-target/)
* [  Square Mobile Payments ](/docs/plugins/square-mobile-payments/)
* [  SQLite ](/docs/plugins/sqlite/)
* [  Superwall ](/docs/plugins/superwall/)
* [  Torch ](/docs/plugins/torch/)
* [  Wifi ](/docs/plugins/wifi/)
* [  Zip ](/docs/plugins/zip/)
* [  Cloud ](/docs/cloud/)
* [  Live Updates ](/docs/cloud/live-updates/)
* Advanced
* Integrations
* [  Native Builds ](/docs/cloud/native-builds/)
* [  Configuration ](/docs/cloud/native-builds/configuration/)
* [  Environments ](/docs/cloud/native-builds/environments/)
* Guides
* [  Sample Projects ](/docs/cloud/native-builds/sample-projects/)
* [  Troubleshooting ](/docs/cloud/native-builds/troubleshooting/)
* [  Automations ](/docs/cloud/automations/)
* Account
* Organizations
* [  Organization and User Management ](/docs/cloud/organizations/memberships/)
* [  Single Sign-On (SSO) ](/docs/cloud/organizations/sso/)
* [  Teams ](/docs/cloud/organizations/teams/)
* [  Two-Factor Authentication ](/docs/cloud/organizations/two-factor-authentication/)
* [  Integrations ](/docs/cloud/integrations/)
* [  License Keys ](/docs/cloud/license-keys/)
* [  Webhooks ](/docs/cloud/webhooks/)
* [  Pricing ](https://capawesome.io/pricing/)
* [  FAQ ](/docs/cloud/faq/)
* [  Support ](/docs/cloud/support/)
* [  Contributing ](/docs/contributing/)
* [  LLMs ](/docs/llms/)
* [  Insiders ](/docs/insiders/)
* [  License ](https://capawesome.io/legal/eula/)
* [  Support ](/docs/insiders/support/)
* [  FAQ ](/docs/insiders/faq/)
* [  Blog ](/blog/)
* Categories

# Self-Hosting[¶](#self-hosting "Permanent link")

For our customers with strict security requirements, we offer the ability to self-host Live Updates. This means that you can host the bundles on your own server, and the only data that will be sent to our servers is the metadata required to check for updates. This has several advantages:

* **Security**: You don't have to share your web artifacts with us and can keep them on your own servers.
* **Data Transfer**: You are not affected by our data transfer limits. You can serve as many updates as you want.
* **Storage**: You are not affected by our storage limits. You can store as many updates as you want.

## Requirements[¶](#requirements "Permanent link")

To self-host Live Updates, you need to meet the following requirements:

* **Server**: You need to have a high-availability server that can serve static files and handle low to medium levels of traffic (varies based on number of app users).
* **HTTPS**: Your server must support HTTPS. This is required to ensure secure communication between the client and your server.

In addition, we recommend the following:

* **CDN**: Use a Content Delivery Network (CDN) to serve the updates. This can help reduce latency and improve download speeds for users around the world.

## Restrictions[¶](#restrictions "Permanent link")

There is one restriction right now:

* **Delta Updates**: Delta updates are not yet supported when self-hosting. This means the artifact type must be `zip` (default). [Reach out to us](mailto:support@capawesome.io) if you need support for delta updates.

## How it works[¶](#how-it-works "Permanent link")

![Layers](/docs/assets/images/diagrams/capawesome-cloud-self-hosting-light.png#only-light) ![Layers](/docs/assets/images/diagrams/capawesome-cloud-self-hosting-dark.png#only-dark) 

Flow diagram of self-hosted Live Updates

The process of self-hosting Live Updates is similar to the regular process, with the difference that the bundle is hosted on your server. Here's how it works:

1. **Request metadata**: The client sends a request to Capawesome Cloud to check for updates.
2. **Receive metadata**: If an update is available, Capawesome Cloud responds with the metadata required to download the update. This can look like this:  
`[](#%5F%5Fcodelineno-0-1){  
[](#%5F%5Fcodelineno-0-2)    "artifactType": "zip",  
[](#%5F%5Fcodelineno-0-3)    "bundleId": "1e42e1df-f4b3-4564-90d0-2303ca8fbd49",  
[](#%5F%5Fcodelineno-0-4)    "url": "https://server.tld/downloads/1e42e1df-f4b3-4564-90d0-2303ca8fbd49.zip",  
[](#%5F%5Fcodelineno-0-5)}  
`
3. **Request file(s)**: The client requests the bundle from your server.
4. **Receive file(s)**: Your server responds with the bundle.

After that, the client can install the update as usual.

## Create a new bundle[¶](#create-a-new-bundle "Permanent link")

To create a new self-hosted bundle on Capawesome Cloud, you can use the [Capawesome CLI](/docs/cloud/cli/). First, make sure you have the latest version of the CLI installed:

`[](#%5F%5Fcodelineno-1-1)npm install -g @capawesome/cli@latest
`

After that, log in to your account:

`[](#%5F%5Fcodelineno-2-1)npx @capawesome/cli login
`

Then, create a new bundle with the [apps:liveupdates:register](/docs/cloud/cli/#appsliveupdatesregister) command:

`[](#%5F%5Fcodelineno-3-1)npx @capawesome/cli apps:liveupdates:register --url https://domain.tld/bundle.zip
`

Replace `https://domain.tld/bundle.zip` with the URL of the bundle on your server. The bundle will be created and immediately available to all users.

## Bonus: Code Signing[¶](#bonus-code-signing "Permanent link")

To help ensure secure end-to-end delivery, you can sign your updates with a private key. This way, the client can verify that the updates are coming from you and not a malicious actor. To sign your updates, you need to provide a private key and a local path to the artifact when creating the bundle:

`[](#%5F%5Fcodelineno-4-1)npx @capawesome/cli apps:liveupdates:register --url https://domain.tld/bundle.zip --private-key ./key.pem --path ./bundle.zip
`

We recommend integrating code signing into your CI/CD pipeline to automate the process. This way you can create a signed bundle directly after uploading the artifact to your server. Check out our [Code Signing](/docs/cloud/live-updates/advanced/code-signing/) guide for more information on how to sign your updates.

Note 

Code signing for self-hosted bundles is only supported in version **6.8.0** or from version **7.1.0** of the Live Update plugin.

March 8, 2026 

 Back to top 