Docker Registry User Interface

The simplest and most complete UI for your private registry!

View on GitHub

Docker Registry UI

Stars Pulls

Overview

This project aims to provide a simple and complete user interface for your private docker registry. You can customize the interface with various options. The major option is SINGLE_REGISTRY which allows you to disable the dynamic selection of docker registeries (same behavior as the old static tag).

You may need the migration guide from 1.x to 2.x or the 1.x readme

This web user interface uses Riot the react-like user interface micro-library and riot-mui components.

Project Page, Live Demo, Examples

preview

Features

FAQ

Need more informations ? Try my examples or open an issue.

Available options

Some env options are available for use this interface for only one server.

There are some examples with docker-compose and docker-registry-ui as proxy here or docker-registry-ui as standalone here.

Using CORS

Your server should be configured to accept CORS.

If your docker registry does not need credentials, you will need to send this HEADER:

Access-Control-Allow-Origin: ['*']

If your docker registry need credentials, you will need to send these HEADERS (you must add the protocol http/https and the port when not default 80/443):

http:
  headers:
    Access-Control-Allow-Origin: ['http://registry.example.com']
    Access-Control-Allow-Credentials: [true]
    Access-Control-Allow-Headers: ['Authorization', 'Accept']
    Access-Control-Allow-Methods: ['HEAD', 'GET', 'OPTIONS'] # Optional

An alternative for CORS issues is a plugin on your browser, more info here (thank you xmontero).

Using delete

For deleting images, you need to activate the delete feature in your registry:

storage:
    delete:
      enabled: true

And you need to add these HEADERS:

http:
  headers:
    Access-Control-Allow-Methods: ['HEAD', 'GET', 'OPTIONS', 'DELETE']
    Access-Control-Expose-Headers: ['Docker-Content-Digest']

If you are running the static interface don’t forget the environment variable DELETE_IMAGES.

Registry example

Example of docker registry configuration file:

version: 0.1
log:
  fields:
    service: registry
storage:
  delete:
    enabled: true
  cache:
    blobdescriptor: inmemory
  filesystem:
    rootdirectory: /var/lib/registry
http:
  addr: :5000
  headers:
    X-Content-Type-Options: [nosniff]
    Access-Control-Allow-Origin: ['http://127.0.0.1:8000']
    Access-Control-Allow-Methods: ['HEAD', 'GET', 'OPTIONS', 'DELETE']
    Access-Control-Allow-Headers: ['Authorization', 'Accept']
    Access-Control-Max-Age: [1728000]
    Access-Control-Allow-Credentials: [true]
    Access-Control-Expose-Headers: ['Docker-Content-Digest']
auth:
  htpasswd:
    realm: basic-realm
    path: /etc/docker/registry/htpasswd

Standalone Application

If you do not want to install the docker-registry-ui on your server, you may check out the Electron standalone application.

All examples