{"id":13416386,"url":"https://github.com/mkuchin/docker-registry-web","last_synced_at":"2025-03-14T23:31:46.570Z","repository":{"id":37677367,"uuid":"41842339","full_name":"mkuchin/docker-registry-web","owner":"mkuchin","description":"Web UI for private docker registry v2","archived":false,"fork":false,"pushed_at":"2022-02-08T08:42:02.000Z","size":1623,"stargazers_count":533,"open_issues_count":47,"forks_count":132,"subscribers_count":20,"default_branch":"master","last_synced_at":"2024-07-31T21:56:31.502Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://hub.docker.com/r/hyper/docker-registry-web/","language":"Groovy","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mkuchin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-09-03T04:45:20.000Z","updated_at":"2024-07-31T05:58:36.000Z","dependencies_parsed_at":"2022-09-15T09:10:11.598Z","dependency_job_id":null,"html_url":"https://github.com/mkuchin/docker-registry-web","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkuchin%2Fdocker-registry-web","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkuchin%2Fdocker-registry-web/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkuchin%2Fdocker-registry-web/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mkuchin%2Fdocker-registry-web/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mkuchin","download_url":"https://codeload.github.com/mkuchin/docker-registry-web/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243663516,"owners_count":20327300,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-30T21:00:57.999Z","updated_at":"2025-03-14T23:31:41.557Z","avatar_url":"https://github.com/mkuchin.png","language":"Groovy","readme":"# docker-registry-web\n\nWeb UI, authentication service and event recorder for private docker registry v2.\n\n[![Docker Stars](https://img.shields.io/docker/stars/hyper/docker-registry-web.svg?maxAge=86400)](https://hub.docker.com/r/hyper/docker-registry-web/) [![Docker Pulls](https://img.shields.io/docker/pulls/hyper/docker-registry-web.svg?maxAge=86400)](https://hub.docker.com/r/hyper/docker-registry-web/)\n\n## Features:\n\n  * Browsing repositories, tags and images in docker registry v2\n  * Optional token based authentication provider with role-based permissions\n  * Docker registry notification recording and audit\n\n### Warning: [this version config](https://github.com/mkuchin/docker-registry-web/blob/master/web-app/WEB-INF/config.yml) is not compatible with configuration of versions prior 0.1.0\n   [Migrating configuration from 0.0.4 to 0.1.x](https://github.com/mkuchin/docker-registry-web/wiki/Migrating-configuration) \n\n### Docker pull command\n    \n    docker pull hyper/docker-registry-web\n        \n### How to run\n\n#### Quick start (config with environment variables, no authentication)\n\nDo not use _registry_ as registry container name, it will break `REGISTRY_NAME` environment variable.\n     \n    docker run -d -p 5000:5000 --name registry-srv registry:2\n    docker run -it -p 8080:8080 --name registry-web --link registry-srv -e REGISTRY_URL=http://registry-srv:5000/v2 -e REGISTRY_NAME=localhost:5000 hyper/docker-registry-web \n\n#### Connecting to docker registry with basic authentication and self-signed certificate\n    docker run -it -p 8080:8080 --name registry-web --link registry-srv \\\n               -e REGISTRY_URL=https://registry-srv:5000/v2 \\\n               -e REGISTRY_TRUST_ANY_SSL=true \\\n               -e REGISTRY_BASIC_AUTH=\"YWRtaW46Y2hhbmdlbWU=\" \\\n               -e REGISTRY_NAME=localhost:5000 hyper/docker-registry-web\n    \n\n#### No authentication, with config file\n \n 1. Create configuration file `config.yml`\n    \n    (Any property in this config may be overridden with environment variable, for example\n     property `registry.auth.enabled` will become `REGISTRY_AUTH_ENABLED`)   \n      \n        registry:\n          # Docker registry url\n          url: http://registry-srv:5000/v2\n          # Docker registry fqdn\n          name: localhost:5000\n          # To allow image delete, should be false\n          readonly: false\n          auth:\n            # Disable authentication\n            enabled: false\n      \n 2. Run with docker\n        \n        docker run -p 5000:5000 --name registry-srv -d registry:2\n        docker run -it -p 8080:8080 --name registry-web --link registry-srv -v $(pwd)/config.yml:/conf/config.yml:ro hyper/docker-registry-web\n\n 3. Web UI will be available on `http://localhost:8080` \n  \n#### With authentication enabled\n\n Token authentication requires RSA private key in PEM format and certificate matched with this key\n \n 1. Generate private key and certificate\n        \n        mkdir conf\n        openssl req -new -newkey rsa:4096 -days 365 -subj \"/CN=localhost\" \\\n                -nodes -x509 -keyout conf/auth.key -out conf/auth.cert\n \n 2. Create registry config `conf/registry-srv.yml`\n        \n        version: 0.1    \n        \n        storage:\n          filesystem:\n            rootdirectory: /var/lib/registry\n            \n        http:\n          addr: 0.0.0.0:5000   \n            \n        auth:\n          token:\n            # external url to docker-web authentication endpoint\n            realm: http://localhost:8080/api/auth\n            # should be same as registry.name of registry-web\n            service: localhost:5000\n            # should be same as registry.auth.issuer of registry-web\n            issuer: 'my issuer'\n            # path to auth certificate\n            rootcertbundle: /etc/docker/registry/auth.cert\n            \n 3. Start docker registry\n         \n        docker run -v $(pwd)/conf/registry-srv.yml:/etc/docker/registry/config.yml:ro \\\n                    -v $(pwd)/conf/auth.cert:/etc/docker/registry/auth.cert:ro -p 5000:5000  --name registry-srv -d registry:2    \n                         \n 4. Create configuration file `conf/registry-web.yml`\n        \n        registry:\n          # Docker registry url\n          url: http://registry-srv:5000/v2\n          # Docker registry fqdn\n          name: localhost:5000\n          # To allow image delete, should be false\n          readonly: false\n          auth:\n            # Enable authentication\n            enabled: true\n            # Token issuer\n            # should equals to auth.token.issuer of docker registry\n            issuer: 'my issuer'\n            # Private key for token signing\n            # certificate used on auth.token.rootcertbundle should signed by this key\n            key: /conf/auth.key\n     \n 5. Start registry-web\n \n        docker run -v $(pwd)/conf/registry-web.yml:/conf/config.yml:ro \\\n                   -v $(pwd)/conf/auth.key:/conf/auth.key -v $(pwd)/db:/data \\\n                   -it -p 8080:8080 --link registry-srv --name registry-web hyper/docker-registry-web\n \n 6. Web UI will be available on `http://localhost:8080` with default admin user/password `admin/admin`.\n \n### Role system \n \nAfter first start you will have following roles:\n\n- UI_ADMIN\n- UI_USER\n- UI_DELETE\n- read-all\n- write-all\n\nYou can't delete or modify UI_ADMIN and UI_USER role, they are special roles and allows admin or user access to UI respectively.  \nUser access allows to browse registry, admin access allows to create, delete and modify users and roles in addition to user access.\n\nUI_DELETE role allows deleting images in the UI based on ACLs. \n\nEvery non-special role has a list of ACLs, each of ACL grants permission grants permission to `pull`, `pull+push` or `pull+push+delete` \nbased on IP and image name [glob matching](https://github.com/mkuchin/docker-registry-web/wiki/Glob-matching).\nFor example **read-all** role matches any IP and any image name with glob `*` and grants `pull` permission and\n**write-all** role grants `pull+push` permission for any IP and any image name. \n\n### [Configuration reference](https://github.com/mkuchin/docker-registry-web/blob/master/web-app/WEB-INF/config.yml)\n\n### [Docker Compose configuration examples](https://github.com/mkuchin/docker-registry-web/tree/master/examples)\n","funding_links":[],"categories":["Container Operations","Groovy","Web Interface","others"],"sub_categories":["User Interface"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmkuchin%2Fdocker-registry-web","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmkuchin%2Fdocker-registry-web","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmkuchin%2Fdocker-registry-web/lists"}