Private Maven Registry (CI/CD Setup)
Private Maven Registry (Reposilite) — Usage Guide
Section titled “Private Maven Registry (Reposilite) — Usage Guide”Registry URL:
https://maven.registry.hochguertel.workAuth: Authentik OIDC (browser) + Reposilite per-user tokens (CLI) Container:registry-maven
Architecture
Section titled “Architecture”
- Browser login: Authentik OIDC (Authorization Code + PKCE) — plugin auto-provisions a per-user Reposilite token
- CLI/CI login: Reposilite token (Basic auth) — username = token name, password = token secret
- Repository:
releases(private uploads)
CLI Usage
Section titled “CLI Usage”Maven — settings.xml
Section titled “Maven — settings.xml”<settings> <servers> <server> <id>hochguertel-releases</id> <username>infra</username> <password><token-secret></password> </server> </servers></settings>Maven — pom.xml
Section titled “Maven — pom.xml”<distributionManagement> <repository> <id>hochguertel-releases</id> <url>https://maven.registry.hochguertel.work/releases</url> </repository></distributionManagement>Gradle
Section titled “Gradle”repoUser=infrarepoToken=<token-secret>publishing { repositories { maven { url = uri("https://maven.registry.hochguertel.work/releases") credentials { username = project.findProperty("repoUser") as String? ?: "" password = project.findProperty("repoToken") as String? ?: "" } } }}CI/CD (Forgejo Actions)
Section titled “CI/CD (Forgejo Actions)”- name: Configure settings.xml run: | mkdir -p ~/.m2 cat > ~/.m2/settings.xml << 'EOF' <settings> <servers> <server> <id>hochguertel-releases</id> <username>${{ secrets.MAVEN_TOKEN_NAME }}</username> <password>${{ secrets.MAVEN_TOKEN_SECRET }}</password> </server> </servers> </settings> EOF
- name: Deploy run: mvn deployKey Differences from Other Registries
Section titled “Key Differences from Other Registries”| Aspect | Reposilite (Maven) | Verdaccio (npm) | DevPI (PyPI) | Docker Registry |
|---|---|---|---|---|
| Auth | Reposilite token (Basic) | htpasswd (Basic) | Authentik API token (Basic) | JWT (RS256) via auth-bridge |
| Token source | OIDC login → Reposilite token | htpasswd file | Authentik ak shell | Authentik ak shell |
| UI auth | Authentik OIDC (native) | Authentik OIDC | Authentik OIDC (native) | Authentik SSO forward-auth |
| Push tool | mvn deploy / gradle publish | npm publish | uv publish | podman push |
Full guide
Section titled “Full guide”The complete guide with troubleshooting, token management, operations, and
Gradle setup is in the registries repo:
/opt/services/registries/docs/maven-registry-guide.md