Table of Contents

The Reposilite Docker image is available on several container registries:
There are three different types of tags used on the Docker images:
  • vX.X.X (tag-based) - Docker image is published per new release, recommended for production environments.
  • latest - Always refers to the latest Docker image version, not recommended.
  • nightly - Docker image is published for each commit to the main branch, may contain bugs but is useful for testing new features.
First of all, you have to pull the image from Docker Hub:
# released builds, e.g. 3.4.8
$ docker pull dzikoysk/reposilite:3.4.8

# nightly builds
$ docker pull dzikoysk/reposilite:nightly
Or from the (useful if you have been rate limited on Docker Hub):
# released builds, e.g. 3.4.8
$ docker pull ghcr.io/dzikoysk/reposilite:3.4.8

# nightly builds
$ docker pull ghcr.io/dzikoysk/reposilite:nightly
Then, just run the image in interactive mode (to enable ):
$ docker run -it -v reposilite-data:/app/data -p 80:8080 dzikoysk/reposilite:nightly

Reposilite stores data in /app/data directory by default. To make it persistent, use named volume with -v parameter:
$ docker run -it -v reposilite-data:/app/data -p 80:8080 dzikoysk/reposilite

You can also pass custom configuration values using the environment variables:
$ docker run -e JAVA_OPTS='-Xmx128M' -p 80:8080 dzikoysk/reposilite

To pass custom parameters described in , use REPOSILITE_OPTS variable:
$ docker run -e REPOSILITE_OPTS='--local-configuration=/app/data/custom.cdn' -p 80:8080 dzikoysk/reposilite

You can mount external configuration files using the --mount parameter. Before that, you have to make sure the configuration file already exists on Docker host. To launch Reposilite with a custom configuration, we have to mount proper file:
$ docker run -it \
  --mount type=bind,source=/etc/reposilite/configuration.cdn,target=/app/configuration.cdn \
  -e REPOSILITE_OPTS='--local-configuration=/app/configuration.cdn' \
  -v reposilite-data:/app/data
  -p 80:8080
  dzikoysk/reposilite

See the as a starting point for your configuration.
Because access tokens are created through the console command, you should generate your first access token using --token startup parameter as follows:
  1. Add - REPOSILITE_OPTS=--token admin:secret to the environment section in docker-compose.yml file.
    NOTE: This is only needed for the first run and should be removed after creating a real security token.
  2. Start the container with docker-compose up -d
  3. Go to the address with your Reposilite instance to access the web dashboard.
  4. Use your credentials specified in REPOSILITE_OPTS to login (e.g. admin / secret)
  5. Open the 'Console' tab.
    NOTE: Your reverse proxy must also support and accept WebSocket connections.
  6. Type token-generate admin m to create user named 'admin' with management permission. A strong password will be generated for you, so you should copy it. If you really need to provide a custom one, use the --secret=<your-password> parameter. Please note that this type of password creation is strongly discouraged.
  7. Tear down the container with docker-compose down and remove the REPOSILITE_OPTS line with --token admin:secret parameter from your compose file.
  8. Restart the container with docker-compose up -d and login with your credentials provided by the token-generate command. These credentials will be persisted.

Did you find misleading or deprecated content? Maybe you just feel this section misses important elements?

Guide

Copyright © 2023 dzikoysk with ❤ panda-lang