Skip to content

Lightweight repository management software dedicated for the Maven artifacts (formerly NanoMaven) 📦

License

Notifications You must be signed in to change notification settings

jolheiser/reposilite

Repository files navigation

Reposilite Build Status

Reposilite (formerly NanoMaven) - lightweight repository manager for Maven artifacts. It is a simple solution to replace managers like Nexus, Archiva or Artifactory.

Preview

Features

  • Working Maven repository manager (example: repo.panda-lang.org)
  • Docker image (repository: dzikoysk/reposilite)
  • Authorization (deploy and downloads)
  • Deploy (using tokens and BCrypt)
  • Customizable front page
  • dependabot supported
  • Multiple repositories under a single URL
  • CLI
  • Snapshots
  • Proxy for the specified remote repositories
  • Multithreading
  • Statistics
  • REST API
  • Repository browser
  • Dashboard (+ Admin panel)
  • Docs

Installation

Releases: GitHub Downloads
Images: DockerHub Repository
Requirements:

  • Java 8+
  • RAM 8MB+
Amount Description
8MB Tiny repository for personal projects
16MB - 32MB --------------------^------------------ + CI + Proxy
48MB - 128MB Tiny public repository (recommended)
128MB+ Public repository

To launch Reposilite with defined amount of RAM, use Xmx parameter:

$ java -Xmx<Amount>M -jar reposilite.jar

If you will not define the memory size, Reposilite will probably use around ~30MB to ~250MB. You may also use Reposilite through the docker image:

$ docker pull dzikoysk/reposilite

You can also pass custom configuration values through the environment variables:

$ docker run -e JAVA_OPTS='-Xmx128M -Dreposilite.port="8080"' reposilite

Guide

List of available management commands

Reposilite 2.6.0 Commands:
  help - List available commands
  status - Display summary status of app health
  stats [<limiter>/<pattern>] - Display collected metrics and (optional) filter them using the given limiter or pattern
  tokens - List all generated tokens
  keygen <path> <alias> - Generate a new access token for the given path
  revoke <alias> - Revoke token
  purge - Clear cache
  stop - Shutdown server

To deploy artifacts we have to generate access token assigned to the given path. Example usages:

keygen / admin
19:55:20.692 INFO | Generated new access token for admin (/)
19:55:20.692 INFO | AW7-kaXSSXTRVL_Ip9v7ruIiqe56gh96o1XdSrqZCyTX2vUsrZU3roVOfF-YYF-y
19:55:20.723 INFO | Stored tokens: 1

keygen /org/panda-lang/reposilite reposilite
19:56:09.109 INFO | Generated new access token for reposilite (/org/panda-lang/reposilite)
19:56:09.109 INFO | OFnV-2GiZeX0cHpeDvuLo0xjUpU5wNUcpkR4521fG68U9anfqNwKsVkFcQUCK4yk
19:56:09.114 INFO | Stored tokens: 2

To use generated token add a new server in your ~/m2/settings.xml

<server>
  <id>{repository-id}</id>
  <username>{alias}</username>
  <password>{token}</password>
</server>

FAQ

Q: Maven randomly interrupts deploy and throws socket write error
A: It is a common issue on Java 12 due to the bug related to SSL. To resolve this problem, just change Java version used by Maven build, e.g. 8 or 14.

Q: Checksum validation failed on the maven-metadata.xml
A: Checksum validation always fails, because Reposilite does not trust the metadata files offered by client - they're generated by server, based on the repository content to ensure consistency. It's fine and it does not affect your builds.

About

Lightweight repository management software dedicated for the Maven artifacts (formerly NanoMaven) 📦

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 79.8%
  • JavaScript 11.0%
  • Vue 6.8%
  • HTML 1.2%
  • CSS 0.9%
  • Dockerfile 0.3%