Alexander Karpukhinak23.xyz

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:

  1. The user creates a package definition and uploads assets.
  2. The web service stores metadata and source-file references.
  3. A build request is queued.
  4. The packager retrieves the required files, runs the target-specific packaging routine, and writes outputs.
  5. The file-server side updates repository metadata and exposes download or repository-install routes.
  6. 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.