{"repo":"hintjen/selfhosted-gateway","free":true,"listed":false,"github":"https://github.com/hintjen/selfhosted-gateway","clone":"git clone https://github.com/hintjen/selfhosted-gateway.git","description":"Self-hosted Docker native tunneling to localhost. Expose local docker containers to the public Internet via a simple docker compose interface.","language":"Shell","stars":1732,"topics":["nginx","wireguard","caddy","docker","docker-compose","sni"],"license":"AGPL-3.0","category":"deployment-docker-iac","readme_excerpt":"Self-hosted Gateway Jump to Getting Started Features and Benefits - Docker native self-hosted alternative to Cloudflare Tunnels, Tailscale Funnel, ngrok and others. - Entirely self-hosted and self-managed, includes local and remote tunneling components. - No custom code, this project leverages existing battled tested FOSS components: - WireGuard - Nginx (Gateway) - Caddy (Client) - Automatic client side HTTPS cert provisioning thanks to Caddy's automatic https. - Remote client IPs passed to local container via proxy protocol - Enable basic authentication by specifying env variable containing username and password - Proxy generic TCP/UDP traffic to localhost with socat Video Overview & Setup Guide Overview This project automates the provisioning of Reverse Proxy-over-VPN (RPoVPN) WireGuard tunnels with Caddy and NGINX. It is particularly well suited for exposing docker compose services defined in a docker-compose file to the public Internet. There's no code or APIs, just an ultra generic NGINX config and some short provisioning bash script. TLS certs are provisioned automatically with Caddy's Automatic HTTPS feature via Let's Encrypt or ZeroSSL. Use cases 1. RPoVPN is a common strategy for remotely accessing applications self-hosted at home. It solves problems such as: - Self-hosting behind double-NAT or via an ISP that does CGNAT (Starlink, Mobile Internet). - Inability to portforward on your local network due to insufficient access. - Having a dynamically allocated IP that m","default_branch":null,"files":null,"tree":[],"storefront":"/r/hintjen","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/hintjen/selfhosted-gateway/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}