Standard installation
The standard installation is done by simply:
- Pulling the docker image from Docker Hub
- Creating a reverse proxy to access the web interface (optional but recommended)
This is the most common way to install a production-ready Repomanager instance on a host with docker.
Prepare the environment variables¶
You will have to pass the following environment variables to the container:
FQDNFully Qualified Domain Name of the Repomanager server.MAX_UPLOAD_SIZEMax upload size in MB (default 32). Increase this value if you want to upload large packages to your repos.NGINX_LISTEN_PORT(Optional) Port to bind the web interface (default 8080). This variable is only used inhostnetwork mode.
Additonal environment variables
-
WEBSOCKET_LISTEN_PORT(Optional) Port to bind the websocket server (default 8081). This can be useful to change it if you are running multiple Repomanager instances on the same host inhostnetwork mode (instances would conflict otherwise). -
PUID(Optional) UID for the main user inside the container (default 33). This can be useful to avoid permissions issues between the host and the container when using persistent volumes. -
PGID(Optional) GID for the main group inside the container (default 33). This can be useful to avoid permissions issues between the host and the container when using persistent volumes.
Choose the network mode¶
Choose the proper docker network mode for your use case:
bridgeThis is docker default network mode, but not necessarily the best choice. Be aware that in this mode, docker will bypass the firewall rules of your host by creating its own iptables rules, leading to a potential world access to the web interface. This mode is not recommanded for public hosts (for example VPS or dedicated servers).hostDocker will bind port to the host. This mode is recommanded for public hosts (for example VPS or dedicated servers) as it will use the host firewall rules.
Pull and run the docker image¶
Once everything is ready, pull and run the docker image with the environment variables and the persistent volumes:
-
bridgenetwork mode
docker run -d --restart unless-stopped --name repomanager \ -e FQDN=repomanager.example.com \ -e MAX_UPLOAD_SIZE=32M \ -p 8080:8080 \ -v /etc/localtime:/etc/localtime:ro \ -v /var/lib/docker/volumes/repomanager-data:/var/lib/repomanager \ -v /var/lib/docker/volumes/repomanager-repo:/home/repo \ lbr38/repomanager:latest -
hostnetwork mode
docker run -d --restart unless-stopped --name repomanager --network=host \ -e FQDN=repomanager.example.com \ -e MAX_UPLOAD_SIZE=32M \ -e NGINX_LISTEN_PORT=8080 \ -v /etc/localtime:/etc/localtime:ro \ -v /var/lib/docker/volumes/repomanager-data:/var/lib/repomanager \ -v /var/lib/docker/volumes/repomanager-repo:/home/repo \ lbr38/repomanager:latest
Two persistent volumes will be created on your local host:
repomanager-data(default path:/var/lib/docker/volumes/repomanager-data/): contains database and log filesrepomanager-repo(default path:/var/lib/docker/volumes/repomanager-repo/): contains repositories packages (deb/rpm), this directory might grow large depending on your usage
Check that the container is running¶
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
61088656e1bd lbr38/repomanager:latest "/tmp/entrypoint.sh" 12 seconds ago Up 10 seconds 0.0.0.0:8080->8080/tcp repomanager
First login¶
Once the container is up and running, Repomanager will be accessible through a web browser on http://localhost:8080.
It is recommended to configure a reverse proxy to access the web interface through a dedicated FQDN and port 443 (you will need to have a valid SSL certificate). See this section for an example of nginx reverse proxy configuration.
Default credentials to access the web interface:
- Username: admin
- Password: repomanager