{"id":13550919,"url":"https://github.com/jkuri/bore","last_synced_at":"2025-04-06T06:08:19.937Z","repository":{"id":38999825,"uuid":"275677190","full_name":"jkuri/bore","owner":"jkuri","description":"Reverse HTTP/TCP proxy to help you expose a local server behind a NAT or firewall to the internet via secure SSH tunnels.","archived":false,"fork":false,"pushed_at":"2025-02-04T18:02:15.000Z","size":1706,"stargazers_count":96,"open_issues_count":12,"forks_count":11,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-30T05:04:44.277Z","etag":null,"topics":["localtunnel","ngrok","ssh","ssh-server","tunnel","tunnel-client","tunnel-server","tunneling"],"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/jkuri.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":"2020-06-28T22:14:15.000Z","updated_at":"2025-03-08T15:53:02.000Z","dependencies_parsed_at":"2023-02-18T10:46:51.898Z","dependency_job_id":"0ad5b761-608c-431d-8755-0bd2c6fcfe04","html_url":"https://github.com/jkuri/bore","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jkuri%2Fbore","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jkuri%2Fbore/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jkuri%2Fbore/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jkuri%2Fbore/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jkuri","download_url":"https://codeload.github.com/jkuri/bore/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247441051,"owners_count":20939239,"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":["localtunnel","ngrok","ssh","ssh-server","tunnel","tunnel-client","tunnel-server","tunneling"],"created_at":"2024-08-01T12:01:39.523Z","updated_at":"2025-04-06T06:08:19.918Z","avatar_url":"https://github.com/jkuri.png","language":"Go","funding_links":[],"categories":["Go","others"],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003ebore\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/1796022/120690493-93029500-c4a5-11eb-8a5c-c971911467cb.png\" alt=\"bore-logo\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://bore.digital\"\u003e\u003cstrong\u003ehttps://bore.digital\u003c/strong\u003e\u003c/a\u003e\n  \u003cbr\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003eReverse HTTP/TCP proxy tunnel via secure SSH connections.\u003c/p\u003e\n\n## Installation\n\nYou can download prebuild binaries [here](https://github.com/jkuri/bore/releases).\n\n### Build from source\n\nFirst, clone the repository\n\n```sh\ngit clone https://github.com/jkuri/bore.git\n```\n\nThen install client:\n\n```sh\nmake install_dependencies\nmake\ncp ./build/bore /usr/local/bin/bore\n```\n\nThis will compile and install `bore` client locally.\n\n## Establish tunnel on hosted bore.digital\n\nLet's say you are running HTTP server locally on port 6500, then command would be:\n\n```sh\nbore -s bore.digital -p 2200 -ls localhost -lp 6500\n```\n\n2200 is port where bore-server is running and localhost:6500 is local HTTP server.\n\nExample output:\n\n```sh\nbore -s bore.digital -p 2200 -ls localhost -lp 6500\n\nGenerated HTTP URL: http://918574de.bore.digital\nGenerated HTTPS URL: https://918574de.bore.digital\nDirect TCP: tcp://bore.digital:60637\n```\n\nThen open generated URL in the browser to check if it works, then share the URL if needed.\n\nYou can also request custom id instead of randomly generated one:\n\n```sh\nbore -lp 6500 -id myapp\n\nGenerated HTTP URL: http://myapp.bore.digital\nGenerated HTTPS URL: https://myapp.bore.digital\nDirect TCP: tcp://bore.digital:55474\n```\n\nIf custom requested ID is already taken, then random id is used.\n\nYou can also specify custom remote bind listening port, which is useful for using direct TCP connection:\n\n```sh\nbore -lp 6500 -bp 55000\n\nGenerated HTTP URL: http://fe2d57f3.bore.digital\nGenerated HTTPS URL: https://fe2d57f3.bore.digital\nDirect TCP: tcp://bore.digital:55000\n```\n\nNote that for hosted bore you need to specify port in range 55000-65000.\n\nIf port is already taken, random port is used.\n\n## Running Server\n\n### Run Compilation\n\n```sh\nmake install_dependencies\nmake\n```\n\n### Running bore-server example\n\n```sh\nBORE_DOMAIN=bore.digital BORE_HTTPADDR=0.0.0.0:80 BORE_SSHADDR=0.0.0.0:2200 ./build/bore-server\n```\n\nThis will generate initial config at `~/bore/bore-server.yaml` with values you provided over environment variables.\n\n## Running With Password Authentication\nTo enable password authentication, you can set it up with the `BORE_PASSWORD` environment variable:\n\n### Server Side \n```sh \nBORE_DOMAIN=example.com BORE_HTTPADDR=0.0.0.0:80 BORE_SSHADDR=0.0.0.0:2200 BORE_PASSWORD=mysecreetpassword ./build/bore-server\n```\n### Client Side\nUse the `-pw` flag to provide the password when connecting to the server:\n\n```sh\nbore -s example.com -p 2200 -ls localhost -lp 6500 -pw mysecreetpassword\n```\nIf the password is incorrect or not provided when required, the connection will be rejected with an authentication error.\n\n## License\n\n```license\nMIT License\n\nCopyright (c) 2020-2023 Jan Kuri \u003cjkuri88@gmail.com\u003e\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjkuri%2Fbore","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjkuri%2Fbore","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjkuri%2Fbore/lists"}