DistroPack
DistroPack is a packaging and software distribution platform. A user uploads source files or release assets, configures package metadata and target formats, and triggers builds that produce installable artifacts and hosted repositories.
Scope
The platform is designed to automate work that is usually handled separately for each distribution:
- package-file generation,
- repository metadata generation,
- artifact signing,
- build job execution and tracking,
- source-file storage,
- user/project/package management,
- subscription enforcement and billing integration.
The product currently presents Debian/Ubuntu, Fedora/RHEL, Arch Linux, archive packaging, Alpine for Linux and most macOS formats.
Service architecture
The commercial codebase is organized as three principal services.
DistroPack.Web
This service provides the frontend and API layer. It handles:
- user authentication,
- subscription state,
- project and package configuration,
- build requests,
- upload coordination,
- build-status views,
- billing and entitlement checks.
DistroPack.Packager
This service performs package construction. It is responsible for:
- interpreting package configuration,
- selecting the build target,
- materializing package-specific file layouts,
- executing lifecycle scripts,
- emitting artifacts for the selected target format,
- tracking job-level success or failure.
DistroPack.FileServer
This service hosts built artifacts and repository files. It handles:
- package download paths,
- repository metadata,
- signing output,
- distribution-specific repository structures,
- public artifact retrieval.
Build and distribution workflow
The end-to-end workflow is:
- The user creates a package definition and uploads assets.
- The web service stores metadata and source-file references.
- A build request is queued.
- The packager retrieves the required files, runs the target-specific packaging routine, and writes outputs.
- The file-server side updates repository metadata and exposes download or repository-install routes.
- The web service reports build status and exposes the final install path to the user.
This is more involved than producing one archive file. Each supported package ecosystem has different expectations around layout, metadata, repository indexes, and installation conventions.
Developer tooling
The wider DistroPack ecosystem also includes:
- a Rust CLI for uploads, builds, configuration, and CI use,
- a GitHub Action intended to drive package builds from repository workflows,
- documentation for generic CI usage and platform-specific setup.
These tools convert the hosted product into something that can be used from automated release pipelines rather than only from the dashboard.