{"id":20838377,"url":"https://github.com/reload/https-proxy","last_synced_at":"2025-04-15T17:48:52.659Z","repository":{"id":246218642,"uuid":"820448254","full_name":"reload/https-proxy","owner":"reload","description":"A nginx proxy with HTTPS support for Docker Compose development environments.","archived":false,"fork":false,"pushed_at":"2025-02-26T12:37:26.000Z","size":108,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-28T23:11:20.483Z","etag":null,"topics":["developer-tools","development","docker","docker-compose","docker-image","drupal","https","https-proxy","nextjs","nginx","proxy","storybook","vite"],"latest_commit_sha":null,"homepage":"https://ghcr.io/reload/https-proxy","language":"Shell","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/reload.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":"2024-06-26T13:40:48.000Z","updated_at":"2025-02-26T12:37:30.000Z","dependencies_parsed_at":"2024-06-26T16:51:21.499Z","dependency_job_id":"2a0d4240-e329-4a38-b145-c51526fcdcbe","html_url":"https://github.com/reload/https-proxy","commit_stats":null,"previous_names":["reload/https-proxy"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reload%2Fhttps-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reload%2Fhttps-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reload%2Fhttps-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reload%2Fhttps-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reload","download_url":"https://codeload.github.com/reload/https-proxy/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249125066,"owners_count":21216699,"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":["developer-tools","development","docker","docker-compose","docker-image","drupal","https","https-proxy","nextjs","nginx","proxy","storybook","vite"],"created_at":"2024-11-18T01:10:02.179Z","updated_at":"2025-04-15T17:48:52.636Z","avatar_url":"https://github.com/reload.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HTTPS proxy\n\nA nginx proxy with HTTPS support for Docker Compose development\nenvironments.\n\n## HTTPS configuration\n\nThe proxy uses a self-signed certificate for HTTPS. You can use a root\ncertificate, e.g., one generated with mkcert to avoid browser\nwarnings.\n\nMount the root certificate like this\n\n```yaml\nvolumes:\n - '${HOME}/.local/share/mkcert:/rootCA:ro'\n - '${HOME}/.local/share/dev_certificates:/cert:rw'\n```\n\n\u003e [!TIP]\n\u003e\n\u003e Install [mkcert](https://mkcert.dev) on your host machine and\n\u003e generate and install a root certificate on your host machine by\n\u003e running (one time only).\n\u003e\n\u003e ```console\n\u003e mkcert -install\n\u003e ```\n\n### Mac users\n\n\u003e [!TIP]\n\u003e\n\u003e Mac users should do the following (one time only) while no\n\u003e containers are running:\n\u003e\n\u003e ```console\n\u003e mkdir -p ~/.local/share \u0026\u0026 find ~/.local/share -name mkcert -type d -delete \u0026\u0026 ln -s \"$(mkcert -CAROOT)\" ~/.local/share\n\u003e ```\n\u003e\n\u003e If you haven't installed mkcert yet, you can do so with Homebrew:\n\u003e\n\u003e ```console\n\u003e brew install mkcert nss\n\u003e ```\n\u003e\n\u003e [Dory](https://github.com/FreedomBen/dory) users must adjust their\n\u003e config (run `dory config` or edit `~/.dory.yml`):\n\u003e\n\u003e ```yaml\n\u003e nginx_proxy:\n\u003e     enabled: true\n\u003e     container_name: dory_dinghy_http_proxy\n\u003e     https_enabled: true\n\u003e     # Update the follow line to point at the dev_certificates\n\u003e     ssl_certs_dir: /Users/\u003cusername\u003e/.local/share/dev_certificates\n\u003e     image: codekitchen/dinghy-http-proxy:latest\n\u003e ```\n\u003e\n\u003e Remeber to restart Dory.\n\nUse can use the following configuration for the generated certificate:\n\n```yaml\nenvironment:\n  EXPIRATION_DAYS: 30\n  VIRTUAL_HOST: example.local\n```\n\n## Predefined configurations\n\nThis nginx proxy comes with three predefined configurations:\n\n- Proxy\n- Vite\n- Next.js\n- Storybook\n- Drupal\n\n### Proxy\n\nProxy is a generic configuration that just forwards requests to the\nbackend.\n\n```yaml\nimage: ghcr.io/reload/https-proxy:proxy\n```\n\nSee the configuration details in\n[`context/proxy/etc/nginx/templates/default.conf.template`](context/proxy/etc/nginx/templates/default.conf.template).\n\nUse can use the following configuration in your `docker-compose.yml`:\n\n```yaml\nenvironment:\n  NGINX_DOCUMENT_ROOT: /var/www/web\n  NGINX_PROXY_PASS: \u003cno default\u003e\n```\n\n### Vite\n\nVite is like the proxy configuration but also forwards all WebSocket\nrequests.\n\n```yaml\nimage: ghcr.io/reload/https-proxy:vite\n```\n\nSee the configuration details in\n[`context/vite/etc/nginx/templates/default.conf.template`](context/nextjs/etc/vite/templates/default.conf.template).\n\nUse can use the following configuration in your `docker-compose.yml`:\n\n```yaml\nenvironment:\n  NGINX_DOCUMENT_ROOT: /var/www/web\n  NGINX_PROXY_PASS: http://app:5173\n```\n\n### Next.js\n\nNext.js is like the proxy configuration but also forwards WebSocket\nconnections on the path `/_next/webpack-hmr`.\n\n```yaml\nimage: ghcr.io/reload/https-proxy:nextjs\n```\n\nSee the configuration details in\n[`context/nextjs/etc/nginx/templates/default.conf.template`](context/nextjs/etc/nginx/templates/default.conf.template).\n\nUse can use the following configuration in your `docker-compose.yml`:\n\n```yaml\nenvironment:\n  NGINX_DOCUMENT_ROOT: /var/www/web\n  NGINX_PROXY_PASS: http://app:3000\n```\n\n### Storybook\n\nStorybook is like the proxy configuration but also forwards WebSocket\nconnections on the paths `/__webpack-hmr` and\n`/storybook-server-channel`.\n\n```yaml\nimage: ghcr.io/reload/https-proxy:storybook\n```\n\nSee the configuration details in\n[`context/storybook/etc/nginx/templates/default.conf.template`](context/storybook/etc/nginx/templates/default.conf.template).\n\nUse can use the following configuration in your `docker-compose.yml`:\n\n```yaml\nenvironment:\n  NGINX_DOCUMENT_ROOT: /var/www/web\n  NGINX_PROXY_PASS: http://app:6006\n```\n\n### Drupal\n\nDrupal is a configuration that forwards PHP-FPM requests to a Drupal\ndevelopment server. So strictly speaing this is not a proxy.\n\n```yaml\nimage: ghcr.io/reload/https-proxy:drupal\n```\n\nSee the configuration details in\n[`context/drupal/etc/nginx/templates/default.conf.template`](context/drupal/etc/nginx/templates/default.conf.template).\n\nUse can use the following configuration in your `docker-compose.yml`:\n\n```yaml\nenvironment:\n  NGINX_DOCUMENT_ROOT: /var/www/web\n  NGINX_FASTCGI_PASS_HOST: php\n  NGINX_FASTCGI_PASS_PORT: 9000\n  NGINX_CLIENT_MAX_BODY_SIZE: 128M\n```\n\n## Base image\n\nThere is also a base configuration that comes with no predefined\nconfiguration.\n\n```yaml\nimage: ghcr.io/reload/https-proxy:base\n```\n\nYou can add your own configuration by mounting a volume to\n`/etc/nginx/templates` or `/etc/nginx/conf.d`.\n\nYou can include the predefined SSL configurations by adding the\nfollowing:\n\n```nginx\ninclude include.d/ssl.conf;\n```\n\n\u003e [!NOTE]\n\u003e\n\u003e This image is meant to replace\n\u003e [drupal-apache-fpm](https://github.com/reload/drupal-apache-fpm),\n\u003e which we have used for most of our projects.\n\u003e\n\u003e The new approach is smaller (due to using nginx), more inline with\n\u003e current production hosting practice (nginx, again), should be easier\n\u003e to maintain and keep up-to-date, and also supports Next.js,\n\u003e Storybook, and generic proxies.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freload%2Fhttps-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freload%2Fhttps-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freload%2Fhttps-proxy/lists"}