klausmeyer / Docker Registry Browser
Programming Languages
Projects that are alternatives of or similar to Docker Registry Browser
Docker Registry Browser
Web Interface for the Docker Registry HTTP API V2 written in Ruby on Rails.
Screenshots
Repositories overview
Tag overview
Tag details
Delete tag
Usage
Docker
Execute:
docker run --name registry-browser -it -p 8080:8080 -e DOCKER_REGISTRY_URL=http://your-registry:5000 klausmeyer/docker-registry-browser
Manual production setup
-
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
Configuration
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 | Skip SSL verification (default false )Example: true
|
CA_FILE |
String | Custom CA file to verify the registry's certificate Example: /path/to/ca.pem
|
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 \
[...]
Local SSL
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.
Proxy Setups
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.