{"id":26714849,"url":"https://github.com/timothydodd/ntunl","last_synced_at":"2025-04-13T23:47:11.002Z","repository":{"id":254035467,"uuid":"845291869","full_name":"timothydodd/Ntunl","owner":"timothydodd","description":"NTunl is a lightweight and flexible tunneling solution, designed to expose your local services to the internet securely. Similar to tools like ngrok, NTunl allows you to securely tunnel your localhost or any other private services to a public domain.","archived":false,"fork":false,"pushed_at":"2025-03-13T15:57:29.000Z","size":93,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-27T13:51:24.036Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","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/timothydodd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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-21T00:59:09.000Z","updated_at":"2025-03-13T15:52:13.000Z","dependencies_parsed_at":"2024-08-21T02:24:51.120Z","dependency_job_id":"895f48c9-7269-4c8f-b4d0-28906259e4e6","html_url":"https://github.com/timothydodd/Ntunl","commit_stats":null,"previous_names":["timothydodd/ntunl"],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timothydodd%2FNtunl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timothydodd%2FNtunl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timothydodd%2FNtunl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/timothydodd%2FNtunl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/timothydodd","download_url":"https://codeload.github.com/timothydodd/Ntunl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248799699,"owners_count":21163398,"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":[],"created_at":"2025-03-27T13:51:14.950Z","updated_at":"2025-04-13T23:47:10.958Z","avatar_url":"https://github.com/timothydodd.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# NTunl\nNTunl is a lightweight and flexible tunneling solution, designed to expose your local services to the internet securely. Similar to tools like ngrok, NTunl allows you to securely tunnel your localhost or any other private services to a public domain.\n\n## Features\n- Secure Tunneling: Create secure tunnels to expose your services.\n- Flexible Configuration: Both server and client components are highly configurable.\n- SSL Support: Secure your tunnels with SSL, including options for invalid certificates.\n- Domain and Subdomain Management: Easily manage custom domains and subdomains.\n- Request Inspection: Enable the Inspector to view and monitor HTTP requests through a web interface.\n\nYou can Find the docker image for this at\nhttps://hub.docker.com/repository/docker/timdoddcool/ntunl-host/general\n\n## Architecture\nNTunl consists of two main components:\n\n- NTunl Server: Manages and exposes the tunnels, allowing clients to connect to the public interface.\n- NTunl Client: Connects to the NTunl Server to expose local or private services to the public internet.\n\n## Getting Started\nPrerequisites\n- .net 9 SDK installed on your machine.\n\n1. Installation\nClone the repository:\n``` bash\ngit clone https://github.com/timothydodd/ntunl.git\ncd ntunl\n\n```\n2. Build the solution:\n``` bash\ndotnet build\n```\n\n3. Run the server\n\n``` bash\ncd src/NTunlServer\ndotnet run\n```\n\n4. Run the client:\n\n``` bash\n\ncd src/NTunlClient\ndotnet run\n\n```\n\n\n## Configuration\nNTunl Server\nThe server exposes your tunnels to a public interface. Below is the configuration structure:\n``` json\n{\n    \"Logging\": {\n        \"LogLevel\": {\n            \"Default\": \"Information\"\n        }\n    },\n    \"AllowedHosts\": \"*\",\n    \"TunnelHost\": {\n        \"HostName\": \"*\",\n        \"Port\": 8001,\n        \"ClientDomain\": {\n            \"Domain\": \"mysite.com\",\n            \"SubDomains\": [ \"apple\", \"banana\", \"cherry\", \"elderberry\" ]\n        },\n        \"Ssl\": {\n            \"Enabled\": false,\n            \"AcceptInvalidCertificates\": true\n        }\n    },\n    \"HttpHost\": {\n        \"HostName\": \"*\",\n        \"Port\": 9200,\n        \"Headers\": {\n            \"BlackList\": [ \"cf-*\" ],\n            \"IpHeaderName\": \"X-Forwarded-For\"\n        }\n    }\n}\n```\n- TunnelHost: Configuration for the tunnel server, including hostnames, ports, and SSL settings.\n- HttpHost: Manages HTTP connections, including header management.\n\n\n## NTunl Client\nThe client connects to the NTunl server to expose your local service. Below is the configuration structure:\n\n``` json\n{\n    \"Logging\": {\n        \"LogLevel\": {\n            \"Default\": \"Debug\",\n            \"Microsoft\": \"Warning\",\n            \"Microsoft.Hosting.Lifetime\": \"Information\",\n            \"System.Net.Http.HttpClient\": \"Warning\"\n        }\n    },\n    \"Tunnels\": [\n        {\n            \"SslEnabled\": true,\n            \"AllowInvalidCertificates\": false,\n            \"NtunlAddress\": \"tunnel.mysite.com:443\",\n            \"Address\": \"https://robododd.com\",\n            \"HostHeader\": \"robododd.com\",\n            \"CustomHeader\": {},\n            \"RewriteUrlEnabled\": false,\n            \"RewriteUrlPattern\": \"https://(mysite|www.mysite2)\\\\.com\"\n        }\n    ],\n    \"Inspector\": {\n        \"Enabled\": true,\n        \"Port\": 6900\n    }\n}\n```\n- Tunnels: Configure each tunnel with SSL settings, target addresses, and custom headers.\n- Inspector: Enable to view HTTP requests through a web interface on the specified port.\n\n\n\n# Inspecting Requests\nIf the Inspector is enabled in the client configuration, you can access the web interface to view HTTP requests:\n\nOpen your browser and navigate to http://localhost:6900.\n# License\nThis project is licensed under the MIT License. See the LICENSE file for details.\n\n# Contributing\nContributions are welcome! Please feel free to submit a Pull Request.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimothydodd%2Fntunl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftimothydodd%2Fntunl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftimothydodd%2Fntunl/lists"}