Distr enables software and AI companies to distribute applications to self-managed customers with minimal setup.
Website • Quickstart • Documentation • Blog • Twitter • Discord
- Centralized Management: View & manage all deployments, artifacts, connected agents, self-managed & BYOC customers via the intuitive web UI
- Deployment Automation: Optional prebuilt Helm and Docker agents manage deployments, collect logs and metrics, and allow remote troubleshooting.
- White-label customer portal: Let your customers control their deployments or download your artifacts
- License Management: Distribute specific versions of your application to specific customers
- Container registry: Distribute OCI-compatible artifacts (Docker images, Helm charts, Terraform modules) with built-in granular access control and analytics.
- Access the API using our rich SDK
- Fully Open Source and self-hostable
Check out the hosted version at https://signup.distr.sh/
Distr is an Open Source software distribution platform that provides a ready-to-use setup with prebuilt components to help software and AI companies distribute applications to customers in complex, self-managed environments.
Use cases include:
- On-premises, VPC and self-managed software deployments
- Bring Your Own Cloud (BYOC) automation
- Edge & Fleet management
Read more about Distr and our use cases at https://distr.sh/docs/getting-started/about/
architecture-beta
group ctrl(cloud)[Distr Saas or Your Cloud]
service hub(server)[Distr Hub] in ctrl
service db(database)[PostgreSQL] in ctrl
service oci(database)[Distr OCI Registry] in ctrl
service s3(disk)[Object Storage] in ctrl
oci:R -- L:hub
db:T -- B:hub
oci:B -- T:s3
junction customerjunction
hub:R <-- L:customerjunction
customerjunction:T -- B:agent
customerjunction:B -- T:client
group agentcustomer(cloud)[Customer Cloud]
service agent(internet)[Distr Agent] in agentcustomer
service app(server)[Your Application] in agentcustomer
agent:L --> R:app
group ocicustomer(cloud)[Fully self managed customer]
service client(internet)[OCI client] in ocicustomer
The Distr Hub is distributed as a Docker image via ghcr.io.
Check out deploy/docker
for our example deployment using Docker Compose.
To get started quickly, do the following:
mkdir distr && cd distr && curl -fsSL https://github.com/glasskube/distr/releases/latest/download/deploy-docker.tar.bz2 | tar -jx
# make necessary changes to the .env file
docker-compose up -d
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/glasskube/charts/distr \
--set postgresql.enabled=true --set minio.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/self-hosting/
Using Distr agents on macOS? Follow the guide to get started.
To build Distr Hub from source, first ensure that the following build dependencies are installed:
- NodeJS (Version 22)
- Go (Version 1.24)
- Docker (when building the Docker images)
We recommend that you use mise to install these tools, but you do don't have to.
All build tasks can be found in the Makefile
, for example:
# Build the control plane
make build
# Build all docker images
make build-docker
To run the Distr Hub locally, you need to clone the repository and run the following commands:
# Start the database and a mock SMTP server
docker-compose up -d
# Start Distr Hub
make run
Open your browser and navigate to http://localhost:8080/register
to register a user
and receive the E-Mail verification link via Mailpit on http://localhost:8025
.
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 @glasskube/distr-sdk
The full SDK documentation is at https://distr.sh/docs/integrations/sdk/