Published on

Reposilite - Repository Manager

Authors
  • avatar
    Name
    Bharath
    Twitter

Reposilite

What is a Repository Manager?

A repository manager is a server application designed to manage repositories of binary components. To publish build dependencies to a central repository and have it hosted in internal network, we will need a Repository Manager.

There are many repository managers in the market. JFrog Artifactory and Nexus are most used tools.

How to choose?

My requirement for Repository Manager is as follows,

  • Hosting automation framework dependency
  • Support build output of around 6 jars
  • Allow versioning of dependency
  • Offer snapshots and releases
  • Have admin and user level privileges
  • Offer dockerized setup

Reposilite checked all of my items. It is a lightweight repository manager for Java based projects.

Reposilite Setup

Installation is easy with minimal steps. I performed setup using Docker.

Ensure to link data folder as externally mounted volume to avoid data loss.

docker run -it -v reposilite-data:/app/data -p 80:80 dzikoysk/reposilite

It is better to configure the server using a cdn file. This allows user to pre-define the configuration with minimal command-line updates.

User Management

We can access the CLI either via interactive mode or browser. Logged in user needs to have relevant privileges.

Generate token for new users and save them locally. If you wish to revoke token, it can be done as well.

Private Repositories

We can make certain repositories private and access driven. And have other repositories public. This will be particularly helpful to mask unauthorized access.

Refer private and hidden repositories setup

Deploy

I've used maven to deploy by creating settings.xml with required access token. Ensure to update the release version prior to deploy phase.

mvn deploy

Access

After publishing version to server, we can share user token with read level access to team members. Version needs to be updated in client project. The username and access token needs be updated on settings.xml for dependencies to be resolved.

mvn -s settings.xml dependency:resolve