Distr
Software Distribution Platform
Distr is the open-source platform to ship self-hosted software. Start simple, scale as you go. Onboard to Distr and setup Docker Compose POCs in minutes, Helm and air-gapped when the deal needs it. All the tools you need to succeed with offering self-hosted.
Website • Quickstart • Documentation • Blog • Community
Main features
- Deployment controllers: Prebuilt Docker Compose, Docker Swarm and Helm controllers install and update your application in customer environments and report status, logs and metrics back.
- Infrastructure controllers: The OpenTofu controller provisions and reconciles the cloud infrastructure of BYOC and other Terraform installations, deployed as a regular Distr application.
- OCI registry: Distribute Docker images, Helm charts, Zarf packages, and any OCI artifact, with per-customer tag access control, pull-through caching, and download analytics.
- Licensing: Application and artifact entitlements per customer, plus signed JWT license keys your application verifies offline with no call back to Distr.
- Remote diagnostics: Container logs, live metrics, deployment status, alerts, and customer-initiated support bundles, without access to their infrastructure.
- Customer portal: White-labeled install instructions, artifact downloads, credentials, and version control per customer organization.
- Air-gapped: Build a Zarf package in CI, publish it to Distr, transfer it across the gap, deploy offline.
- Self-hostable: Apache-2.0. One Go binary plus Postgres 18+, object storage, and Loki. Paid plans run self-hosted too.
- Automate everything through the REST API and the SDK.
Check out the hosted version at https://distr.sh/onboarding/.
Why Distr
Shipping into customer-controlled environments starts with a Helm chart or a Compose file. It ends with license keys, per-customer artifact entitlements, version tracking across every install, update orchestration, and a way to debug a deployment you cannot SSH into. Distr is that layer, running today in GovCloud and defense, regulated banking, health tech, manufacturing, enterprise AI, and developer tools.
Use cases include:
- On-premises, VPC and self-hosted software deployments
- Bring Your Own Cloud (BYOC) and Terraform infrastructure provisioning
- Edge & Fleet management
Architecture overview
architecture-beta
group ctrl(cloud)[Distr Cloud or Your Cloud]
service distr(server)[Distr] in ctrl
service db(database)[PostgreSQL] in ctrl
service loki(database)[Loki Log Storage] in ctrl
service oci(database)[Distr OCI Registry] in ctrl
service s3(disk)[Object Storage] in ctrl
oci:R -- L:distr
db:T -- B:distr
loki:L -- R:distr
oci:B -- T:s3
junction customerjunction
distr:R <-- L:customerjunction
customerjunction:T -- B:controller
customerjunction:B -- T:client
group controllercustomer(cloud)[Customer Cloud]
service controller(internet)[Distr Controller] in controllercustomer
service app(server)[Your Application] in controllercustomer
controller:L --> R:app
group ocicustomer(cloud)[Fully self managed customer]
service client(internet)[OCI client] in ocicustomer
Self-hosting
In case you get stuck, have questions, or need help, we're happy to support you, join our community forum.
Docker
Distr is distributed as a Docker image via ghcr.io.
Check out deploy/docker/quickstart for our example deployment using Docker Compose.
To get started quickly, do the following:
mkdir distr && cd distr && curl -fsSL https://github.com/distr-sh/distr/releases/latest/download/deploy-quickstart.tar | tar -x
make necessary changes to the .env file
docker compose up -d
Kubernetes
Distr is also available as a Helm chart distributed via ghcr.io.
Check out deploy/charts/distr for our Helm Chart source code.
To install Distr in Kubernetes, simply run:
helm upgrade --install --wait --namespace distr --create-namespace \
distr oci://ghcr.io/distr-sh/charts/distr \
--set postgresql.enabled=true --set rustfs.enabled=true
For a quick testing setup, you don't have to modify the values. However, if you intend to use distr in production, please revisit all available configuration values and adapt them accordingly. You can find them in the reference values.yaml file.
Register your first account at http://localhost:8080/register
The full self-hosting documentation is at https://distr.sh/docs/self-hosting/
Using Distr controllers on macOS? Follow the macOS guide to get started. Using Distr controllers on Windows with WSL2? Follow the Windows WSL2 guide to get started.
Building from source
To build Distr from source we recommend that you use mise to install all required dependencies, but you don't have to.
All dependency versions and build tasks can be found in the mise.toml file, for example:
# Build Distr
mise run build:distr:community
Build all docker images
mise run "docker-build:**"
Distr Integrations
Distr offers several ways to integrate with your existing tools and workflows.
Distr API
Distr provides a comprehensive REST API that allows you to manage deployments, artifacts, controllers, licenses and more programmatically. The full API reference is available at https://app.distr.sh/docs.
For further details on authentication and usage, see https://distr.sh/docs/integrations/api/.
Distr SDK
Interact with Distr directly from your application code using our first-party SDK. The Distr SDK is currently available for JavaScript only, but more languages and frameworks are on the roadmap. Let us know what you would like to see!
You can install the Distr SDK for JavaScript from npmjs.org:
npm install --save @distr-sh/distr-sdk
The full SDK documentation is at https://distr.sh/docs/integrations/sdk/
GitHub Action
Automate artifact version creation in your CI/CD pipeline with the official Distr GitHub Action. It is available at https://github.com/distr-sh/distr-create-version-action.
For setup and usage instructions, see https://distr.sh/docs/integrations/gh-action/.
Contributing & Local Development
If you are interested in contributing to Distr or want to modify it for your own needs, check out our contributing guidelines.
License
Distr is licensed under the Apache License 2.0. For a hosted version and Enterprise plans, see https://distr.sh/pricing/.