{"id":25794497,"url":"https://github.com/cblomart/spliceproxy","last_synced_at":"2026-06-08T01:32:16.286Z","repository":{"id":150513113,"uuid":"120132159","full_name":"cblomart/spliceproxy","owner":"cblomart","description":"Transparent proxy for https and http","archived":false,"fork":false,"pushed_at":"2018-03-12T23:11:50.000Z","size":265,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-27T17:43:18.214Z","etag":null,"topics":["http","https","proxy","transparent-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/cblomart.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":"2018-02-03T21:41:11.000Z","updated_at":"2023-09-05T08:55:44.000Z","dependencies_parsed_at":"2023-04-06T07:46:48.850Z","dependency_job_id":null,"html_url":"https://github.com/cblomart/spliceproxy","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/cblomart/spliceproxy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cblomart%2Fspliceproxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cblomart%2Fspliceproxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cblomart%2Fspliceproxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cblomart%2Fspliceproxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cblomart","download_url":"https://codeload.github.com/cblomart/spliceproxy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cblomart%2Fspliceproxy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34044919,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-07T02:00:07.652Z","response_time":124,"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":["http","https","proxy","transparent-proxy"],"created_at":"2025-02-27T13:59:19.408Z","updated_at":"2026-06-08T01:32:16.281Z","avatar_url":"https://github.com/cblomart.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SpliceProxy\n\n[![Go Report Card](https://goreportcard.com/badge/github.com/cblomart/spliceproxy)](https://goreportcard.com/report/github.com/cblomart/spliceproxy) [![Maintainability](https://api.codeclimate.com/v1/badges/1b846ff830e068ea7658/maintainability)](https://codeclimate.com/github/cblomart/spliceproxy/maintainability) [![Travis Build Status](https://travis-ci.org/cblomart/spliceproxy.svg?branch=master)](https://travis-ci.org/cblomart/spliceproxy)  [![](https://images.microbadger.com/badges/image/cblomart/spliceproxy.svg)](https://microbadger.com/images/cblomart/spliceproxy \"Get your own image badge on microbadger.com\") [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n\n**Transparent** proxy for http and https sites.\nDoesn't implement ssl bumping but routes **SSL** queries in function of **server name indication**.\nStandard **http** requests uses the **Host header**.\n\nThe list of autorized servers need to be provided via a whitelist.\n\nUnauthorized requests can be routed to another server or to a hosted basic page.\n\n## Installation\n\nDownload the binary corresponding to your platform.\n\nConfigure via the yaml file (see bellow).\n\nStart:\n\n```bash\nspliceproxy -c config.yaml\n```\n\nTo install as a service on a systemd linux disribution (i.e centos/redhat/ubuntu):\n\n```bash\ncp sliceproxy /usr/local/bin/\ncp ./systemd/spliceproxy.service /etc/systemd/system/\ncp ./config.yaml /etc/spliceproxy.yaml\nsystemctl start spliceproxy\n```\n\nThis would be with default pathes. It can be customised to your requirements.\n\n## Configuration\n\nBasic configuration is done trought a yaml file passed as argument.\nBy default the file is named \"config.yaml\" and searched in the running path.\n\n```yaml\ntimeout: 10\n\nbuffer: 1024\n\ncatchall:\n    http: 127.0.0.1:8080\n    https: 127.0.0.1:8443\n\nlisten:\n    https:\n        - 0.0.0.0:443\n    http:\n        - 0.0.0.0:80\n\nalloweddomains:\n    - name: example.com\n    - name: github.com\n\ncheck: 30\n```\n\nIn this example configuraiton:\n\n- Timeout: All requests have a 10 seconds. This can be tuned to your websites. Long running queries will need a longer timeout.\n- Buffer: The maximum size of http headers to look at.\n- CatchAll: indicates where to redirect the users when access is denied\n- Listen: host and port where to listen to requests. These would be registered in your internal dns. The distinction between http and https is there to indicate how to detect the targeted site. Another solution is to redirect all http/https requests of your router to the proxy.\n- AllowedDomains: the list of domain name autorised via the proxy. Subdomains will be autorised but need to resolve to the correct address.\n- Check: will check for site enpoints availability every 30s. Setting it to 0 or less will disable checks\n\n## Host access denied page in application\n\nThe application needs its own certiticate to provide SSL denied page.\n\n```bash\nopenssl genrsa -out /etc/spliceproxy.key 2048\nopenssl req -new -x509 -sha256 -key /etc/spliceproxy.key -out /etc/spliceproxy.crt -days 3650\n```\n\nIn the configuration:\n\n```yaml\ncatchall:\n    server: true\n    key: /etc/spliceproxy.key\n    cert: /etc/spliceproxy.pem\n    http: 127.0.0.1:8080\n    https: 127.0.0.1:8443\n```\n\nWith this configuration the server will:\n\n- serve the access denied page\n- use the provided certificate (key and crt pair)\n- listen for http requests on localhost (127.0.0.1) on port 8080\n- listen for https requests on localhost (127.0.0.1) on port 8443\n\n## License\n\nSee [License](./LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcblomart%2Fspliceproxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcblomart%2Fspliceproxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcblomart%2Fspliceproxy/lists"}