Maven Registry (Reposilite)

Private Maven and Gradle repository powered by Reposilite.

URL: maven.registry.hochguertel.work

Features

  • Maven and Gradle artifact hosting
  • Web UI for browsing artifacts
  • Built-in access token management
  • Supports snapshots and releases repositories
  • Lightweight (single JAR, ~30MB)

Quick Start

Maven

Add to ~/.m2/settings.xml:

<settings>
  <servers>
    <server>
      <id>hochguertel</id>
      <username>your-user</username>
      <password>your-token</password>
    </server>
  </servers>
</settings>

Add to pom.xml:

<repositories>
  <repository>
    <id>hochguertel</id>
    <url>https://maven.registry.hochguertel.work/releases</url>
  </repository>
</repositories>

Gradle (Kotlin DSL)

repositories {
    maven {
        url = uri("https://maven.registry.hochguertel.work/releases")
        credentials {
            username = project.findProperty("repoUser") as String? ?: ""
            password = project.findProperty("repoToken") as String? ?: ""
        }
    }
}

Developer Guide

Generate Access Token

  1. Visit maven.registry.hochguertel.work
  2. Login with admin credentials
  3. Navigate to Settings → Access Tokens
  4. Create a new token with appropriate permissions

Maven Configuration

Add to ~/.m2/settings.xml:

<settings>
  <servers>
    <server>
      <id>hochguertel-releases</id>
      <username>your-user</username>
      <password>your-access-token</password>
    </server>
    <server>
      <id>hochguertel-snapshots</id>
      <username>your-user</username>
      <password>your-access-token</password>
    </server>
  </servers>
</settings>

Download Dependencies

Add to your pom.xml:

<repositories>
  <repository>
    <id>hochguertel-releases</id>
    <url>https://maven.registry.hochguertel.work/releases</url>
    <releases><enabled>true</enabled></releases>
    <snapshots><enabled>false</enabled></snapshots>
  </repository>
  <repository>
    <id>hochguertel-snapshots</id>
    <url>https://maven.registry.hochguertel.work/snapshots</url>
    <releases><enabled>false</enabled></releases>
    <snapshots><enabled>true</enabled></snapshots>
  </repository>
</repositories>

Publish Artifacts

Add to your pom.xml:

<distributionManagement>
  <repository>
    <id>hochguertel-releases</id>
    <url>https://maven.registry.hochguertel.work/releases</url>
  </repository>
  <snapshotRepository>
    <id>hochguertel-snapshots</id>
    <url>https://maven.registry.hochguertel.work/snapshots</url>
  </snapshotRepository>
</distributionManagement>

Then deploy:

mvn deploy

Gradle (Kotlin DSL)

publishing {
    repositories {
        maven {
            name = "hochguertel"
            url = uri("https://maven.registry.hochguertel.work/releases")
            credentials {
                username = project.findProperty("repoUser") as String? ?: ""
                password = project.findProperty("repoToken") as String? ?: ""
            }
        }
    }
}

Set credentials in ~/.gradle/gradle.properties:

repoUser=your-user
repoToken=your-access-token

DevOps Guide

Architecture

Reposilite runs as a single container with an embedded web server.

  • Image: dzikoysk/reposilite:3.5.26
  • Port: 8080 (internal)
  • Storage: Bind mount at data/maven/
  • JVM: 256MB max heap

Management

cd /opt/services/registries

task up:maven
task down:maven
task logs:maven

# Health check
curl -sf https://maven.registry.hochguertel.work/api/status/instance

Initial Setup

On first run, access the web UI and create an admin token:

  1. Check logs for the initial token: task logs:maven
  2. Or set via env: REPOSILITE_OPTS=--token admin:YourSecret
  3. Login at maven.registry.hochguertel.work

Backup

tar -czf maven-backup-$(date +%Y%m%d).tar.gz data/maven/