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
- Visit maven.registry.hochguertel.work
- Login with admin credentials
- Navigate to Settings → Access Tokens
- 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:
- Check logs for the initial token:
task logs:maven - Or set via env:
REPOSILITE_OPTS=--token admin:YourSecret - Login at maven.registry.hochguertel.work
Backup
tar -czf maven-backup-$(date +%Y%m%d).tar.gz data/maven/