{"id":25053285,"url":"https://github.com/glasskube/distr","last_synced_at":"2026-01-07T13:23:49.282Z","repository":{"id":274642766,"uuid":"890947436","full_name":"glasskube/distr","owner":"glasskube","description":"Software Distribution Platform - Distr is the easiest way to distribute enterprise software to customer-controlled or shared-responsibility environments.","archived":false,"fork":false,"pushed_at":"2025-02-04T15:47:18.000Z","size":1998,"stargazers_count":326,"open_issues_count":4,"forks_count":8,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-04T16:26:53.837Z","etag":null,"topics":["angular","cloud","docker-compose","glasskube","go","golang","kubernetes","on-prem","on-premises","software-distribution"],"latest_commit_sha":null,"homepage":"https://distr.sh/docs","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/glasskube.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-19T13:14:16.000Z","updated_at":"2025-02-04T15:53:39.000Z","dependencies_parsed_at":"2025-01-28T15:36:11.723Z","dependency_job_id":null,"html_url":"https://github.com/glasskube/distr","commit_stats":null,"previous_names":["glasskube/distr"],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glasskube%2Fdistr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glasskube%2Fdistr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glasskube%2Fdistr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/glasskube%2Fdistr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/glasskube","download_url":"https://codeload.github.com/glasskube/distr/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237460804,"owners_count":19313579,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["angular","cloud","docker-compose","glasskube","go","golang","kubernetes","on-prem","on-premises","software-distribution"],"created_at":"2025-02-06T11:01:57.281Z","updated_at":"2026-01-07T13:23:49.261Z","avatar_url":"https://github.com/glasskube.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"\u003cbr\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"https://glasskube.dev?utm_source=github\"\u003e\n    \u003cimg src=\"https://github.com/glasskube/distr/blob/main/frontend/ui/public/distr-logo.svg\" alt=\"Distr Logo\" height=\"160\"\u003e\n  \u003c/a\u003e\n\u003ch1 align=\"center\"\u003eDistr\u003c/h1\u003e\n\u003cbr\u003e\n\u003ch2\u003eSoftware Distribution Platform\u003c/h2\u003e\n\nDistr enables software and AI companies to distribute applications to self-managed customers with minimal setup.\n\n### **[Website](https://glasskube.dev/?utm_source=github)** • **[Quickstart](https://distr.sh/docs/getting-started/quickstart/?utm_source=github)** • **[Documentation](https://distr.sh/docs/getting-started/about/?utm_source=github)** • **[Blog](https://glasskube.dev/blog/)** • **[Twitter](https://x.com/glasskube)** • **[Discord](https://discord.gg/6qqBSAWZfW)**\n\n\u003chr\u003e\n\n[![GitHub Repo stars](https://img.shields.io/github/stars/glasskube/distr?style=flat)](https://github.com/glasskube/distr)\n[![License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n[![Artifact Hub](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/distr)](https://artifacthub.io/packages/helm/distr/distr)\n\n![Deployment Overview](https://github.com/glasskube/glasskube.dev/blob/main/static/img/screenshots/distr/distr-dashboard-dark.webp)\n\n\u003chr\u003e\n\n\u003c/div\u003e\n\n## Main features\n\n- **Centralized Management:** View \u0026 manage all deployments, artifacts, connected agents, self-managed \u0026 BYOC customers via the intuitive web UI\n- **Deployment Automation:** Optional prebuilt Helm and Docker agents manage deployments, collect logs and metrics, and allow remote troubleshooting.\n- **White-label customer portal:** Let your customers control their deployments or download your artifacts\n- **License Management:** Distribute specific versions of your application to specific customers\n- **Container registry:** Distribute OCI-compatible artifacts (Docker images, Helm charts, Terraform modules) with built-in granular access control and analytics.\n- Access the API using our [**rich SDK**](#distr-sdk)\n- Fully Open Source and [self-hostable](#self-hosting)\n\nCheck out the hosted version at https://distr.sh/get-started/.\n\n## About\n\nDistr 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.\n\n**Use cases include:**\n\n- On-premises, VPC and self-managed software deployments\n- Bring Your Own Cloud (BYOC) automation\n- Edge \u0026 Fleet management\n\nRead more about Distr and our use cases at https://distr.sh/docs/getting-started/about/\n\n## Architecture overview\n\n```mermaid\narchitecture-beta\n    group ctrl(cloud)[Distr Saas or Your Cloud]\n    service hub(server)[Distr Hub] in ctrl\n    service db(database)[PostgreSQL] in ctrl\n    service oci(database)[Distr OCI Registry] in ctrl\n    service s3(disk)[Object Storage] in ctrl\n    oci:R -- L:hub\n    db:T -- B:hub\n    oci:B -- T:s3\n\n    junction customerjunction\n\n    hub:R \u003c-- L:customerjunction\n    customerjunction:T -- B:agent\n    customerjunction:B -- T:client\n\n\n    group agentcustomer(cloud)[Customer Cloud]\n    service agent(internet)[Distr Agent] in agentcustomer\n    service app(server)[Your Application] in agentcustomer\n    agent:L --\u003e R:app\n\n    group ocicustomer(cloud)[Fully self managed customer]\n    service client(internet)[OCI client] in ocicustomer\n```\n\n## Self-hosting\n\nIn case you get stuck, have questions, or need help, we're happy to support you,\ndrop by our [Discord](https://discord.gg/6qqBSAWZfW).\n\n### Docker\n\nThe Distr Hub is distributed as a Docker image via ghcr.io.\nCheck out [`deploy/docker`](deploy/docker) for our example deployment using Docker Compose.\nTo get started quickly, do the following:\n\n```shell\nmkdir distr \u0026\u0026 cd distr \u0026\u0026 curl -fsSL https://github.com/glasskube/distr/releases/latest/download/deploy-docker.tar.bz2 | tar -jx\n# make necessary changes to the .env file\ndocker-compose up -d\n```\n\n### Kubernetes\n\nDistr is also available as a Helm chart distributed via ghcr.io.\nCheck out [`deploy/charts/distr`](deploy/charts/distr) for our Helm Chart source code.\nTo install Distr in Kubernetes, simply run:\n\n```shell\nhelm upgrade --install --wait --namespace distr --create-namespace \\\n  distr oci://ghcr.io/glasskube/charts/distr \\\n  --set postgresql.enabled=true --set minio.enabled=true\n```\n\nFor a quick testing setup, you don't have to modify the values.\nHowever, if you intend to use distr in production, please revisit all available configuration values and adapt them accordingly.\nYou can find them in the reference [values.yaml](https://artifacthub.io/packages/helm/distr/distr?modal=values) file.\n\n\u003chr\u003e\n\nRegister your first account at http://localhost:8080/register\n\nThe full self-hosting documentation is at https://distr.sh/docs/self-hosting/self-hosting/\n\nUsing Distr agents on macOS? Follow the [guide](https://distr.sh/docs/guides/distr-on-macos/) to get started.\n\n### Building from source\n\nTo build Distr Hub from source, first ensure that the following build dependencies are installed:\n\n- NodeJS (Version 22)\n- Go (Version 1.25)\n- Docker (when building the Docker images)\n\nWe recommend that you use [mise](https://mise.jdx.dev/) to install these tools, but you do don't have to.\n\nAll build tasks can be found in the `mise.toml` file, for example:\n\n```shell\n# Build the control plane\nmise run build:hub\n# Build all docker images\nmise run \"docker-build:**\"\n```\n\n### Local development \u0026 Contributing\n\nCheck out our [contributing guidelines](./CONTRIBUTING.md).\n\n## Distr SDK\n\nInteract with Distr directly from your application code using our first-party SDK.\nThe Distr SDK is currently available for JavaScript only, but more languages and frameworks are on the roadmap.\nLet us know what you would like to see!\n\nYou can install the Distr SDK for JavaScript from [npmjs.org](https://npmjs.org/):\n\n```shell\nnpm install --save @glasskube/distr-sdk\n```\n\nThe full SDK documentation is at https://distr.sh/docs/integrations/sdk/\n\n## Distr MCP server\n\nUse the Distr MCP server to connect your deployments, applications, artifacts and licenses to agentic workflows,\nor to interact with the Distr platform in LLM Clients.\n\nThe Distr MCP server is hosted on HyprMCP ([hyprmcp.com](https://hyprmcp.com/) \u0026 [`hyprmcp/jetski`](http://github.com/hyprmcp/jetski/)).\nIt can either be used as a Remote MCP server via the streamable HTTP protocol or used locally via stdio.\n\n\u003e [!NOTE]  \n\u003e The Distr MCP server requires authentication via a personal access token.\n\nConfigure a [personal access token (PAT)](https://distr.sh/docs/integrations/personal-access-token/)\nin an `Authorization` header when calling the MCP server.\n\n**Header name:** `Authorization`\n**Header value:** `AccessToken distr-bc46...`\n\nExample configuration for Claude Code would look like:\n\n```shell\nclaude mcp add --transport http distr https://glasskube.hyprmcp.cloud/distr/mcp --header \"Authorization: AccessToken distr-bc46...\"\n```\n\nThe full MCP Server documentation is at https://distr.sh/docs/integrations/mcp/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglasskube%2Fdistr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fglasskube%2Fdistr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fglasskube%2Fdistr/lists"}