Browse and modify your Docker registry in a browser.
Find a file
Konrad Kleine 195c1dcceb Fix Bug #28
When the container is started for the first time we save a copy of the original `/etc/apache2/envvars` file to `/etc/apache2/envvars.orig`. On a container restart we copy the original file `/etc/apache2/envvars.orig` to `/etc/apache2/envvars` and modify it as usual without appending settings to `/etc/apache2/envvars` over and over.

Before starting Apache in the foreground  we ensure that it is not running by explicitly stopping the service.
2015-03-25 12:30:43 +01:00
app Revert "Animate repository group list items" 2015-02-17 15:38:21 +01:00
screenshots Added screenshots 2014-09-30 16:58:31 +02:00
test Initial commit after: yo angular && npm install 2014-09-12 13:51:09 +02:00
.bowerrc Initial commit after: yo angular && npm install 2014-09-12 13:51:09 +02:00
.dockerignore Added version information to bottom of screen 2014-10-23 09:54:13 +02:00
.editorconfig Initial commit after: yo angular && npm install 2014-09-12 13:51:09 +02:00
.gitattributes Initial commit after: yo angular && npm install 2014-09-12 13:51:09 +02:00
.gitignore Ignore *.swp files 2014-09-15 16:16:24 +02:00
.jshintrc Initial commit after: yo angular && npm install 2014-09-12 13:51:09 +02:00
.travis.yml Initial commit after: yo angular && npm install 2014-09-12 13:51:09 +02:00
apache-site.conf Limit allowed requests to GET method in browse only mode 2015-02-13 11:34:33 +01:00
bower.json Group repositories by username 2015-02-04 10:25:31 +01:00
Dockerfile Supress KRB5 questions on libapache2-mod-auth-kerb 2015-01-06 15:11:09 +01:00
Gruntfile.js Respect HTML files in scripts/directives/ folders 2014-09-17 15:30:04 +02:00
LICENSE Added MIT license 2014-09-17 15:51:16 +02:00
package.json Cleanup build process 2014-10-07 15:45:42 +02:00
README.md Fix broken link in the contributions section 2015-03-20 10:53:28 +01:00
start-apache.sh Fix Bug #28 2015-03-25 12:30:43 +01:00

About

The docker-registry-frontend is a pure web-based solution for browsing and modifying a private Docker registry.

Features

For a list of all the features, please see the Wiki.

Usage

This application is available in the form of a Docker image that you can run as a container by executing this command:

sudo docker run \
  -d \
  -e ENV_DOCKER_REGISTRY_HOST=ENTER-YOUR-REGISTRY-HOST-HERE \
  -e ENV_DOCKER_REGISTRY_PORT=ENTER-PORT-TO-YOUR-REGISTRY-HOST-HERE \
  -p 8080:80 \
  konradkleine/docker-registry-frontend

This command starts the container and forwards the container's private port 80 to your host's port 8080. Make sure you specify the correct url to your registry.

When the application runs you can open your browser and navigate to http://localhost:8080.

Docker registry using SSL encryption

If the Docker registry is only reachable via HTTPs (e.g. if it sits behind a proxy) , you can run the following command:

sudo docker run \
  -d \
  -e ENV_DOCKER_REGISTRY_HOST=ENTER-YOUR-REGISTRY-HOST-HERE \
  -e ENV_DOCKER_REGISTRY_PORT=ENTER-PORT-TO-YOUR-REGISTRY-HOST-HERE \
  -e ENV_DOCKER_REGISTRY_USE_SSL=1 \
  -p 8080:80 \
  konradkleine/docker-registry-frontend

SSL encryption

If you want to run the application with SSL enabled, you can do the following:

sudo docker run \
  -d \
  -e ENV_DOCKER_REGISTRY_HOST=ENTER-YOUR-REGISTRY-HOST-HERE \
  -e ENV_DOCKER_REGISTRY_PORT=ENTER-PORT-TO-YOUR-REGISTRY-HOST-HERE \
  -e ENV_USE_SSL=yes \
  -v $PWD/server.crt:/etc/apache2/server.crt:ro \
  -v $PWD/server.key:/etc/apache2/server.key:ro \
  -p 443:443 \
  konradkleine/docker-registry-frontend

Note that the application still serves the port 80 but it is simply not exposed ;). Enable it at your own will. When the application runs with SSL you can open your browser and navigate to https://localhost.

Use the application as the registry

If you are running the Docker registry on the same host as the application but only accessible to the application (eg. listening on 127.0.0.1) then you can use the application as the registry itself.

Normally this would then give bad advice on how to access a tag:

docker pull localhost:5000/yourname/imagename:latest

We can override what hostname and port to put here:

sudo docker run \
 -d \
 -e ENV_DOCKER_REGISTRY_HOST=localhost \
 -e ENV_DOCKER_REGISTRY_PORT=5000 \
 -e ENV_REGISTRY_PROXY_FQDN=ENTER-YOUR-APPLICATION-HOST-HERE \
 -e ENV_REGISTRY_PROXY_PORT=ENTER-PORT-TO-YOUR-APPLICATION-HOST-HERE \
 -e ENV_USE_SSL=yes \
 -v $PWD/server.crt:/etc/apache2/server.crt:ro \
 -v $PWD/server.key:/etc/apache2/server.key:ro \
 -p 443:443 \
 konradkleine/docker-registry-frontend

A value of 80 or 443 for ENV_REGISTRY_PROXY_PORT will not actually be shown as Docker will check 443 and then 80 by default.

Kerberos authentication

If you want to use Kerberos to protect access to the registry frontend, you can do the followiung:

sudo docker run \
  -d \
  -e ENV_DOCKER_REGISTRY_HOST=ENTER-YOUR-REGISTRY-HOST-HERE \
  -e ENV_DOCKER_REGISTRY_PORT=ENTER-PORT-TO-YOUR-REGISTRY-HOST-HERE \
  -e ENV_AUTH_USE_KERBEROS=yes \
  -e ENV_AUTH_NAME="Kerberos login" \
  -e ENV_AUTH_KRB5_KEYTAB=/etc/apache2/krb5.keytab \
  -v $PWD/krb5.keytab:/etc/apache2/krb5.keytab:ro \
  -e ENV_AUTH_KRB_REALMS="ENTER.YOUR.REALMS.HERE" \
  -e ENV_AUTH_KRB_SERVICE_NAME=HTTP \
  -p 80:80 \
  konradkleine/docker-registry-frontend

You can of course combine SSL and Kerberos.

Browse mode

If you want to start applicaton with browse mode which means no repos/tags management feature in the UI, You can specify ENV_MODE_BROWSE_ONLY flag as follows:

sudo docker run \
  -d \
  -e ENV_DOCKER_REGISTRY_HOST=ENTER-YOUR-REGISTRY-HOST-HERE \
  -e ENV_DOCKER_REGISTRY_PORT=ENTER-PORT-TO-YOUR-REGISTRY-HOST-HERE \
  -e ENV_MODE_BROWSE_ONLY=true \
  -p 8080:80 \
  konradkleine/docker-registry-frontend

You can set true or false to this flag.

Contributions are welcome!

If you like the application, I invite you to contribute and report bugs or feature request on the project's github page: https://github.com/kwk/docker-registry-frontend.

Thank you for your interest!

-- Konrad