{"id":35276086,"url":"https://github.com/renakdup/localreverseproxy","last_synced_at":"2026-05-19T11:37:01.547Z","repository":{"id":226102557,"uuid":"764261405","full_name":"renakdup/localreverseproxy","owner":"renakdup","description":"The reverse proxy for the local environment written on GO can help to run several docker projects locally via the 80 port.","archived":false,"fork":false,"pushed_at":"2024-03-15T22:35:32.000Z","size":30,"stargazers_count":1,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-27T17:55:13.246Z","etag":null,"topics":["go","golang","local-reverse-proxy","local-server","reverse-proxy","reverse-proxy-server"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/renakdup.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,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-02-27T19:09:00.000Z","updated_at":"2025-06-01T14:30:44.000Z","dependencies_parsed_at":"2024-03-08T14:51:58.940Z","dependency_job_id":null,"html_url":"https://github.com/renakdup/localreverseproxy","commit_stats":null,"previous_names":["renakdup/localreverseproxy"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/renakdup/localreverseproxy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/renakdup%2Flocalreverseproxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/renakdup%2Flocalreverseproxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/renakdup%2Flocalreverseproxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/renakdup%2Flocalreverseproxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/renakdup","download_url":"https://codeload.github.com/renakdup/localreverseproxy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/renakdup%2Flocalreverseproxy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33214453,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-19T07:54:09.561Z","status":"ssl_error","status_checked_at":"2026-05-19T07:54:08.508Z","response_time":58,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["go","golang","local-reverse-proxy","local-server","reverse-proxy","reverse-proxy-server"],"created_at":"2025-12-30T13:57:46.783Z","updated_at":"2026-05-19T11:37:01.541Z","avatar_url":"https://github.com/renakdup.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Local Reverse Proxy\nThe reverse proxy server for the local environment can help to run several docker projects locally via the 80 port.\n\nEach time when you face issues when you need to run several docker projects and you don't want to stop and run it again and again, or you just need your projects to work on 80 port. Use this Local Reverse Proxy!\n\nArticle: [How to run multiple Docker projects under port 80 using an off-the-shelf local Reverse Proxy](https://wp-yoda.com/en/environment/how-to-run-multiple-docker-projects-under-port-80-using-an-off-the-shelf-local-reverse-proxy/).\n\n## How it works (diagram)\n```text\n    Client                  Host (OS mapping)          Reverse Proxy        Target Server (Docker App)\n   +------+    request      +-----------------+       +--------------+         +----------------+\n   │      │ 'example.local' │                 │       │              │  proxy  │                │\n   │      │────────────────►│ 'example.local' │──────►│              │────────►│                │\n   │      │    response     │    mapped to    │       │ 127.0.0.1:80 │         │ localhost:8080 │\n   │      │◄────────────────│   '127.0.0.1'   │◄──────│              │◄────────│                │\n   │      │                 │                 │       │              │         │                │\n   +------+                 +-----------------+       +--------------+         +----------------+\n   (Browser)                    /etc/hosts\n```\n\n## How to set up Local Reverse Proxy\n\n### How run Local Reverse Proxy\n1. [Download and Install Go](https://go.dev/dl/)  \n   - For macOS/Linux just follow instruction. \n   - For windows - install Go into Windows OS, and use `CMD` to build and run Go app.\n2. Clone and go into cloned repository.\n3. Let's compile Go app \n   ```bash\n   go mod tidy\n   go build\n   ```\n4. Run Local Reverse Proxy:\n   ```bash\n   ./localreverseproxy\n\n   # or if you have permissions errors use with sudo\n   sudo ./localreverseproxy \n   ```\n5. If everything ok you will see in a console:\n   ```bash\n   Reverse proxy is started.\n   ```\n6. Now visit `http://localhost`, you should see in the browser\n   ```bash\n   Server proxy started successfully!\n   ```\n   and in the console you should see\n   ```bash\n   Requested `localhost` host with method `GET` and URI `/`\n   Requested `localhost` host with method `GET` and URI `/favicon.ico`\n   ```\n   \n   \u003e [!NOTE]\n   \u003e Each http request will be logged and you will see it in the console, so you can check how things going.\n\n### How to configure docker projects to work with Local Reverse Proxy\n1. Configure ports for your docker projects:\n   - Create `docker-compose.override.yml` in your projects.\n   - Add there apache or nginx service and change a port. Because by default most of projects uses 80 or 443 ports.  \n     Yaml should look like this:\n   ```yaml\n   services:   \n     nginx:\n       ports: !override # helps to reset ports.\n         - \"8080:80\" # Now set up new external port `8080`\n   ```\n   \u003e [!NOTE]\n   \u003e `!override` works only on the version v2.24.5 and above of docker-compose.\n\n   For another project you can set 8090 port.\n   - Recreate docker containers inside your project directory to containers use new port.\n   ```bash\n   docker-compose up -d --force-recreate\n   ```\n   - Do the same steps for another docker project but use another port, as example `8090`.   \n   \n   \u003e [!NOTE]\n   \u003e **Remember one port for one service/container/device!**\n\n   \u003e [!NOTE]\n   \u003e Your 2 and more projects have to run and work without any issues, if not check that external ports be unique.\n   \n2. Go to the directory of cloned `localreverseproxy` repository again.\n3. Add your docker projects domains into `services.json` file. Where:\n   - `Key` is local domain address.\n   - `Value` is URL:Port of docker service. Use `http://localhost:\u003cyour_service_port\u003e`\n   \n\u003e [!NOTE]\n\u003e You can use simple regexp in `Key` fields of `services.json` file.  \n\u003e To have a mask, like: `*.local`.\n\n\u003e [!NOTE]\n\u003e **If you change the `services.json` file you don't need to compile app again. It is read in runtime.**\n\n\u003e [!NOTE]\n\u003e Don't forget add domains into your `hosts` file.\n\n---\n\n## Roadmap\n- [x] Configure routing via `json`.\n- [x] Implement reverse-proxy functionality.\n- [x] Add documentation how to use it.\n- [x] Show error if port is busy.\n- [x] Add requests logging in console.\n- [x] Add service response logging in console. \n- [ ] Add supporting https\n- [ ] Add supporting url paths\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frenakdup%2Flocalreverseproxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frenakdup%2Flocalreverseproxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frenakdup%2Flocalreverseproxy/lists"}