{"id":13578009,"url":"https://github.com/unfrl/dug","last_synced_at":"2025-04-05T15:32:07.137Z","repository":{"id":38075813,"uuid":"318566178","full_name":"unfrl/dug","owner":"unfrl","description":"A global DNS propagation checker that gives pretty output. Written in dotnet core","archived":false,"fork":false,"pushed_at":"2024-10-08T04:08:53.000Z","size":2787,"stargazers_count":331,"open_issues_count":14,"forks_count":7,"subscribers_count":5,"default_branch":"main","last_synced_at":"2024-11-05T15:48:43.424Z","etag":null,"topics":["cli","dns","dotnet","linux"],"latest_commit_sha":null,"homepage":"","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/unfrl.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}},"created_at":"2020-12-04T16:02:37.000Z","updated_at":"2024-10-23T02:09:39.000Z","dependencies_parsed_at":"2024-01-16T20:25:22.650Z","dependency_job_id":"54c95b04-ac00-448c-a61c-d077db7f11bc","html_url":"https://github.com/unfrl/dug","commit_stats":null,"previous_names":[],"tags_count":91,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unfrl%2Fdug","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unfrl%2Fdug/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unfrl%2Fdug/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unfrl%2Fdug/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/unfrl","download_url":"https://codeload.github.com/unfrl/dug/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247359159,"owners_count":20926374,"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":["cli","dns","dotnet","linux"],"created_at":"2024-08-01T15:01:26.279Z","updated_at":"2025-04-05T15:32:02.128Z","avatar_url":"https://github.com/unfrl.png","language":"C#","readme":"# dug\n\n[![Build Status](https://drone.kaijucode.com/api/badges/unfrl/dug/status.svg)](https://drone.kaijucode.com/unfrl/dug)\n[![unfrl-dug](https://snapcraft.io/unfrl-dug/badge.svg)](https://snapcraft.io/unfrl-dug)\n\nA powerful global DNS propagation checker that can output in a variety of formats.\n\nThe goal of dug is to make it easy to check the propagation of DNS records. It is also capable of providing templated output that can be used in scripts for things like monitoring.\n\nFor detailed documentation check out [dug.unfrl.com](https://dug.unfrl.com)\n\n## Usage\n\nThe easiest way to explore dug is through the help.\n\n- `dug help` -\u003e Get top level help explaining the different verbs\n- `dug help run` or `dug run --help` -\u003e Get details about a specific verb (run, which is the default)\n- `dug help update` or `dug update --help` -\u003e Get details about the update verb\n\nThe simplest way to get started is to just run a query against the domain whose DNS records you're updating.\nFor example: `dug git.kaijucode.com`:\n\n![](cli/Resources/gif1.gif)\n\nYou can also do complicated things like ask for specific record types, use the most reliable server per continent, get the output as json, and pipe it into other applications: `dug git.kaijucode.com -q A --output-format JSON --server-count 1 --output-template Ipaddress,city,value,responsetime | jq`:\n\n![](cli/Resources/gif2.gif)\n\n## Localization\n\ndug automatically uses the current system's culture for localization. (You can override LANG on linux to test it).\n\nCurrently supports the following languages:\n\n- (en) English\n- (es) Spanish\n- (de) German\n\n## Installation\n\n### Linux Deb (Debian, Ubuntu, Mint, Pop!\\_os)\n\n1. Go to the [latest release](https://github.com/unfrl/dug/releases/latest) and download the .deb package.\n   - It should look like `dug.\u003cversion\u003e.linux-x64.deb`\n2. On most distros double clicking the .deb package will allow you to install via a UI, alternatively it can be installed by running `sudo dpkg -i ./dug.\u003cversion\u003e.linux-x64.deb`\n\n### Linux RPM (RHEL, CentOS, Fedora)\n\n1. Go to the [latest release](https://github.com/unfrl/dug/releases/latest) and download the .rpm package.\n   - It should look like `dug.\u003cversion\u003e.linux-x64.rpm`\n2. On most distros double clicking the .deb package will allow you to install via a UI, alternatively it can be installed by running `rpm -i ./dug.\u003cversion\u003e.linux-x64.deb`\n\n### Arch\n\nA friend put dug in the AUR! [here](https://aur.archlinux.org/packages/dug-git/)\n\n### Snap\n\n[![Get it from the Snap Store](https://snapcraft.io/static/images/badges/en/snap-store-black.svg)](https://snapcraft.io/unfrl-dug)\n\n\u003e Install snap if you dont have it [Guide](https://snapcraft.io/docs/getting-started#heading--install)\n\n1. Run: `sudo snap install unfrl-dug`\n2. Invoke with: `unfrl-dug [OPTIONS]`\n\nNote: Annoyingly `dug` is a reserved package name and I am waiting for them to give it to me. When I get it the package will just be named `dug`\n\n### Docker\n\nNot sure if this counts as an \"Installation\" but there is a docker image available [here](https://hub.docker.com/r/unfrl/dug)\n\n### Homebrew (Mac \u0026 Linux)\n\nInstall from homebrew with `brew install dug`\n\n### OSX\n\u003e Homebrew is the easiest method for OSX but there is also a binary available\n\n1. Go to the [latest release](https://github.com/unfrl/dug/releases/latest) and download the osx binary.\n   - It should look like `dug-osx-x64`\n2. You should be able to download that, make is executable, and run it from the terminal. Then you can put it somewhere and update your path so you can execute it from anywhere.\n\n### Windows\n\n#### Chocolatey (choco cli)\n\n\u003e Chocolatey manually reviews all packages, which takes a while, so this can lag behind the latest. [status info here](https://chocolatey.org/packages/dug)\n\n1. Run: `choco install dug`\n\n#### Executable\n\n1. Go to the [latest release](https://github.com/unfrl/dug/releases/latest) and download the .exe binary.\n   - It should look like `dug.exe`\n2. You should be able to download that and run it from the terminal. Then you can put it somewhere and update your path so you can execute it from anywhere.\n\n## Development\n\nThis is a .net 6 project, so as long as you have the dotnet cli, available [here](https://dotnet.microsoft.com/download/dotnet/6.0) you should be able to do the following: `dotnet build ./cli`\n\nThe project was developed in VSCode so the debugger profiles that I have used are available if you're also using VSCode.\n\nThe commands to build an optimized executable vary depending on the platform but are all available in the [.drone.yml](.ci/.drone.yml) file. Here is the one to build the linux-x64 executable as an example:\n\n`dotnet publish -r linux-x64 -c Release -p:PublishSingleFile=true -p:PublishReadyToRun=true --self-contained true -o publish ./cli`\n\n### Testing\n\nThere is currently fairly limited testing, what does exist uses the [BATS](https://github.com/sstephenson/bats) tool.\n\nTo run the BATS tests you will need to have cloned dug recursively, like: `git clone --recursive \u003cdug_repo_url\u003e`\n\nIf you didnt do that you can run this to restore the BATS submodules into ./cli.tests/bats/libs: `git submodule update --init --recursive`\n\nOnce you have BATS you should be able to simply run the BATS tests with: `./cli.tests/bats/run.sh`\n\nMade with ❤️ by [Unfrl](https://unfrl.com)\n","funding_links":[],"categories":["C# #","linux","\u003ca name=\"networking\"\u003e\u003c/a\u003eNetworking"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funfrl%2Fdug","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funfrl%2Fdug","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funfrl%2Fdug/lists"}