{"id":13721417,"url":"https://github.com/hkparker/proxyd","last_synced_at":"2025-12-26T22:50:36.033Z","repository":{"id":144262666,"uuid":"45805636","full_name":"hkparker/proxyd","owner":"hkparker","description":"proxyd proxies data between TCP, TLS, and unix sockets","archived":false,"fork":false,"pushed_at":"2017-05-11T04:58:43.000Z","size":1975,"stargazers_count":17,"open_issues_count":0,"forks_count":6,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-04-08T17:00:24.610Z","etag":null,"topics":[],"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/hkparker.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}},"created_at":"2015-11-09T00:20:46.000Z","updated_at":"2022-11-09T17:53:36.000Z","dependencies_parsed_at":"2024-01-13T11:13:43.134Z","dependency_job_id":"2b520f37-a174-4e81-bdee-17c8362ca295","html_url":"https://github.com/hkparker/proxyd","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hkparker%2Fproxyd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hkparker%2Fproxyd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hkparker%2Fproxyd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hkparker%2Fproxyd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hkparker","download_url":"https://codeload.github.com/hkparker/proxyd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224604938,"owners_count":17339232,"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":[],"created_at":"2024-08-03T01:01:16.771Z","updated_at":"2025-12-26T22:50:35.994Z","avatar_url":"https://github.com/hkparker.png","language":"Go","funding_links":[],"categories":["File Transfer"],"sub_categories":[],"readme":"proxyd\n======\n\nproxyd proxies data between TCP, TLS, and unix sockets\n\n```\nTLS termination:     Connecting to a remote application's unix socket:\n   +---------+         +----------+        +----------+\n   |         |         |          |        |          |\n-\u003eTLS -\u003e TCP |         | -\u003e unix -+------\u003eTLS -\u003e unix |\n   |         |         |          |        |          |\n   +---------+         +----------+        +----------+\n                                                                     _\nProxying through an encrypted pipe:                                 | |\n                                       _ __  _ __ _____  ___   _  __| |\n   +---------+      +---------+       | '_ \\| '__/ _ \\ \\/ / | | |/ _` |\n   |         |      |         |       | |_) | | | (_) \u003e  \u003c| |_| | (_| |\n-\u003eTCP -------+---\u003e TLS -\u003e TCP |       | .__/|_|  \\___/_/\\_\\\\__, |\\__,_|\n   |         |      |         |       | |                   __/ |\n   +---------+      +---------+       |_|                  |___/\n```\n\nUsage\n-----\n\n```\n$ proxyd --help\nUsage of proxyd:\n  -config string\n        name of configuration file (default \"proxyd_config.json\")\n```\n\nproxyd takes a file with a configuration object that describes listeners and proxies.  The object is in the form of a [`ServicePack`](https://github.com/hkparker/proxyd/blob/master/services.go#L17).\n\nExamples\n--------\n\nListen on a port and forward to another host\n\n```json\n[\n\t{\n\t\t\"Front\": \"tcp://0.0.0.0:80\",\n\t\t\"Back\": \"tcp://192.168.1.2:8080\",\n\t}\n]\n```\n\nAccept TCP connections and forward to a local TLS server without verification\n\n```json\n[\n\t{\n\t\t\"Front\": \"tcp://0.0.0.0:80\",\n\t\t\"Back\": \"tls://127.0.0.1:443\",\n\t\t\"BackConfig\": {\n\t\t\t\"InsecureSkipVerify\": \"true\"\n\t\t}\n\t}\n]\n```\n\nTerminate TLS\n\n```json\n[\n\t{\n\t\t\"Front\": \"tls://0.0.0.0:443\",\n\t\t\"Back\": \"tcp://127.0.0.1:80\",\n\t\t\"FrontConfig\": {\n\t\t\t\"CERT\": \"-----BEGIN CERTIFICATE-----\\n...\",\n\t\t\t\"KEY\": \"-----BEGIN RSA PRIVATE KEY-----\\n...\"\n\t\t}\n\t}\n]\n```\n\nTerminate TLS with client certificate verification\n\n```json\n```\n\nServe the same unix socket on 80 and 443 with TLS\n\n```json\n[\n\t{\n\t\t\"Front\": \"tcp://0.0.0.0:80\",\n\t\t\"Back\": \"unix:///tmp/ipc.sock\"\n\t},\n\t{\n\t\t\"Front\": \"tls://0.0.0.0:443\",\n\t\t\"Back\": \"unix:///tmp/ipc.sock\",\n\t\t\"FrontConfig\": {\n\t\t\t\"CERT\": \"-----BEGIN CERTIFICATE-----\\n...\",\n\t\t\t\"KEY\": \"-----BEGIN RSA PRIVATE KEY-----\\n...\"\n\t\t}\n\t}\n]\n```\n\nSupported TLS features\n----------------------\n\n\n\nTests\n-----\n\n```\n$ go test -race -cover .\nok      github.com/hkparker/proxyd      1.016s  coverage: 59.6% of statements\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhkparker%2Fproxyd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhkparker%2Fproxyd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhkparker%2Fproxyd/lists"}