{"id":27370860,"url":"https://github.com/tmillich/reverse_proxy","last_synced_at":"2026-05-07T02:37:50.095Z","repository":{"id":251602195,"uuid":"296199274","full_name":"tmillich/reverse_proxy","owner":"tmillich","description":"Nginx https reverse proxy with docker-compose","archived":false,"fork":false,"pushed_at":"2020-09-30T20:44:34.000Z","size":15,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-08-04T11:57:16.526Z","etag":null,"topics":["docker","docker-compose","jenkins","nginx","portainer","proxy"],"latest_commit_sha":null,"homepage":"","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tmillich.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-17T02:36:14.000Z","updated_at":"2024-08-04T11:57:23.043Z","dependencies_parsed_at":"2024-08-04T12:07:24.283Z","dependency_job_id":null,"html_url":"https://github.com/tmillich/reverse_proxy","commit_stats":null,"previous_names":["tmillich/reverse_proxy"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmillich%2Freverse_proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmillich%2Freverse_proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmillich%2Freverse_proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tmillich%2Freverse_proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tmillich","download_url":"https://codeload.github.com/tmillich/reverse_proxy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248688865,"owners_count":21145816,"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":["docker","docker-compose","jenkins","nginx","portainer","proxy"],"created_at":"2025-04-13T09:19:35.991Z","updated_at":"2026-05-07T02:37:45.052Z","avatar_url":"https://github.com/tmillich.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Reverse Proxy Nginx\n\n![Nginx Logo](https://raw.githubusercontent.com/docker-library/docs/01c12653951b2fe592c1f93a13b4e289ada0e3a1/nginx/logo.png)\n\nA Nginx HTTPS reverse proxy is an intermediary proxy service which takes a client request, passes it on to one or more servers, and subsequently delivers the server’s response back to the client. While most common applications are able to run as web server on their own, the Nginx web server is able to provide a number of advanced features such as load balancing, TLS/SSL capabilities and acceleration that most specialized applications lack. By using a Nginx reverse proxy all applications can benefit from these features.\n\nAfter the installation you can reach Jenkins and Portainer throw subdomains.\n\n![latest 0.7.0](https://img.shields.io/badge/latest-1.0.0-green.svg?style=flat)\n![nginx 1.17.8](https://img.shields.io/badge/nginx-1.17.8-brightgreen.svg) ![License MIT](https://img.shields.io/badge/license-MIT-blue.svg)\n![Build](https://github.com/tmillich/reverse_proxy/workflows/Build/badge.svg)\n![Build SSL](https://github.com/tmillich/reverse_proxy/workflows/Build%20SSL/badge.svg)\n\n\n## Prerequisites\n\n- **Docker**\n- **Docker-Compose**\n\n## Getting Started\n\nYou can choose if you wanna use TLS/SSL capabilites or not. If you dont wanna use SSL then skip the [Optional] parts and adapt the symlinks under `./nginx/config/sites-enabled/*`:\n\nFor no TLS/SSL capabilites execute:\n```bash\nln -s ./nginx/config/sites-available/default ./nginx/config/sites-enabled/default\nln -s ./nginx/config/sites-available/jenkins.localhost ./nginx/config/sites-enabled/jenkins.localhost\nln -s ./nginx/config/sites-available/portainer.localhost ./nginx/config/sites-enabled/portainer.localhost\n```\n\nand delete or comment the positions in der Dockerfile where you copying the certs and keys.\n\n```Dockerfile\nFROM nginx:1.19.2\n\n# Removing old configs\nRUN rm -rf /usr/share/nginx/html\nRUN rm -rf /etc/nginx\n\n# Coping configsalt text\nCOPY ./nginx/html /usr/share/nginx/html\nCOPY ./nginx/config /etc/nginx\n\n# Coping keys\n# COPY ./nginx/certs/*.crt /etc/ssl/certs/\n# COPY ./nginx/certs/*.key /etc/ssl/private/\n# COPY ./nginx/certs/dhparam.pem /etc/nginx/\n```\n\nFor TLS/SSL capabilites execute:\n```bash\nln -s ./nginx/config/sites-available/default.ssl ./nginx/config/sites-enabled/default.ssl\nln -s ./nginx/config/sites-available/jenkins.localhost.ssl ./nginx/config/sites-enabled/jenkins.localhost.ssl\nln -s ./nginx/config/sites-available/portainer.localhost.ssl ./nginx/config/sites-enabled/portainer.localhost.ssl\n```\n\n\n### 1. [Optional] Creating the SSL Certificate\n\nCreate dir for key and certs.\n\n```bash\nmkdir ./nginx/certs\n```\n\nEither create a self-signed key and certificate pair with OpenSSL or use your own certificate pair and place it under `./nginx/certs`.\n\n```bash\nopenssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ./nginx/certs/nginx-selfsigned.key -out ./nginx/certs/nginx-selfsigned.crt\n```\n\nWhile we are using OpenSSL, we should also create a strong Diffie-Hellman group, which is used in negotiating Perfect Forward Secrecy with clients.\n```bash\nopenssl dhparam -out ./nginx/certs/dhparam.pem 4096\n```\n### 2. Configuring Nginx\n\nTo add other services simply add more \\*.conf Files under `./nginx/config/sites-available/` and pick the sites by adding Symlinks to `./nginx/config/sites-enabled/`.\n\n```bash\nln -s ./nginx/config/sites-available/\u003cdocker-service\u003e ./nginx/config/sites-enabled/\u003cdocker-service\u003e\n```\n\n### 3. Run Docker-Compose\n\n```bash\ndocker-compose up -d\n```\n\n### 4. [Optional] Trust Certificate locally\n\nWe need to add the generated SSL certificate to the database that browser uses. For this we will use “certutil” utility which is part of the libnss3-tools package.\n```bash\nsudo apt-get update\nsudo apt-get install libnss3-tools\n```\nTo add certificate to the database run the following command.\n```bash\ncertutil -d sql:$HOME/.pki/nssdb -A -t \"CT,c,c\" -n \"localhost\" -i ./nginx/certs/nginx-selfsigned.crt\n```\n*localhost* represents the local domain you wanna choose. By choosing an other name simply replace your local domain name in the command, edit the NGINX configurations and add one more entry in `/etc/hosts`.\n\n## License\n\nThis Repository is under [MIT-Licensing](./LICENSE.md) terms.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftmillich%2Freverse_proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftmillich%2Freverse_proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftmillich%2Freverse_proxy/lists"}