# tryzealot/zealot

Self-hosted Beta App Distribution for Android, iOS, macOS, Linux and Windows apps | 开源自部署移动应用、 macOS、Linux 和 Windows 应用分发平台，提供 iOS、Android SDK、fastlane 等丰富组件库

Repository: https://github.com/tryzealot/zealot
Canonical: https://ross.abutalabs.com/products/zealot
Homepage: https://zealot.ews.im
Language: Ruby
License: MIT
License Family: permissive
Topics: over-the-air, deployment, ota-server, self-hosted, adhoc, testflight, ios, android, appstoreconnect, fastlane, jenkins, gitlab, ruby-on-rails, docker, zealot, pgyer, fir, macos-app, distribution, rails
Last push: 2026-08-25T02:11:04+00:00

## Health v2 (maintenance only)
Score: 94/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 99, release rhythm 83, longevity 100
- inputs: {"age_days": 2777, "days_push": 9, "days_rel": 39, "gap_med": 39, "n_releases_24m": 10}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1348, forks 172 (observed 2026-08-28T04:04:27.607178+00:00)

## What it is
Zealot is a self-hosted web platform for distributing beta and internal builds of Android, iOS, macOS, Windows, and Linux applications, acting as an open-source alternative to TestFlight or Pgyer. Built with Ruby on Rails and shipped as a Docker image, it ingests builds from CI systems via REST/GraphQL APIs, iOS/Android SDKs, and a fastlane plugin, then organizes them into channels for tester distribution with webhooks, app metadata parsing, and iOS device UDID registration.

## Use cases
- self-hosted testflight alternative for beta app distribution
- distribute android apk/aab builds to internal testers
- over-the-air ios app distribution behind the firewall
- automatically upload builds from jenkins or gitlab ci to testers
- manage ios test devices and register udids with apple developer
- pgyer or fir alternative I can host myself
- share nightly mobile builds with a QA team by channel

## When to choose
- you need full control over where beta builds and their metadata are stored, on your own infrastructure
- you distribute apps across several platforms (iOS, Android, macOS, Windows, Linux) and want one self-hosted hub with channels and team permissions
- your CI pipeline (Jenkins, GitLab, fastlane) should push releases automatically via REST API or SDKs
- you need iOS test-device syncing and one-click UDID registration for ad-hoc provisioning

## When to avoid
- your goal is publishing to public app stores (App Store, Google Play) rather than beta/internal distribution
- you don't want to operate a Dockerized Rails service, including upgrades and storage management
- a hosted solution like TestFlight or Firebase App Distribution is acceptable and you prefer zero maintenance
- you only need a simple static file host for occasional APK sharing without device tracking or access control

## Facets
- artifact type: service
- maturity: stable
- function: deployment, file-upload, webhook, auth, sdk, http-server, self-hosted, developer-tools
- domain: mobile-development, developer-tools, self-hosted, apis, android-tools, apple-ecosystem, cross-platform
- platform: ruby, self-hosted, cross-platform
- tags: app-distribution, beta-testing, over-the-air, ota-server, testflight-alternative, fastlane-plugin, ci-cd-integration, ad-hoc-distribution, udid-registration, app-release-management, ruby-on-rails, devops, automation, docker, web-server, linux

## Member repositories
- tryzealot/zealot (main) score 94

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:04:27.607178+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T04:42:34.736567+00:00, confidence not recorded.
  - readme: https://github.com/tryzealot/zealot (fetched 2026-08-28T04:04:27.607178+00:00, sha b1b313ffdf04)
  - homepage: https://zealot.ews.im (fetched 2026-08-29T12:01:36.214852+00:00, sha 0ecdc63aa9e4)
  - site_page: https://zealot.ews.im/docs/self-hosted (fetched 2026-08-29T12:01:36.217251+00:00, sha 0893e2a32a8c)
  - site_page: https://zealot.ews.im/docs/developer-guide (fetched 2026-08-29T12:01:36.219110+00:00, sha cf1ab73d649a)
  - site_page: https://zealot.ews.im/docs/user-guide (fetched 2026-08-29T12:01:36.221008+00:00, sha ab4b9486cb48)
  - site_page: https://zealot.ews.im/docs/user-guide/changelog (fetched 2026-08-29T12:01:36.222855+00:00, sha af1d53c7fa09)
  - site_page: https://zealot.ews.im/docs/developer-guide/api (fetched 2026-08-29T12:01:36.225779+00:00, sha 985a907adb76)
  - site_page: https://zealot.ews.im/docs/next/self-hosted (fetched 2026-08-29T12:01:36.227246+00:00, sha 67b1d0fde222)
  - site_page: https://zealot.ews.im/docs/5.3/self-hosted (fetched 2026-08-29T12:01:36.228619+00:00, sha dc25c1ae7546)
  - site_page: https://zealot.ews.im/docs/4.7.1/self-hosted (fetched 2026-08-29T12:01:36.229970+00:00, sha 280c3a3cfe72)
- Data as of 2026-08-30T08:39:29.467469+00:00.
