{"id":22355811,"url":"https://github.com/zbo14/bouncer","last_synced_at":"2025-03-26T13:13:23.199Z","repository":{"id":94588581,"uuid":"386057324","full_name":"zbo14/bouncer","owner":"zbo14","description":"😎 Dynamically block hostnames with HTTP and SOCKS proxies","archived":false,"fork":false,"pushed_at":"2021-07-15T19:11:59.000Z","size":37,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"develop","last_synced_at":"2025-01-31T14:29:05.518Z","etag":null,"topics":["docker","docker-compose","haproxy","http","http-proxy","sequelize","socks-proxy","socks5","sqlite3"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zbo14.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":"2021-07-14T19:41:11.000Z","updated_at":"2022-02-08T22:05:40.000Z","dependencies_parsed_at":"2023-04-29T21:47:30.682Z","dependency_job_id":null,"html_url":"https://github.com/zbo14/bouncer","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/zbo14%2Fbouncer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zbo14%2Fbouncer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zbo14%2Fbouncer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zbo14%2Fbouncer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zbo14","download_url":"https://codeload.github.com/zbo14/bouncer/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245659053,"owners_count":20651525,"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":["docker","docker-compose","haproxy","http","http-proxy","sequelize","socks-proxy","socks5","sqlite3"],"created_at":"2024-12-04T14:08:09.982Z","updated_at":"2025-03-26T13:13:23.180Z","avatar_url":"https://github.com/zbo14.png","language":"JavaScript","readme":"# bouncer\n\nA proxy suite that dynamically blocks hostnames you specify!\n\nSimplicity and ease-of-use were primary design goals for this project. If you're looking for a privacy-focused web proxy with more functionality, something like [privoxy](https://www.privoxy.org/) might be a better choice.\n\n## Features\n\n**Dynamic and database-driven:**\n\nView and edit blocked hostnames on-the-fly, without a service restart.\n\n**Pattern matching:**\n\nBlock custom wildcard domains (e.g. `*.foo.com`, `bar-*.baz.com`).\n\n**Supports HTTP and SOCKS5:**\n\nRun HTTP and SOCKS5 proxies that use the same list of blocked hostnames.\n\nThis is useful since (1) some clients or devices only support HTTP, and (2) the SOCKS5 proxy allows us to block traffic that isn't handled by HTTP proxies (e.g. TLS connections in desktop applications).\n\n## Prerequisites\n\n* [Node 14.x](https://nodejs.org/dist/latest-v14.x/)\n* [Docker](https://docs.docker.com/get-docker/)\n* [Compose](https://docs.docker.com/compose/install/)\n\n## Install\n\nClone the repo, `cd` into it, and `npm i -g`.\n\n## Usage\n\n### Proxy\n\n#### Build Docker image\n\n`npm run build`\n\n#### Start\n\n`npm start`\n\nThis starts an HAProxy gateway that load-balances connections and requests across SOCKS5 and HTTP proxies, respectively.\n\nThe gateway listens on port 8088 for HTTP requests and port 9059 for SOCSK5 connections.\n\n#### Stop\n\n`npm stop`\n\nThis stops and removes the Docker containers running the gateway and proxies.\n\n### CLI\n\n```\nUsage: bouncer [options] [command]\n\nOptions:\n  -V, --version           output the version number\n  -h, --help              display help for command\n\nCommands:\n  allow \u003chostname\u003e\n  block \u003chostname/@file\u003e\n  view\n  help [command]          display help for command\n```\n\n#### Block hostname\n\n`bouncer block \u003chostname/@file\u003e`\n\nBlock a hostname or a file containing 1 hostname per line.\n\n#### Allow hostname\n\n`bouncer allow \u003chostname\u003e`\n\n#### View blocked hostnames\n\n`bouncer view`\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzbo14%2Fbouncer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzbo14%2Fbouncer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzbo14%2Fbouncer/lists"}