{"id":15039530,"url":"https://github.com/drittich/dnstube","last_synced_at":"2025-05-16T11:03:55.390Z","repository":{"id":38134998,"uuid":"135622282","full_name":"drittich/DnsTube","owner":"drittich","description":"Access your computer from anywhere. DnsTube is a Windows .NET dynamic DNS client for Cloudflare. ","archived":false,"fork":false,"pushed_at":"2025-04-18T14:09:03.000Z","size":518,"stargazers_count":306,"open_issues_count":3,"forks_count":49,"subscribers_count":7,"default_branch":"DnsTubeService","last_synced_at":"2025-05-16T11:03:52.827Z","etag":null,"topics":["cloudflare","ddns","ddns-client","ddns-updater","dns","dns-record","dot-net","dotnet","dynamic-dns","windows"],"latest_commit_sha":null,"homepage":"https://drittich.github.io/DnsTube/","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/drittich.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":null,"patreon":"dnstube","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2018-05-31T18:40:26.000Z","updated_at":"2025-05-16T04:40:52.000Z","dependencies_parsed_at":"2023-02-12T09:30:59.007Z","dependency_job_id":"493ade0d-86df-4180-a2a9-31b8c51c2303","html_url":"https://github.com/drittich/DnsTube","commit_stats":{"total_commits":268,"total_committers":7,"mean_commits":"38.285714285714285","dds":0.06343283582089554,"last_synced_commit":"d63001af5aedf123764d1b8326dad9be7801d4fe"},"previous_names":[],"tags_count":57,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drittich%2FDnsTube","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drittich%2FDnsTube/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drittich%2FDnsTube/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drittich%2FDnsTube/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/drittich","download_url":"https://codeload.github.com/drittich/DnsTube/tar.gz/refs/heads/DnsTubeService","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254518384,"owners_count":22084374,"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":["cloudflare","ddns","ddns-client","ddns-updater","dns","dns-record","dot-net","dotnet","dynamic-dns","windows"],"created_at":"2024-09-24T20:43:11.302Z","updated_at":"2025-05-16T11:03:55.365Z","avatar_url":"https://github.com/drittich.png","language":"C#","funding_links":["https://patreon.com/dnstube"],"categories":[],"sub_categories":[],"readme":"\n\n\u003ch2 align=\"center\"\u003eDnsTube\u003c/h2\u003e\n\n\u003ch4 align=\"center\"\u003e\u003cb\u003eAccess your computer from anywhere\u003c/b\u003e\u003c/h4\u003e\n\n\u003cp align=\"center\"\u003e\n\t\u003ca href=\"https://github.com/drittich/DnsTube\"\u003e\n\t\t\u003cimg src=\"https://img.shields.io/github/downloads/drittich/DnsTube/total\" height=\"20\"/\u003e\n\t\t\u003cimg src=\"https://img.shields.io/github/downloads/drittich/dnstube/v2.8.1/total\" height=\"20\"/\u003e\n\t\t\u003cimg src=\"https://img.shields.io/github/issues-raw/drittich/dnstube\" height=\"20\"/\u003e\n\t\t\u003cimg src=\"https://img.shields.io/github/stars/drittich/dnstube?style=social\" height=\"20\"/\u003e\n\t\u003c/a\u003e\n\u003c/p\u003e\n\nA Dynamic DNS (DDNS) Windows service for Cloudflare.\n\n## What is this?\n\nDnsTube is a Windows service that helps you access your computer remotely even if its IP address changes. It does this by using Cloudflare’s free DNS hosting and API to update the DNS entries for your domain name. This way, you can always access your computer using its domain name instead of having to remember its IP address.\n\n## Features\n\n* Runs as a Windows service (no Windows login required)\n* Can update A (IPv4), AAAA (IPv6), SPF, and TXT records\n* Detects network changes and updates DNS automatically\n* Supports split VPN tunnelling and lets you choose which network adapter to use\n* Supports both Cloudflare API keys and tokens (can be scoped to specific zones)\n\n## Requirements\n\n* You must set Cloudflare as the DNS authority for your domain\n* You must have Administrator permissions for the computer you are installing DnsTube on\n* You must have .NET 8 installed\n\n## UI\n\n\u003cimg src=\"https://github.com/drittich/DnsTube/assets/1222810/751b4b21-333f-4a5a-bdba-b937474fc2ba\" width=\"800\"\u003e\n\n## Downloading \n\nHead over to the [Releases](https://github.com/drittich/DnsTube/releases/latest) page to download the latest binary.\n\n## Installing\n\nNote: This application is built using .NET 8. You may need to download and install it from here: https://dotnet.microsoft.com/en-us/download. Once you've installed .NET 8:\n\n- Extract the DnsTube package to a folder of your choice\n- Open a command prompt as Administrator and install the service using  `install-service.bat`.\n\nYou should see the following output:\n```\nPS C:\\Program Files\\DnsTubeService\u003e .\\install-service.bat\nsc create \"DnsTube Service\" binPath=\"C:\\Program Files\\DnsTubeService\\DnsTube.Service.exe\" start=auto\n[SC] CreateService SUCCESS\n[SC] ChangeServiceConfig2 SUCCESS\n\nSERVICE_NAME: DnsTube Service\n\t\tTYPE               : 10  WIN32_OWN_PROCESS\n\t\tSTATE              : 2  START_PENDING\n\t\t\t\t\t\t\t\t(NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)\n\t\tWIN32_EXIT_CODE    : 0  (0x0)\n\t\tSERVICE_EXIT_CODE  : 0  (0x0)\n\t\tCHECKPOINT         : 0x0\n\t\tWAIT_HINT          : 0x7d0\n\t\tPID                : 21408\n\t\tFLAGS              :\nPS C:\\Program Files\\DnsTubeService\u003e\n```\n\nOnce the service has started you can view the UI at the URL http://localhost:5666/index.html. See the **Configuration** section for additional config, or if you need to host the UI on a different port.\n\n## Configuration\n\n\u003eIf you haven't already done so, you will need to create an account with Cloudflare and make it the DNS authority for your domain. You then need to configure your DNS entries as appropriate. See [Managing DNS records in Cloudflare](https://support.cloudflare.com/hc/en-us/articles/360019093151-Managing-DNS-records-in-Cloudflare) for more info.\n\nBy default the service hosts the web application on your local machine at port 5666. If you wish to change this, edit `appsettings.json` accordingly. Once the service is running you can launch the interface at http://localhost:5666/ (or whatever port you have chosen).\n\nAfter that, you'll need to generate an API Token (preferred) or Key in order to access the API via DnsTube. The details for doing that can be found at [Creating API tokens](https://developers.cloudflare.com/api/tokens/create).\n\nThen, go the DsnTube settings page and enter your email address, API key/token, etc. Go back to the main tab (refresh if necessary) and you should see a table listing your Cloudflare DNS entries. Check off the ones you want to dynamically update and the service should take it from there.\n\nYou can use [nslookup](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/nslookup) to make sure DNS resolution is working correctly, e.g., \n```\nnslookup mydomain.com\n```\n\n## Updating\n\n- Download the latest release from https://github.com/drittich/DnsTube/releases/latest and uncompress\n- Open a command prompt as Administrator and stop the existing service by running `stop-service.bat`. Note, the service will stop more quickly if you close the web UI.\n- Copy the new uncompressed files over the existing ones. The configuration is stored elsewhere so will be preserved.\n- Start the service again by running `start-service.bat` \n\n## Uninstalling\nOpen a command prompt as Administrator and uninstall the service using  `uninstall-service.bat`. Note, the service will stop more quickly if you close the web UI. You should see the following output:\n\n```\nPS C:\\Program Files\\DnsTubeService\u003e .\\uninstall-service.bat\n\nSERVICE_NAME: DnsTube Service\n\t\tTYPE               : 10  WIN32_OWN_PROCESS\n\t\tSTATE              : 3  STOP_PENDING\n\t\t\t\t\t\t\t\t(STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)\n\t\tWIN32_EXIT_CODE    : 0  (0x0)\n\t\tSERVICE_EXIT_CODE  : 0  (0x0)\n\t\tCHECKPOINT         : 0x0\n\t\tWAIT_HINT          : 0x0\n[SC] DeleteService SUCCESS\nPS C:\\Program Files\\DnsTubeService\u003e\n```\n\n## Notes\n\n1. DnsTube only updates existing Cloudflare records. It will not create or remove records.\n2. Configuration is stored in a separate folder than the application, so when you updated, your configuration is preserved. (An exception to this is if you have changed the port the application is host with in `appsettings.json`.)\n3. The location of your configuration file is shown in UI on the Settings page.\n\n## Development\n\nThe front-end application must be built before starting the .NET application. To do this, open a command prompt and go to `[YOUR_INSTALL_FOLDER]\\DnsTube.Service\\ClientApp`. Then run\n```\nnpm install\nnpm run build\n```\n\nThis will build your files and copy them to the `[YOUR_INSTALL_FOLDER]\\DnsTube.Service\\wwwroot` folder.\n\nAt this point you can load the solution in Visual Studio 2022 and run the application with `Ctrl - F5`. You should then be able to load the application UI at the URL http://localhost:5666.\n\n\n## The Name\n\nWe all know the internet is a [series of tubes](https://en.wikipedia.org/wiki/Series_of_tubes). This application uses those very same tubes to update your DNS.\n\n## Contributing\n\nContributions are welcome!\n\n## Authors\n\n* **D'Arcy Rittich**\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](/LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrittich%2Fdnstube","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdrittich%2Fdnstube","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrittich%2Fdnstube/lists"}