A lightweight, self-hosted, API-first service for managing mobile application releases and evaluating update policies. Given a client's current version, it decides whether the app should continue normally, be notified that an update is available, or be required to update before continuing.
VersionGate does not distribute application binaries — it only manages release metadata and update policies.
Requires Docker and Docker Compose, plus a Go toolchain for the CLI (bootstrap/migrations):
git clone https://github.com/manuelzzz/versiongate.git
cd versiongate
docker compose up -dThen apply the database schema and create your first Project and API Token with the CLI:
go install github.com/manuelzzz/versiongate/cmd/versiongate@latest
export VERSIONGATE_DATABASE_DSN="postgres://versiongate:versiongate@localhost:5432/versiongate?sslmode=disable"
versiongate migrate up
versiongate bootstrap --name "My Project"See Installation and CLI bootstrap for the full walkthrough.
Full docs: https://manuelzzz.github.io/versiongate/ (source under
docs/, built with Astro + Starlight per
specs/decisions/docs-site.md).
- Installation — Docker-based install, and how to uninstall.
- CLI bootstrap — creating the first Project and API Token with the CLI.
- Managing the database schema — applying, rolling back, and inspecting migrations.
- Publishing Releases — publishing a Release from CI/CD.
- Update Check — integrating the update-check endpoint in a mobile client.
- Contribute —
building, testing, and contributing (see also
CONTRIBUTING.md, the canonical version).
specs/— domain concepts, protocols, and architectural decisions: the source of truth for why VersionGate is shaped the way it is..rules/— development rules and coding guidelines governing how code is written in this repository.AGENTS.md— entry point for how repository knowledge is organized, for humans and AI agents alike.