Web Interface for the Docker Registry HTTP API V2 written in Ruby on Rails.
Repositories overview
Tag overview
Tag details
Delete tag
Execute:
docker run --name registry-browser -it -p 8080:8080 -e DOCKER_REGISTRY_URL=http://your-registry:5000 klausmeyer/docker-registry-browser
-
Install ruby e.g. using RVM (see
.ruby-version
file for required version). -
Execute the following commands inside your local clone of this repository:
gem install bundler
bundle install --without development test
RAILS_ENV=production rails assets:precompile
- Run the application using the following command
RAILS_ENV=production RAILS_SERVE_STATIC_FILES=true SECRET_KEY_BASE=changeme DOCKER_REGISTRY_URL=http://your-registry:5000 bundle exec puma -C config/puma.rb
The configuration is done by environment variables.
Option | Type | Description |
---|---|---|
DOCKER_REGISTRY_URL |
String | URL to the Docker Registry which should be browsed Default: http://localhost:5000 |
NO_SSL_VERIFICATION |
Bool | Enable to skip SSL verification (default false )Example: true |
BASIC_AUTH_USER |
String | Username for basic-auth against registry Example: joe |
BASIC_AUTH_PASSWORD |
String | Password for basic-auth against registry Example: supersecretpassw0rd |
TOKEN_AUTH_USER |
String | Username for token-auth against registry Example: joe |
TOKEN_AUTH_PASSWORD |
String | Password for token-auth against registry Example: supersecretpassw0rd |
ENABLE_DELETE_IMAGES |
Bool | Allow deletion of tags (default false )Example: true |
PUBLIC_REGISTRY_URL |
String | The public URL to the Docker Registry to do docker pull Example: your-registry:5000 |
ADDRESS |
String | The address on which the application will serve HTTP requests. Default: 0.0.0.0 |
PORT |
Number | The port on which the application will serve HTTP requests. Default: 8080 |
SSL_ADDRESS |
String | The address on which the application will serve HTTPS requests. Default: 0.0.0.0 |
SSL_PORT |
Number | The port on which the application will serve HTTPS requests. Default: 8443 |
SSL_CERT_PATH |
String | Absolute path to the SSL certificate which should be used. Example: /ssl/cert.pem |
SSL_KEY_PATH |
String | Absolute path to the SSL private key which should be used. Example: /ssl/key.pem |
You can also set the following variables as Docker Swarm secrets with the same naming:
BASIC_AUTH_USER
BASIC_AUTH_PASSWORD
TOKEN_AUTH_USER
TOKEN_AUTH_PASSWORD
Running the application under a subfolder:
In case you want to define a subfolder the app is running under (e.g. behind a proxy) you can set the two options to the path:
RAILS_RELATIVE_URL_ROOT
SCRIPT_NAME
For example:
docker run [...] \
-e RAILS_RELATIVE_URL_ROOT=/browser \
-e SCRIPT_NAME=/browser \
[...]
Although it is recommended to use a reverse proxy and terminate SSL requests there the application allows to run in a standalone setup handling SSL by its own.
For this both config options SSL_CERT_PATH
and SSL_KEY_PATH
need to be present and contain the correct path to the certificate and key to be used.
If you're using a reverse-proxy setup with SSL termination in front of this application in combination with ENABLE_DELETE_IMAGES=true
you must make sure that the application knows about this fact (by sending X-Forwarded-Proto: https
in the HTTP headers).
Otherwise the application would throw errors like "HTTP Origin header [...] didn't match request.base_url [...]"
when you're trying to delete image-tags.