Architecture
Overview
The Registry Platform centralizes all package registries under *.registry.hochguertel.work.
┌─────────────────┐
│ Traefik │
│ (reverse proxy) │
└────────┬────────┘
│
┌──────────────┼──────────────┐
│ │ │
┌─────────▼─────────┐ │ ┌──────────▼──────────┐
│ Authelia │ │ │ Docs Site │
│ (SSO / Forward) │ │ │ (VitePress) │
└───────────────────┘ │ └──────────────────────┘
│
┌───────────────────┼───────────────────┐
│ │ │
┌─────▼─────┐ ┌──────▼──────┐ ┌──────▼──────┐
│ npm │ │ Docker │ │ Maven │
│ (Verdaccio)│ │ Registry v3 │ │ (Reposilite)│
└───────────┘ │ + Token Srv │ └─────────────┘
│ + UI │ │
└─────────────┘ ┌─────▼─────┐
│ PyPI │
│ (DevPI) │
└───────────┘Directory Structure
/opt/services/registries/
├── docker-compose.yml # Root (includes + networks)
├── compose/
│ ├── npm.yml # Verdaccio service
│ ├── docker.yml # Docker Registry + Token Server + UI
│ ├── maven.yml # Reposilite service
│ └── pypi.yml # DevPI service
├── env/ # Container env files
├── npm/ # Verdaccio config & Dockerfile
├── docker/ # Docker Registry config, token-server, scripts
├── pypi/ # DevPI Dockerfile & entrypoint
├── data/ # Persistent data (gitignored)
├── tests/ # API & E2E tests
├── docs-site/ # VitePress documentation
├── scripts/ # Init, health check scripts
└── Taskfile.yml # Central task orchestrationNetwork
All services connect to the external public-hochguertel.work Podman network, which is shared with Traefik and other services.
Domain Routing
| Domain | Service | Port |
|---|---|---|
npm.registry.hochguertel.work | Verdaccio | 4873 |
docker.registry.hochguertel.work | Docker Registry v3 | 5000 |
docker-ui.registry.hochguertel.work | Joxit Docker UI | 80 |
maven.registry.hochguertel.work | Reposilite | 8080 |
pypi.registry.hochguertel.work | DevPI | 3141 |
docs.registry.hochguertel.work | VitePress docs | 80 |