self-hosted-container-registry-with-webui
Differences
This shows you the differences between two versions of the page.
| self-hosted-container-registry-with-webui [2026-02-23 08:11:21] – created hyperreal | self-hosted-container-registry-with-webui [2026-03-14 20:20:06] (current) – removed hyperreal | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Self-hosted container registry with web UI ====== | ||
| - | Source: https:// | ||
| - | |||
| - | ===== Docker/ | ||
| - | |||
| - | <code yaml> | ||
| - | services: | ||
| - | registry-ui: | ||
| - | image: joxit/ | ||
| - | restart: always | ||
| - | ports: | ||
| - | - " | ||
| - | environment: | ||
| - | - SINGLE_REGISTRY=true | ||
| - | - REGISTRY_TITLE=hyperreal' | ||
| - | - DELETE_IMAGES=true | ||
| - | - SHOW_CONTENT_DIGEST=true | ||
| - | - NGINX_PROXY_PASS_URL=http:// | ||
| - | - SHOW_CATALOG_NB_TAGS=true | ||
| - | - CATALOG_MIN_BRANCHES=1 | ||
| - | - CATALOG_MAX_BRANCHES=1 | ||
| - | - TAGLIST_PAGE_SIZE=100 | ||
| - | - REGISTRY_SECURED=false | ||
| - | - CATALOG_ELEMENTS_LIMIT=1000 | ||
| - | container_name: | ||
| - | |||
| - | registry-server: | ||
| - | image: registry: | ||
| - | restart: always | ||
| - | environment: | ||
| - | REGISTRY_HTTP_HEADERS_Access-Control-Allow-Origin: | ||
| - | REGISTRY_HTTP_HEADERS_Access-Control-Allow-Methods: | ||
| - | REGISTRY_HTTP_HEADERS_Access-Control-Allow-Credentials: | ||
| - | REGISTRY_HTTP_HEADERS_Access-Control-Allow-Headers: | ||
| - | REGISTRY_HTTP_HEADERS_Access-Control-Expose-Headers: | ||
| - | REGISTRY_STORAGE_DELETE_ENABLED: | ||
| - | volumes: | ||
| - | - ./ | ||
| - | container_name: | ||
| - | </ | ||
| - | |||
| - | ===== Authorization and Authentication ===== | ||
| - | |||
| - | For a public registry with authentication, | ||
| - | |||
| - | <code yaml> | ||
| - | environment: | ||
| - | REGISTRY_HTTP_HEADERS_Access-Control-Allow-Headers: | ||
| - | </ | ||
| - | |||
| - | For a private registry without authentication, | ||
| - | |||
| - | <code yaml> | ||
| - | environment: | ||
| - | REGISTRY_HTTP_HEADERS_Access-Control-Allow-Headers: | ||
| - | </ | ||
| - | |||
| - | ===== Caddy reverse proxy ===== | ||
| - | |||
| - | ==== Public registry ==== | ||
| - | |||
| - | < | ||
| - | registry.hyperreal.coffee { | ||
| - | reverse_proxy localhost: | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | ==== Private registry via Tailnet ==== | ||
| - | |||
| - | < | ||
| - | aux-remote.carp-wyvern.ts.net { | ||
| - | reverse_proxy localhost: | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | Ensure the following is added to ''/ | ||
| - | |||
| - | < | ||
| - | TS_PERMIT_CERT_UID=caddy | ||
| - | </ | ||
| - | |||
| - | The above will ensure Caddy receives SSL certs from the Tailscale daemon. | ||
self-hosted-container-registry-with-webui.1771834281.txt.gz · Last modified: by hyperreal
