{"id":23107403,"url":"https://github.com/sineware/sslvpn","last_synced_at":"2026-02-13T00:37:14.724Z","repository":{"id":252738178,"uuid":"841278138","full_name":"Sineware/sslvpn","owner":"Sineware","description":" Create your own secure \"vpn\" with sshuttle using SSH over TLS, containerized with docker-compose!","archived":false,"fork":false,"pushed_at":"2024-08-19T04:23:38.000Z","size":22,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-10T17:02:22.725Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Sineware.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":"2024-08-12T04:52:19.000Z","updated_at":"2024-08-19T04:23:41.000Z","dependencies_parsed_at":"2024-08-12T07:33:19.130Z","dependency_job_id":"32771d71-d244-439f-9321-9db3bca07842","html_url":"https://github.com/Sineware/sslvpn","commit_stats":null,"previous_names":["sineware/sslvpn"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Sineware/sslvpn","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sineware%2Fsslvpn","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sineware%2Fsslvpn/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sineware%2Fsslvpn/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sineware%2Fsslvpn/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Sineware","download_url":"https://codeload.github.com/Sineware/sslvpn/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Sineware%2Fsslvpn/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29389233,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-13T00:02:39.825Z","status":"ssl_error","status_checked_at":"2026-02-13T00:00:20.807Z","response_time":55,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2024-12-17T01:13:56.255Z","updated_at":"2026-02-13T00:37:14.664Z","avatar_url":"https://github.com/Sineware.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sineware SSLVPN\n\nThis is a docker compose setup that creates up a \"VPN\" that runs over SSL/TLS.\n\nWhat this really means is that and SSH server is exposed through port 443, and encapsulated in TLS using STunnel.\nThis is great because when combined with **sshuttle**, you can get a VPN-like service that will go through pretty much \nany firewall, including ones that use Deep Packet Inspection (since the connection looks like a normal HTTPS connection).\n\n\u003e Note that SSLVPN is not very performant. You should expect to see speeds around 1Mbps. Therefore, SSLVPN should only be used if other VPN technologies are unusable for your particular network situation.\n\nThe VPN is built with the following services:\n* [stunnel4](https://www.stunnel.org/)\n* [sslh](https://github.com/yrutschle/sslh)\n* [Apache](https://httpd.apache.org/)\n* [OpenSSH](https://www.openssh.com/)\n\nStunnel is responsible for being the TLS endpoint, and all connections to 443 in the container terminate at it. It then \npasses the decrypted connection to sslh, which forwards the connection to OpenSSH if it is an SSH connection, or to Apache if \nit's an http connection. This way, if someone were to access the container through a browser, they would be greeted with a \nnormal webpage.\n\n## Server Setup\nThis container uses port 80 and 443 by default. A cheap cloud provider works well to to run SSLVPN.\n\n* Clone this repository.\n\n```shell script\ngit clone https://github.com/sineware/sslvpn.git \u0026\u0026 cd sslvpn\n```\n\n* Modify `server/docker-compose.yml` to add your SSH public key to the `SSLVPN_AUTHORIZED_KEYS` environment variable.\n\n* Start the server!\n```bash\ncd server\ndocker-compose up -d\n```\n\nNow clients with their keys added can connect using the client script, shown below.\n\n## Client Setup (w/ sshuttle) for Linux and macOS\nYou'll need to install [sshuttle](https://sshuttle.readthedocs.io/en/stable/) first and openssl on your clients first.\n\n* Edit the `client/vpn-connect.sh` script to set your server's IP and port. Then, connect to your VPN!\n```bash\n./client/vpn-connect.sh\n```\n\nAdditionally, the routed CIDR is set to `0.0.0.0/0` by default, which forwards all traffic through the VPN. You can change this to only route specific \nprefixes if you want a split VPN use case (ex. 192.168.1.0/24 to access local machines on the remote network).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsineware%2Fsslvpn","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsineware%2Fsslvpn","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsineware%2Fsslvpn/lists"}