Tuesday, 6 May 2025

One Container to Host Them All

What if you could run a single container to host your .deb, .rpm, Docker images, and Helm charts—without the overhead of setting up a full artifact manager like Nexus or Artifactory?

This idea started with a simple goal: reduce complexity in self-hosted infrastructure. I needed a unified repo that would be:

  • Lightweight: Run anywhere with Docker
  • Self-contained: No external dependencies
  • Multi-purpose: Support the most common packaging formats in one place

So I built exactly that.

A Unified Artifact Repository

The container I created serves as a multi-protocol artifact repository. It handles:

  • APT (Debian) repositories for .deb packages
  • YUM/DNF (Red Hat) repositories for .rpm packages
  • Helm chart repositories for Kubernetes deployments
  • Docker Registry v2 compatible endpoints for image hosting

All in a single Dockerfile.

No glue scripts. No multiple services. Just one clean container that can be dropped into any GitOps or CI/CD pipeline.

GitLab-Compatible, But Not GitLab-Bound

While I tested and showcased this container using GitLab CI/CD (as seen in my recent posts), it's not tied to GitLab. It works anywhere Docker containers run—whether that’s a home lab, a cloud VM, or inside Kubernetes.

Why This Matters

This project was born out of real pain: managing too many different tools for different artifact types. If you've ever had to set up S3-backed Helm repos, host private Docker registries, or deal with GPG-signed .deb packages—you know the sprawl.

By consolidating these into a single endpoint, you:

  • Reduce maintenance surface area
  • Improve developer onboarding
  • Simplify CI/CD configurations
  • Own your own supply chain

How to Use It

For full setup details, configuration, and source code, visit the GitLab repo:
👉 gitlab.com/jlcox70/repository-server

No comments:

Post a Comment