Skip to content
forked from glasskube/distr

Software Distribution Platform - Distr is the easiest way to distribute enterprise software to customer-controlled or shared-responsibility environments.

License

Notifications You must be signed in to change notification settings

thekubernaut/distr

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Distr

Software Distribution Platform

GitHub Repo stars License Docs Artifact Hub

Distr is the easiest way to distribute enterprise software to customer-controlled or shared-responsibility environments.

Main features

  • View & manage all deployments, artifacts, connected agents, self-managed & BYOC customers via the intuitive web UI
  • Let your customers control their deployments or download your artifacts via the white-label customer portal
  • Distribute specific versions of your application to specific customers with our licensing feature
  • Distribute OCI compatible artifacts (Docker images, Helm charts, Terraform modules) to your customers with our integrated OCI registry
  • Access the API using our rich SDK
  • Fully open-source and self-hostable

Check out the hosted version at https://signup.distr.sh/

About

Distr is an Open Source commercial software distribution platform designed for Independent Software Vendors (ISVs). It supports ISVs in delivering their software solutions to end customers operating in complex, customer-controlled environments.

Use cases include:

  • On-premises 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 overview

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
Loading

Self-hosting

Docker

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

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/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.

Building from source

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

Local development

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.

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 @glasskube/distr-sdk

The full SDK documentation is at https://distr.sh/docs/integrations/sdk/

About

Software Distribution Platform - Distr is the easiest way to distribute enterprise software to customer-controlled or shared-responsibility environments.

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 42.6%
  • HTML 29.4%
  • TypeScript 27.2%
  • Smarty 0.4%
  • Makefile 0.2%
  • JavaScript 0.2%