Compare commits

...

6 Commits

Author SHA1 Message Date
Lukas Engelter 8efdf1e4c5
Merge 95a8c6105e into a36e3aac57 2024-04-05 21:59:32 +02:00
silverwind a36e3aac57
docs: improve `examples/read-only-auth` (#371)
* Improve `examples/read-only-auth`

* Update examples/read-only-auth/nginx.conf
2024-04-05 21:59:24 +02:00
Lukas Engelter 95a8c6105e fix: wrongly named environment variable in error template
The environment variables named in the CATALOG_BRANCHING_CONFIGURATION error were wrong.

During that find, i found out that one needs to set both min and max to 0 to disable branching. I tried to make this clear in the README.md file.
2024-03-13 18:47:58 +01:00
Lukas Engelter b5d66a39d8 feature: allow to optionally disable the version check
Note: The default remains to have the version check enabled. It is though sometimes useful to disable it, in the context of customers or open source interests of your software not to bother with version updates to Docker Registry UI.

For example, if you use something like watchtower anyway, there is no need to bother with update notifications to anyone else other then the admin of the server.
2024-03-13 18:47:58 +01:00
Lukas Engelter fbd33bf00b feature: allow the customization of the title shown in the logo section
we already have REGISTRY_TITLE, but it is used as a reference to where the images come from: "Repositories of …". The UI however does not need to be used in a 1:1 context of the registry. Therefore, the project would benefit from this feature:

We therefore introduce "UI_TITLE" as a new option, that optionally allows to change the title for more advanced customization and to enable more use cases for this software.

If it is not set, everything will stay the same as prior to this commit and the title will remain "Docker Registry UI"

Note, that the footer will always contain a reference to this project. I think it doesn't need to referenced twice, and makes room for some more customization.
2024-03-13 18:47:58 +01:00
Lukas Engelter c2b7f415de feature: link title to main view
this way it is possible to go back to the main view, even if two layers deep, i.e. in the history view.
2024-03-13 18:47:58 +01:00
10 changed files with 36 additions and 14 deletions

View File

@ -115,12 +115,14 @@ Some env options are available for use this interface for **only one server** (w
- `THEME_*`: See table in [Theme options](#theme-options) section (see [#283](https://github.com/Joxit/docker-registry-ui/pull/283)). Since 2.4.0
- `TAGLIST_ORDER`: Set the default order for the taglist page, could be `num-asc;alpha-asc`, `num-desc;alpha-asc`, `num-asc;alpha-desc`, `num-desc;alpha-desc`, `alpha-asc;num-asc`, `alpha-asc;num-desc`, `alpha-desc;num-asc` or `alpha-desc;num-desc` (see [#307](https://github.com/Joxit/docker-registry-ui/pull/307)). (default: `alpha-asc;num-desc`). Since 2.5.0
- `CATALOG_DEFAULT_EXPANDED`: Expand by default all repositories in catalog (see [#302](https://github.com/Joxit/docker-registry-ui/issues/302)). (default: `false`). Since 2.5.0
- `CATALOG_MIN_BRANCHES`: Set the minimum repository/namespace to expand (e.g. `joxit/docker-registry-ui` `joxit/` is the repository/namespace). Can be 0 to disable branching. (see [#319](https://github.com/Joxit/docker-registry-ui/pull/319)). (default: `1`). Since 2.5.0
- `CATALOG_MAX_BRANCHES`: Set the maximum repository/namespace to expand (e.g. `joxit/docker-registry-ui` `joxit/` is the repository/namespace). Can be 0 to disable branching. (see [#319](https://github.com/Joxit/docker-registry-ui/pull/319)). (default: `1`). Since 2.5.0
- `CATALOG_MIN_BRANCHES`: Set the minimum repository/namespace to expand (e.g. `joxit/docker-registry-ui` `joxit/` is the repository/namespace). Branching can be disabled if min and max are set to 0. (see [#319](https://github.com/Joxit/docker-registry-ui/pull/319)). (default: `1`). Since 2.5.0
- `CATALOG_MAX_BRANCHES`: Set the maximum repository/namespace to expand (e.g. `joxit/docker-registry-ui` `joxit/` is the repository/namespace). Branching can be disabled if min and max are set to 0. (see [#319](https://github.com/Joxit/docker-registry-ui/pull/319)). (default: `1`). Since 2.5.0
- `TAGLIST_PAGE_SIZE`: Set the number of tags to display in one page. (default: `100`). Since 2.5.0
- `REGISTRY_SECURED`: By default, the UI will check on every requests if your registry is secured or not (you will see `401` responses in your console). Set to `true` if your registry uses Basic Authentication and divide by two the number of call to your registry. (default `false`). Since 2.5.0
- `SHOW_TAG_HISTORY`: Whether to show the tag history feature or not. Allows to simplify the user interface by hiding it form the tag list if set to `false`. (default: `true`).
There are some examples with [docker-compose](https://docs.docker.com/compose/) and docker-registry-ui as proxy [here](https://github.com/Joxit/docker-registry-ui/tree/main/examples/ui-as-proxy/) or docker-registry-ui as standalone [here](https://github.com/Joxit/docker-registry-ui/tree/main/examples/ui-as-standalone/).
- `UI_TITLE`: Set a custom title displayed in the header bar. (default: `Docker Registry UI`).
- `DISABLE_VERSION_CHECK`: Do not inform about new versions of Docker Registry UI. (default: `false`).
### Theme options

View File

@ -1,5 +1,6 @@
#!/bin/sh
sed -i "s~\${UI_TITLE}~${UI_TITLE}~" index.html
sed -i "s~\${REGISTRY_URL}~${REGISTRY_URL}~" index.html
sed -i "s~\${REGISTRY_TITLE}~${REGISTRY_TITLE}~" index.html
sed -i "s~\${PULL_URL}~${PULL_URL}~" index.html
@ -18,6 +19,7 @@ sed -i "s~\${CATALOG_MIN_BRANCHES}~${CATALOG_MIN_BRANCHES}~" index.html
sed -i "s~\${CATALOG_MAX_BRANCHES}~${CATALOG_MAX_BRANCHES}~" index.html
sed -i "s~\${TAGLIST_PAGE_SIZE}~${TAGLIST_PAGE_SIZE}~" index.html
sed -i "s~\${REGISTRY_SECURED}~${REGISTRY_SECURED}~" index.html
sed -i "s~\${DISABLE_VERSION_CHECK}~${DISABLE_VERSION_CHECK}~" index.html
grep -o 'THEME[A-Z_]*' index.html | while read e; do
sed -i "s~\${$e}~$(printenv $e)~" index.html

View File

@ -2,9 +2,12 @@
This example will override the original nginx conf with read only access to the registry. You will need to rewrite all the project configuration (replaces `proxy_pass` with your own value, in this example `http://registry:5000` is fine).
There are two htpasswd files. `read-write.htpasswd` a read and write access to the registry and `read-only.htpasswd` for a read only access.
There are two htpasswd files:
All users in `read-only.htpasswd` should be in `read-write.htpasswd`.
- `write.htpasswd` for write access
- `read.htpasswd` for read access
All users in `write.htpasswd` should also be in `read.htpasswd` so that they can read and write.
Read only user: login: `read` password: `registry`.
Read and write user: login: `write` password: `registry`.

View File

@ -17,11 +17,11 @@ services:
- SINGLE_REGISTRY=true
volumes:
- ./nginx.conf:/etc/nginx/conf.d/default.conf
- ./read-write.htpasswd:/etc/nginx/auth/read-write.htpasswd:ro
- ./read-only.htpasswd:/etc/nginx/auth/read-only.htpasswd
- ./read-write.htpasswd:/etc/nginx/auth/write.htpasswd:ro
- ./read-only.htpasswd:/etc/nginx/auth/read.htpasswd:ro
depends_on:
- registry
networks:
- registry-ui-net
networks:
registry-ui-net:
registry-ui-net:

View File

@ -28,10 +28,10 @@ server {
}
# To add basic authentication to v2 use auth_basic setting.
auth_basic "Registry realm";
auth_basic_user_file /etc/nginx/auth/read-write.htpasswd;
# For requests that *aren't* a PUT, POST, or DELETE
limit_except PUT POST DELETE {
auth_basic_user_file /etc/nginx/auth/read-only.htpasswd;
auth_basic_user_file /etc/nginx/auth/read.htpasswd;
# For requests that *aren't* a GET, HEAD or OPTIONS use the write file instead
limit_except GET HEAD OPTIONS {
auth_basic_user_file /etc/nginx/auth/write.htpasswd;
}
proxy_pass http://registry:5000;

View File

@ -18,8 +18,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
<header>
<material-navbar>
<span class="logo">
<span>Docker Registry UI</span>
<version-notification version="{ latest }" on-notify="{ notifySnackbar }"></version-notification>
<span><a href="">{ props.title || "Docker Registry UI"}</a></span>
<version-notification
if="{!truthy(props.disableVersionCheck)}"
version="{ latest }"
on-notify="{ notifySnackbar }"
></version-notification>
</span>
<div class="menu">
<search-bar on-search="{ onSearch }"></search-bar>
@ -297,6 +301,13 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
flex-direction: row;
}
material-navbar .nav-wrapper .logo a {
text-decoration: none;
}
material-navbar .nav-wrapper .logo a:hover {
text-decoration: underline;
}
material-footer {
color: var(--footer-neutral-text);
background-color: var(--footer-background);

View File

@ -63,7 +63,7 @@
</template>
<template if="{ props.code === 'CATALOG_BRANCHING_CONFIGURATION' }">
<p>Wrong configuration for the branching feature: { props.message }</p>
<p>Configuration environment variables are : CATALOG_MIN_BRANCH and CATALOG_MAX_BRANCH</p>
<p>Configuration environment variables are : CATALOG_MIN_BRANCHES and CATALOG_MAX_BRANCHES</p>
</template>
</div>
<script>

View File

@ -35,6 +35,7 @@
<body>
<!-- build:keep production -->
<docker-registry-ui
title="${UI_TITLE}"
registry-url="${REGISTRY_URL}"
name="${REGISTRY_TITLE}"
pull-url="${PULL_URL}"
@ -66,11 +67,13 @@
theme-footer-neutral-text="${THEME_FOOTER_NEUTRAL_TEXT}"
theme-footer-background="${THEME_FOOTER_BACKGROUND}"
tags-per-page="${TAGLIST_PAGE_SIZE}"
disable-version-check="${DISABLE_VERSION_CHECK}"
>
</docker-registry-ui>
<!-- endbuild -->
<!-- build:keep developement -->
<docker-registry-ui
title=""
registry-url=""
name="Development Registry"
pull-url=""
@ -100,6 +103,7 @@
theme-footer-neutral-text=""
theme-footer-background=""
tags-per-page=""
disable-version-check="false"
>
</docker-registry-ui>
<!-- endbuild -->