{"id":26053367,"url":"https://github.com/basemax/forwarder-app","last_synced_at":"2026-04-18T08:02:18.651Z","repository":{"id":281203603,"uuid":"944532343","full_name":"BaseMax/forwarder-app","owner":"BaseMax","description":"Forwarder App is a simple HTTP proxy server written in Go. It forwards requests from different ports to specified target URLs based on predefined routes. This is useful for routing traffic between microservices, load balancing, or general request forwarding.","archived":false,"fork":false,"pushed_at":"2025-03-07T14:34:37.000Z","size":8,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-25T11:57:27.693Z","etag":null,"topics":["forward","forward-proxy","forwarder","forwarding","go","golang","microservice","microservices","microservices-architecture","nginx","proxy","proxy-checker","proxy-server","reverse-proxy"],"latest_commit_sha":null,"homepage":"","language":"Go","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/BaseMax.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,"publiccode":null,"codemeta":null}},"created_at":"2025-03-07T14:10:51.000Z","updated_at":"2025-03-07T14:34:40.000Z","dependencies_parsed_at":"2025-03-07T15:43:25.580Z","dependency_job_id":null,"html_url":"https://github.com/BaseMax/forwarder-app","commit_stats":null,"previous_names":["basemax/forwarder-app"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/BaseMax/forwarder-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseMax%2Fforwarder-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseMax%2Fforwarder-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseMax%2Fforwarder-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseMax%2Fforwarder-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BaseMax","download_url":"https://codeload.github.com/BaseMax/forwarder-app/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BaseMax%2Fforwarder-app/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31961348,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["forward","forward-proxy","forwarder","forwarding","go","golang","microservice","microservices","microservices-architecture","nginx","proxy","proxy-checker","proxy-server","reverse-proxy"],"created_at":"2025-03-08T07:28:11.282Z","updated_at":"2026-04-18T08:02:18.633Z","avatar_url":"https://github.com/BaseMax.png","language":"Go","readme":"# Forwarder App\n\nForwarder App is a simple HTTP proxy server written in Go. It forwards requests from different ports to specified target URLs based on predefined routes. This is useful for routing traffic between microservices, load balancing, or general request forwarding.\n\n## Features\n\n- **Multiple Ports**: Supports multiple ports with configurable gateways.\n- **Custom Routes**: Forward requests based on HTTP method and path.\n- **TLS Support**: Configurable TLS settings for secure communication.\n- **Streaming Support**: Handles large responses efficiently with streaming.\n- **Concurrency**: Handles multiple ports and routes concurrently.\n\n## Installation\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/BaseMax/forwarder-app.git\n   cd forwarder-app\n   ```\n\n2. Install Go (if you don't have it):\n   [Download Go](https://golang.org/dl/)\n\n3. Run the application:\n   ```bash\n   go run main.go\n   ```\n\n4. Optionally, build the application:\n   ```bash\n   go build -o forwarder-app.exe\n   ```\n\n## Configuration\n\nThe application requires a `config.json` file to define the ports and routes. Here is an example of the `config.json` file:\n\n```json\n{\n  \"ports\": [\n    {\n      \"port\": 9004,\n      \"gateway\": \"127.0.0.1:2004\",\n      \"routes\": [\n        { \"method\": \"POST\", \"path\": \"/v1/member/register\", \"target\": \"127.0.0.1:30031\" },\n        { \"method\": \"POST\", \"path\": \"/v1/login\", \"target\": \"127.0.0.1:30031\" },\n        { \"method\": \"POST\", \"path\": \"/v1/verifycode\", \"target\": \"127.0.0.1:30031\" },\n        { \"method\": \"POST\", \"path\": \"/v1/getforgetcode\", \"target\": \"127.0.0.1:30031\" },\n        { \"method\": \"POST\", \"path\": \"/v1/newpassword\", \"target\": \"127.0.0.1:30031\" },\n        { \"method\": \"POST\", \"path\": \"/v1/resendactive\", \"target\": \"127.0.0.1:30031\" },\n        { \"method\": \"POST\", \"path\": \"/v1/activeuser\", \"target\": \"127.0.0.1:30031\" }\n      ]\n    },\n    {\n      \"port\": 9005,\n      \"gateway\": \"127.0.0.1:3005\",\n      \"routes\": []\n    },\n    {\n      \"port\": 9524,\n      \"gateway\": \"127.0.0.1:2524\",\n      \"routes\": []\n    }\n  ]\n}\n```\n\nRun and test:\n\n```bash\n$ forwarder-app\n2025/03/07 18:04:07 Starting server on port 9524\n2025/03/07 18:04:07 Starting server on port 9005\n2025/03/07 18:04:07 Starting server on port 9004\n```\n\n### Configuration Details:\n- `ports`: List of ports the server will listen on.\n- `port`: Port number for the server.\n- `gateway`: The address of the target server to forward requests to.\n- `routes`: List of routes specifying the HTTP method, path, and target server.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Copyright\n\n© 2025 Max Base.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbasemax%2Fforwarder-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbasemax%2Fforwarder-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbasemax%2Fforwarder-app/lists"}