From 8e539be6ba67a95ebe2bfacf740f293e2e1b390e Mon Sep 17 00:00:00 2001 From: Joxit Date: Tue, 16 Apr 2019 12:21:39 +0200 Subject: [PATCH] Add quick example for issue #20 fixes: #20 --- README.md | 9 +++++++++ examples/issue-20/README.md | 11 +++++++++++ examples/issue-20/docker-compose.yml | 27 ++++++++++++++++++++++++++ examples/issue-20/nginx/fullchain.pem | 21 ++++++++++++++++++++ examples/issue-20/nginx/nginx.conf | 24 +++++++++++++++++++++++ examples/issue-20/nginx/privkey.pem | 28 +++++++++++++++++++++++++++ 6 files changed, 120 insertions(+) create mode 100644 examples/issue-20/README.md create mode 100644 examples/issue-20/docker-compose.yml create mode 100644 examples/issue-20/nginx/fullchain.pem create mode 100644 examples/issue-20/nginx/nginx.conf create mode 100644 examples/issue-20/nginx/privkey.pem diff --git a/README.md b/README.md index 4d30768..3588edc 100644 --- a/README.md +++ b/README.md @@ -198,3 +198,12 @@ auth: realm: basic-realm path: /etc/docker/registry/htpasswd ``` + +## All examples + +- [Use docker-registry-ui as a proxy (use REGISTRY_URL)](https://github.com/Joxit/docker-registry-ui/tree/master/examples/ui-as-proxy) +- [Use docker-registry-ui as standalone (use URL)](https://github.com/Joxit/docker-registry-ui/tree/master/examples/ui-as-standalone) +- [Use docker-registry-ui with traefik](https://github.com/Joxit/docker-registry-ui/tree/master/examples/traefik) +- [Use docker-registry-ui with docker registry and Amazon s3 (#75)](https://github.com/Joxit/docker-registry-ui/tree/master/examples/issue-75) +- [FIX revproxy to registry does not work when published under non-root url (#73)](https://github.com/Joxit/docker-registry-ui/tree/master/examples/issue-73) +- [Use docker-registry-ui with HTTPS (#20)](https://github.com/Joxit/docker-registry-ui/tree/master/examples/issue-20) \ No newline at end of file diff --git a/examples/issue-20/README.md b/examples/issue-20/README.md new file mode 100644 index 0000000..98acc3c --- /dev/null +++ b/examples/issue-20/README.md @@ -0,0 +1,11 @@ +# Example for issue #20 (HTTPS supports) + +This example will override the original nginx conf with one supporting HTTPS. You will need to rewrite all the project configuration (replaces `proxy_pass` with our value). + +Generating a self signed certificate: + +``` +openssl req -newkey rsa:2048 -nodes -keyout nginx/privkey.pem -x509 -days 3650 -out nginx/fullchain.pem +``` + +The UI will be available here : https://localhost \ No newline at end of file diff --git a/examples/issue-20/docker-compose.yml b/examples/issue-20/docker-compose.yml new file mode 100644 index 0000000..3330bb1 --- /dev/null +++ b/examples/issue-20/docker-compose.yml @@ -0,0 +1,27 @@ +version: '2.0' +services: + registry: + image: registry:2.6.2 + volumes: + - ./registry-data:/var/lib/registry + networks: + - registry-ui-net + + ui: + image: joxit/docker-registry-ui:static + environment: + - REGISTRY_TITLE=My Private Docker Registry + volumes: + - ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf + - ./nginx/fullchain.pem:/etc/nginx/certs/fullchain.pem + - ./nginx/privkey.pem:/etc/nginx/certs/privkey.pem + ports: + - 80:80 + - 443:443 + depends_on: + - registry + networks: + - registry-ui-net + +networks: + registry-ui-net: \ No newline at end of file diff --git a/examples/issue-20/nginx/fullchain.pem b/examples/issue-20/nginx/fullchain.pem new file mode 100644 index 0000000..9ae287b --- /dev/null +++ b/examples/issue-20/nginx/fullchain.pem @@ -0,0 +1,21 @@ +-----BEGIN CERTIFICATE----- +MIIDYDCCAkigAwIBAgIJAKNtVPbuycx+MA0GCSqGSIb3DQEBCwUAMEUxCzAJBgNV +BAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBX +aWRnaXRzIFB0eSBMdGQwHhcNMTkwNDE2MDk1NzEzWhcNMjkwNDEzMDk1NzEzWjBF +MQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50 +ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEAuykmuGBPiNDWzxmqK7BQgJqDLWbAsf4769sI2gSMR0C6qd6WV6JJ+Rf+ +y1auT2fA38cvJUjdPBEQCTxpE3Ce3e9nXYTITzze6OUCwewbdR/Cm+dHyR+M2YNP +SQrZI6p4NE1TwCHc0LVWfblAaWiylFPeWlFCVSg5hqKAkRh9PEcWBdN5vim3/8sC +16YmXWCERGPdFKYBN52ERJ+9h51ktMdns0LJVn+DLVSNWsiH76IMulHU64d9nZoL +kVhxohiOeP2ZuV7E+9RYDlaKObohclPz3RoOXUbr3zjjna+dqxI6mxCw5qms26RL +eBcQQA/EoqaAv+y+jCKqbCCcEgy27QIDAQABo1MwUTAdBgNVHQ4EFgQUDKyOzsPn +Tc6ZTTdnt8U59/j+3l8wHwYDVR0jBBgwFoAUDKyOzsPnTc6ZTTdnt8U59/j+3l8w +DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAmqHfSjO58FoJWJUM +2i0rcql0Y24XjZ92RdBQGLkvAhi+QxWBXNKibvpen2miv3fAeYmiFtIHQCuOCqCj +SSdQwb91D5WR9s21PILEWsOd1H0v4ZVHX2Z5Qv5f6Hk1DiTG/sZmzUqog74TtCpG +4m56/JYd4Mkk9raiWT9RKVTVnSHjM8h2zIMio14Nil4zO67G68jp1K0C1AM9npsf +cvQ2+2XAOEcQ7e3nCF4ppA3HdnCm8qbr8DM12KTs+nkncps/7u+3C5vv5TxI+BEz +b5Cs+HbLwPAphYp0CSK+sXiCUMA//mUAcMeYKq2/V4wufJlZEpBxogdttW7J4KJm +Num0pw== +-----END CERTIFICATE----- diff --git a/examples/issue-20/nginx/nginx.conf b/examples/issue-20/nginx/nginx.conf new file mode 100644 index 0000000..af7ec4c --- /dev/null +++ b/examples/issue-20/nginx/nginx.conf @@ -0,0 +1,24 @@ +server { + listen 443 ssl; + ssl_protocols TLSv1 TLSv1.1 TLSv1.2; + ssl_ciphers HIGH:!aNULL:!MD5; + ssl_certificate /etc/nginx/certs/fullchain.pem; + ssl_certificate_key /etc/nginx/certs/privkey.pem; + root /usr/share/nginx/html; + + location /v2 { + # Do not allow connections from docker 1.5 and earlier + # docker pre-1.6.0 did not properly set the user agent on ping, catch "Go *" user agents + if ($http_user_agent ~ "^(docker\/1\.(3|4|5(.[0-9]-dev))|Go ).*$" ) { + return 404; + } + proxy_pass http://registry:5000; + } +} + +server { + listen 80; + location / { + return 301 https://$host$request_uri; + } +} diff --git a/examples/issue-20/nginx/privkey.pem b/examples/issue-20/nginx/privkey.pem new file mode 100644 index 0000000..16cd4d3 --- /dev/null +++ b/examples/issue-20/nginx/privkey.pem @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC7KSa4YE+I0NbP +GaorsFCAmoMtZsCx/jvr2wjaBIxHQLqp3pZXokn5F/7LVq5PZ8Dfxy8lSN08ERAJ +PGkTcJ7d72ddhMhPPN7o5QLB7Bt1H8Kb50fJH4zZg09JCtkjqng0TVPAIdzQtVZ9 +uUBpaLKUU95aUUJVKDmGooCRGH08RxYF03m+Kbf/ywLXpiZdYIREY90UpgE3nYRE +n72HnWS0x2ezQslWf4MtVI1ayIfvogy6UdTrh32dmguRWHGiGI54/Zm5XsT71FgO +Voo5uiFyU/PdGg5dRuvfOOOdr52rEjqbELDmqazbpEt4FxBAD8SipoC/7L6MIqps +IJwSDLbtAgMBAAECggEBAK7E+KFHXj22NkDiCGQPmrzcjA4DW4FalH3j5Vog0RVg +Pm6NqfpfU5BFdepPISqJCjRs/XtllSGYFU9ql/xNOCyqd+1+JsbHYqg74d1QKzut +0r5etEv9KDudQJZGiQmjD+hXJRPPCzHhg8iXCqzj1Y5o2sOgCb8XdtBgQoo7Qgbc +CG+3tytGPo33dotiFBUknrQRexTwgSWYXI89lI6fRSJlc8NyK7zp+mGbSopqGWHm +X6V8AI+XNuliIhTvOxGhw0maNEnds39SYHCYfLATjp9x6XVVp5mG7BJLkifC8Cob +IYQGfBwmEYbOTiNJ6oEgRZOZFPsLbqsPfPgTpHvIwUECgYEA7WfYek3DWkC7Ex3r +7hcZjBa8JMxPhgSMho/5F8zHGAf8MdEmXPYKi9tvhLeMJQwzzlN4RtX9zg0FJ5eL +tSgGHT/aRc2/9ZAvuG7gypNZlaAd+/SloYfKsGJQxFqLTfm288qyrRoOtBjhRMCI +lRmw5uYVV775cK741+lyD5xj/DkCgYEAydHb8mIt/IvCloVGzP8z4veIarEecYk3 +UPw/wneZFZwGegGTsCwxox1uWVcO5CoNLhRo7622kZ6Mhsd83ySj8eQWpR1qoeMJ +8ti9c2FniZdtUwdFgu7GPgJq3DWTVQ0c0MTnyk/UbsfD/AKG0YK9T2sReteaPOUg +nohVutYZuFUCgYEAorXau7BSZKgaz3ZhfjQc0VO/rWTOWCcD/THt4i76gXDvm2Ei +bvI+ti42V3rJNZcQZqf0tm/x3Og1kTYfjZCZ6DAcNF1Y5D/nRPvRW2X0L0WnZ0j8 +wCHmfE9V1c3MziuJBbv2DAfg7fRjaJCgy7fo88fb9uCv61gwuyKHh0WDjZkCgYB3 +R89lLF3dm4TAjbjQxCyYgpBf7pr9o4nMFaphd2pE+Vhil7gAMb6Ml4J2zxuAAtKT +X4C917/FxR1tM048XF2BQ7uWjxJM5/EjVLJ0FSeqjJMStYOB5TnJwIgD6q5PYFad +lSMh0ZjOeMb+lUe1YD4fSDqmjfMc9pcW26E/sfa1mQKBgQDMRKH/R+yw6Nemu837 +mwNVTiKtQoWS8jl8Gwox6o3cgrV/6szQaQz8oF9x829jFehYEMGYMX/8zPToyBCU +gRod6bcMmdLB8EQd7VI5L9/CeoZQmpVVZ1STNjUqscE/Gb98nCPNXTkVeAgtE1WS +AVhAAc+34wOxlAcjcXweBK69kg== +-----END PRIVATE KEY-----