- Add
registry.insecure
option to the config (alternatively REGISTRY_INSECURE env var) to support non-https registries. Thanks to @KanagawaNezumi - Fix concurrent map iteration and write in rare cases.
- Upgrade go version to 1.22.6 and all dependencies, alpine to 3.20.
- IPv6 addresses were not displayed correctly.
In case you need to store registry events with IPv6 addresses in MySQL, you need to run
ALTER TABLE events MODIFY column ip varchar(45) NULL
. For sqlite, you can start a new db file or migrate events manually as it doesn't support ALTER.
- Fix repo tag count when a repo name is a prefix for another repo name(s)
- Allow to override any config option via environment variables using SECTION_KEY_NAME syntax, e.g. LISTEN_ADDR, PERFORMANCE_TAGS_COUNT_REFRESH_INTERVAL, REGISTRY_HOSTNAME etc.
- Rename cmd flag
-purge-from-repos
to-purge-include-repos
to purge tags only for the specified repositories. - Add a new cmd flag
-purge-exclude-repos
to skip the specified repositories from the tag purging. - Make image column clickable in Event Log.
JUST BREAKING CHANGES
- We have made a full rewrite. Over 6 years many things have been changed.
- Renamed github/dockerhub repo from docker-registry-ui -> registry-ui
- Switched from doing raw http calls to
github.com/google/go-containerregistry
- URLs and links are now matching the image references, no more "library" or other weird URL parts.
- No namespace or only 2-level deep concept
- An arbitrary repository levels are supported
- It is even possible to list both sub-repos and tags within the same repo path if you have those
- Added support for OCI images, so now both Docker + OCI are supported
- Proper support of Image Index (Index Manifest)
- Display full information available about Image or Image Index
- Sub-images (multi-platform ones) are linked under Image Index
- Changed format of config.yml but the same concept is preserved
- Event listener path has been changed from /api/events to /event-receiver and you may need to update your registry config
- Removed built-in cron scheduler for purging tags, please use the normal cron :)
- Now you can tune the refresh of catalog and separately refresh of tag counting, disable them etc.
- Everything has been made better! :)
- Fix timezone support: now when running a container with
TZ
env var, e.g. "-e TZ=America/Los_Angeles", it will be reflected everywhere on UI. - Amend tag info page: add long line break, better format a caption column.
- Upgrade Go version to 1.22, alpine to 3.19 and other dependencies.
- Upgrade Go version to 1.20.2, alpine to 3.17 and other dependencies.
- Upgrade Go version to 1.19.0, alpine to 3.16 and other dependencies.
- Add an option
anyone_can_view_events
to restrict access to the event log. Set it totrue
to make event log accessible to anyone (to restore the previous behaviour), otherwise the defaultfalse
will hide it and only admins can view it (thanks to @ribbybibby). - Add an option
purge_tags_keep_regexp
to preserve tags based on regexp (thanks to @dmaes). - Add an option
purge_tags_keep_from_file
to preserve tags for repos listed in the file provided. - When purging tags sort them by name reversibly when no date available, e.g. for OCI image format (thanks to @dmaes).
- Fix a bug when there was a bit more tags preserved than defined by
purge_tags_keep_count
.
Also see config.yml
in this repo for the description of new options.
- Upgrade Go version to 1.18.0, alpine to 3.15 and other dependencies.
- Build docker image with ARM support.
- Upgrade Go version to 1.16.3, alpine to 3.13 and other dependencies.
- Support deletion of manifest lists.
- Upgrade Go version to 1.14.4, alpine to 3.12 and other dependencies.
- Enable default logging for purge tags task.
- Minor amendments for the tag info page to account the cache type of sub-image.
- Upgrade Go version to 1.13.7, alpine to 3.11 and other dependencies.
- Support Manifest List v2. This enables the proper display of multi-arch images, such as those generated by Docker BuildX or manually (thanks to Christoph Honal @StarGate01). So now we support the following formats: Manifest v2 schema 1, Manifest v2 schema 2, Manifest List v2 schema 2 and all their confusing combinations.
- Amend representation of the tag info page.
- Change logging library, add "-log-level" argument and put most of the logging into DEBUG mode.
- You can define timezone when running container by adding
TZ
env var, e.g. "-e TZ=America/Los_Angeles" (thanks to @gminog). - Fix initial ownership of /opt/data dir in Dockerfile.
- Hide repositories with 0 tags count.
- Compatibility fix with docker_auth v1.5.0.
- Add event_deletion_enabled option to the config, useful for master-master/cluster setups.
- Generate SHA256 from response body if no Docker-Content-Digest header is present, e.g. with AWS ECR.
- Bump go version.
- Add favicon.
- Use go 1.11.5, alpine 3.9, echo 3.3.10.
- Put all static files to the docker image instead of loading from CDN.
- Now discover more than 100 repositories (thanks to Yuhi Ishikura @uphy).
- Switch to Go 1.11 and Go Modules to track dependencies.
- Add
registry_password_file
option to the config file. - Improve no data message on empty tables on UI.
- Show the root namespace "library" in the dropdown even when there are no repos in it.
- Switch alpine Docker image to 3.8.
- Make web root accessible w/o trailing slash when base_path is configured.
- Fix panic when using MySQL for events storage and no table created yet.
- When using MySQL for events storage, do not leak connections.
- Last events were not shown when viewing a repo of non-default namespace.
- Support repos with slash in the name.
- Enable Sonatype Nexus compatibility.
- Add
base_path
option to the config to run UI from non-root. - Add built-in cron feature for purging tags task.
- Add MySQL along with sqlite3 support as a registry events storage.
New config settings
event_database_driver
,event_database_location
. - Bump Go version and dependencies.
- Initial public version.