[HN Gopher] Show HN: Doggo - A powerful, human-friendly DNS clie...
___________________________________________________________________
Show HN: Doggo - A powerful, human-friendly DNS client for the
command line
Author : mr-karan
Score : 377 points
Date : 2024-07-01 16:56 UTC (1 days ago)
(HTM) web link (doggo.mrkaran.dev)
(TXT) w3m dump (doggo.mrkaran.dev)
| toomuchtodo wrote:
| Looks super cool! Can you share more about why you built this,
| design decisions, and other behind the scenes context?
| mr-karan wrote:
| Thanks! I pretty much did this as a learning/hobby side
| project. Back in 2021, I was dealing with a lot of K8s clusters
| and had recently learnt what about ndots[1]. That prompted me
| to build an easy to use DNS client which can avoid surprises
| about the host environment.
|
| I've built this using Go, my daily driver. It doesn't use any
| CLI frameworks, that was mostly out of choice as I didn't want
| to add external deps unless really required. My favourite part
| was to build this small help.go[3] utility which renders
| colored/formatted help text.
|
| Over the time I got some good quality external contributions,
| especially the one from @jedisct1 for adding DNSCrypt[2]
| support to it.
|
| Releasing a v1.0 has been on the back burner forever (like, a
| whole year+ :'). Life, other projects, and probably a bit of
| procrastination got in the way. Finally sat down last week and
| forced myself to come up with a deadline to push this out.
|
| [1]: https://mrkaran.dev/posts/ndots-kubernetes/
|
| [2]: https://github.com/mr-karan/doggo/pull/17
|
| [3]: https://github.com/mr-karan/doggo/blob/main/cmd/help.go
| valtlfelipe wrote:
| very nice! looks clean and simple.
| madars wrote:
| Amazing naming choice - doggos like to dig!
| ck45 wrote:
| TIL there's also dog[1] Which is probably also common typo for
| "dig"
|
| [1] https://github.com/ogham/dog
| hk__2 wrote:
| doggo is actually dog written in Go.
| linsomniac wrote:
| I went to switch over to "dog" last week but it looks
| abandoned. I couldn't get a download to work because of
| outdated dependencies, and IIRC I couldn't get it to build,
| so I just gave up on it after seeing the latest release is 4
| years old.
| renewiltord wrote:
| Upgrade the openssl dependencies if you are on new Ubuntu:
| ubuntu $ (new) target/release/dog google.com A
| google.com. 2m13s 142.250.189.206
| NS 15h15m07s A "i.root-servers.net."
| NS 15h15m07s A "d.root-servers.net."
| NS 15h15m07s A "a.root-servers.net."
| NS 15h15m07s A "b.root-servers.net."
| NS 15h15m07s A "c.root-servers.net."
| NS 15h15m07s A "f.root-servers.net."
| NS 15h15m07s A "e.root-servers.net."
| NS 15h15m07s A "h.root-servers.net."
| NS 15h15m07s A "m.root-servers.net."
| NS 15h15m07s A "j.root-servers.net."
| NS 15h15m07s A "k.root-servers.net."
| NS 15h15m07s A "g.root-servers.net."
| NS 15h15m07s A "l.root-servers.net."
| A a.root-servers.net. 2d10h37m14s + 198.41.0.4
| ubuntu $ (new) git status On branch master
| Changes not staged for commit: (use "git add
| <file>..." to update what will be committed) (use
| "git restore <file>..." to discard changes in working
| directory) modified: Cargo.lock
| modified: dns-transport/Cargo.toml no
| changes added to commit (use "git add" and/or "git commit
| -a") ubuntu $ (new) git diff dns-
| transport/Cargo.toml diff --git a/dns-
| transport/Cargo.toml b/dns-transport/Cargo.toml
| index 67552c3..d68d542 100644 --- a/dns-
| transport/Cargo.toml +++ b/dns-transport/Cargo.toml
| @@ -19,6 +19,8 @@ log = "0.4" # tls
| networking native-tls = { version = "0.2",
| optional = true } +openssl-sys = ">=0.9.102"
| +openssl = ">=0.10.64" # http response
| parsing httparse = { version = "1.3", optional =
| true }
| Zambyte wrote:
| That seems crazy to me that a DNS client is broken after
| only 4 years due to incompatibility dependencies! I was
| going to suggest that maybe it's just completed software,
| but wow, this makes me _really_ want to stay away from the
| Rust ecosystem.
| gunapologist99 wrote:
| Not sure why you're being downvoted, because this is how
| the JS and Python ecosystems are becoming as well.
| Obviously, there's a lot of innovation that's happening
| (or at least the authors think so), but it's still
| possible to move a package forward without breakage.
|
| It'd be great if communities could adopt the Go backwards
| compatibility promise[0] (it's best-effort, after all) so
| that packages continue to compile for a decade into the
| future and only introduce breaking changes for security
| reasons.
|
| It's actually not that difficult to do -- just needs to
| be made an important goal of any project, and it makes it
| much easier to trust the stability of the dependency.
|
| 0. https://go.dev/blog/compat
| ThinkBeat wrote:
| Is this a client to query DNS servers, like digg or dogg?
|
| Or is it a client to control and configure the DNS servers a
| computer is using?
|
| or both?
| mr-karan wrote:
| It's a DNS client for querying DNS servers.
| mrbluecoat wrote:
| Reminds me of https://github.com/ogham/dog
| generalizations wrote:
| From the doggo github readme:
|
| > It's totally inspired from dog which is written in Rust. I
| wanted to add some features to it but since I don't know Rust,
| I found it as a nice opportunity to experiment with writing a
| DNS Client from scratch in Go myself. Hence the name dog +go =>
| doggo.
| Zambyte wrote:
| I do always find it interesting when people just want to add
| some features, and the language stops them from doing it. I'm
| so used to bouncing back and forth between code and docs (api
| docs and language syntax docs depending on my familiarity)
| that the language itself is basically an implementation
| detail that I don't really care about. There are very few
| languages that would even give me pause, let alone avoid
| modifying the project entirely.
| jiehong wrote:
| And dog seems unmaintained, sadly
| 0xCMP wrote:
| Yea a lot of lingering PRs to fix building with OpenSSL or
| update packages in some way. Last change was ~3 years ago.
| bluejekyll wrote:
| We have similar utilities in the Hickory DNS project,
| https://github.com/hickory-dns/hickory-dns/tree/main/util
|
| There's are a bunch of cli tools: dig like tool called 'dns',
| a stub resolver called 'resolve', a recursive resolver called
| 'recurse', and some other random maintenance tools. These are
| all to make it easier to test certain details outside other
| people's dependency trees.
|
| The documentation is a little sparse...
| obviyus wrote:
| Pretty! Time to alias dig to doggo for a few days ;)
|
| BTW I really enjoyed reading your blog on Nomad while setting up
| our own clusters, kudos!
| fs111 wrote:
| Happy user for years here. Keep up the good work!
| pixelready wrote:
| Ok, now hear me out. You bundle this with Bruno and some other
| networking tools as... The Woof Pack
| mholt wrote:
| Love this, thank you!
|
| Is there a way to query all DNS records? (I was surprised to
| learn that isn't the default.) This would be really helpful for
| troubleshooting people's Caddy questions (which are actually DNS
| problems).
| andrewmcwatters wrote:
| You can't really query all DNS records these days anymore by
| using the ANY query type. The closest alternative is to run dig
| across all record types.
|
| At Andrew McWatters & Co., we use a small internal utility
| called digany(1)[1][2] that does this for you.
|
| [1]: https://github.com/andrewmcwattersandco/digany
|
| [2]:
| https://github.com/andrewmcwattersandco/digany/blob/main/dig...
| andrewmcwatters@Andrews-MacBook-Pro digany % ./digany
| andrewmcwatters.com andrewmcwatters.com. 1799 IN A
| 107.172.29.10 andrewmcwatters.com. 1800 IN NS
| dns1.registrar-servers.com. andrewmcwatters.com. 1800
| IN NS dns2.registrar-servers.com. andrewmcwatters.com.
| 3601 IN SOA dns1.registrar-servers.com. hostmaster.registrar-
| servers.com. 1719805485 43200 3600 604800 3601
| andrewmcwatters.com. 1800 IN MX 20 eforward5.registrar-
| servers.com. andrewmcwatters.com. 1800 IN MX 15
| eforward4.registrar-servers.com. andrewmcwatters.com.
| 1800 IN MX 10 eforward1.registrar-servers.com.
| andrewmcwatters.com. 1800 IN MX 10 eforward2.registrar-
| servers.com. andrewmcwatters.com. 1800 IN MX 10
| eforward3.registrar-servers.com. andrewmcwatters.com.
| 1799 IN TXT "google-site-
| verification=39W1-Db36mrNNekPXww8TUdo7LcrmEUfv-gBmVTT1Dk"
| andrewmcwatters.com. 1799 IN TXT "v=spf1
| include:spf.efwd.registrar-servers.com
| a:andrewmcwatters-17ce78.andrewmcwatters.com ~all" ...
| bandie91 wrote:
| or AXFR... but it is allowed on even less places than ANY.
| mr-karan wrote:
| Would this be something close to what you're looking for?
| alias doggo-all='doggo $1 A AAAA AFSDB APL CAA CDNSKEY CDS CERT
| CNAME CSYNC DHCID DLV DNAME DNSKEY DS EUI48 EUI64 HINFO HIP
| HTTPS IPSECKEY KEY KX LOC MX NAPTR NS NSEC NSEC3 NSEC3PARAM
| OPENPGPKEY RRSIG RP SIG SMIMEA SOA SRV SSHFP SVCB TLSA TSIG TXT
| URI ZONEMD ${2:+@$2}' doggo-all example.com @1.1.1.1
| varenc wrote:
| When I run that: $ doggo google.com A AAAA
| AFSDB APL CAA CDNSKEY CDS CERT CNAME CSYNC DHCID DLV DNAME
| DNSKEY DS EUI48 EUI64 HINFO HIP HTTPS IPSECKEY KEY KX LOC MX
| NAPTR NS NSEC NSEC3 NSEC3PARAM OPENPGPKEY RRSIG RP SIG SMIMEA
| SOA SRV SSHFP SVCB TLSA TSIG TXT URI ZONEMD
|
| It takes 5+ seconds to get a response.
|
| Classic `dig` though takes 50ms.
| mr-karan wrote:
| Hm it took around 2.9s on my system. Let me see if I can
| concurrently lookup records for different records and
| optimise this. Thanks for sharing. time
| doggo google.com A AAAA AFSDB APL CAA CDNSKEY CDS CERT
| CNAME CSYNC DHCID DLV 0.02s user 0.02s system 1% cpu
| 2.981 total
| mr-karan wrote:
| I just pushed the concurrent version of lookups in each
| resolver. Speed up is quite good around 70-80% on most
| domains. Will test this more before releasing to main!
|
| https://github.com/mr-
| karan/doggo/pull/128#issuecomment-2202...
| mr-karan wrote:
| I've just created a PR for supporting common record types:
| https://github.com/mr-karan/doggo/pull/128
|
| However, each lookup happens serially right now, I'll take a
| look at making it concurrent per resolver atleast.
|
| Edit: I just pushed the concurrent version of lookups in each
| resolver. Speed up is quite good around 70-80% on most domains.
| Will test this more before releasing to main!
|
| https://github.com/mr-karan/doggo/pull/128#issuecomment-2202...
| KingOfCoders wrote:
| go: downloading github.com/mr-karan/doggo v0.5.7 go:
| github.com/mr-karan/doggo/cmd@latest: module
| github.com/mr-karan/doggo@latest found (v0.5.7), but
| does not contain package github.com/mr-karan/doggo/cmd
| skibbityboop wrote:
| Hit the same issue, but it goes fine if you just clone the
| repo, cd down into the cmd directory and 'go build -o doggo'.
| KingOfCoders wrote:
| Does this install in a way I can upgrade it with topgrade?
| arccy wrote:
| I guess not using one of the proxies? for some reason their
| v1.0.0 commit isn't attached to anything...
| https://github.com/mr-karan/doggo/commit/fe3958594df46c000ef...
| mr-karan wrote:
| Just pushed a minor patch release. Tagged on main:
| https://github.com/mr-
| karan/doggo/commit/8f60428f6ae154918d9...
| KingOfCoders wrote:
| Installs now but installs as `cmd` not `doggo`
| mr-karan wrote:
| Sorry about that, it was a silly typo on my end. I've
| just pushed a fix: go install
| github.com/mr-karan/doggo/cmd/doggo@v1.0.2
| KingOfCoders wrote:
| Thanks + love your work.
| TZubiri wrote:
| So like dig but I have to compile build, configure, audit and
| trust instead of just having it packaged in my OS, nice.
| throwaway894345 wrote:
| 1. You have to audit/trust any software whether or not it's
| distributed as part of your OS
|
| 2. What is there to configure?
|
| 3. It's a Go program, so compilation happens transparently on
| installation provided the developers don't release broken
| code. This isn't the C/C++ world where you have complex
| bespoke build systems that only seem to work on the
| developers' machines.
| TZubiri wrote:
| 1- If you are claiming you are auditing all your OS parts,
| not even your own mother believes you, are you delving into
| tcp.c and ps2.c? delusional
|
| 2- I meant run the configure file. Typically configures in
| what folder you install the program, under what user, that
| kind of stuff. I'm just alluding to the whole open source
| installation process, which is more complex than installing
| an .msi on Windows, or installing an apt distributed .deb
| package on debian.
|
| 3- oh, ok sure. Btw, now I have to install a go compiler.
| In order to install a program that's been done 100 times by
| first year Comp Sci students. I'd rather kill myself.
| arp242 wrote:
| Then don't use it. No is forcing you. No need for all the
| whining here.
| sadops wrote:
| Except package repositories have maintainers, who tend to
| be trustworthy parties. Compare the number of supply chain
| attacks Debian's apt repos have compared to, say, npm.
| mr-karan wrote:
| Does this command not work? go install
| github.com/mr-karan/doggo/cmd@latest go: downloading
| github.com/mr-karan/doggo v1.0.0
| jmduke wrote:
| Shameless plug for folks looking for something similar, but on
| the web: I was fed up with Google's slow/janky dig webface, so
| built my own. (Still very WIP, but already works better as a
| daily driver than Google's!)
|
| https://www.shovel.report/ycombinator.com
| willhackett wrote:
| Did you use DNS over HTTPS (DoH)? I love how easy it is to
| perform DNS lookups in web apps too through this.
| curl -H "accept: application/dns-json" "https://cloudflare-
| dns.com/dns-query?name=ycombinator.com&type=A"
| hackmiester wrote:
| This is pretty cool! But what does it mean when something is
| listed under "Services"? For example, one of my "services" is
| "52.45.50.190/32", an AWS IP. What does that actually mean? How
| did that IP get there?
| wiseowise wrote:
| Is there any reason why so many of those tools are written in Go?
| Is it because of a stdlib or just accidental?
| keyle wrote:
| Go gets it done and for years to come.
| aeadio wrote:
| Could be cultural. Go has a lot of exposure in the DevOps /
| cloud infrastructure space. Lots of stuff like k8s and
| Terraform (and its providers) are written in Go, and it
| competes with Python in popularity for internal tooling.
| bloopernova wrote:
| Yeah exactly. I wrote one orchestration tool in Python,
| another department used Go. Right now I'm using nodejs simply
| because that's the main project language and all the
| developers can help out :)
| SushiHippie wrote:
| In this case it seems like the creator of this tool already
| knew golang so he used it.
|
| From the readme:
|
| > It's totally inspired from dog [0] which is written in Rust.
| I wanted to add some features to it but since I don't know
| Rust, I found it as a nice opportunity to experiment with
| writing a DNS Client from scratch in Go myself. Hence the name
| dog +go => doggo.
|
| [0] https://github.com/ogham/dog
| moffkalast wrote:
| So the name can be a pun, of course.
| lynndotpy wrote:
| Go is produces (mostly) statically compiled binaries by
| default. No runtime, no interpreter, no dependencies.
|
| Python, Java, JavaScript, C#, etc. can't say the same.
| audiodude wrote:
| In my experience, I've always had to install Go and it's
| ecosystem to `go install foo` for Go programs to work. Is
| anyone distributing binaries?
| arccy wrote:
| you'll usually find binaries in github releases (see the
| assets section: https://github.com/mr-karan/doggo/releases
| )
| audiodude wrote:
| Oh duh, thanks!
| cromka wrote:
| Correct me if I am wrong. but this is the feature of C#/.Net
| as well as of recent versions.
| neonsunset wrote:
| dotnet publish -o . -p:PublishAot=true :)
|
| To be fair, I do not think the author understands what
| static binaries are and why they may or may not want them,
| and how what Go does differs to what C/C++ toolchain does.
| I'd be very surprised if they do, being a Go developer.
| Next time they will learn another excuse to promote their
| language.
| Zambyte wrote:
| Also to be fair, they did say "by default", and those
| options you provided must be set because they are not
| default.
| jedisct1 wrote:
| Congrats for the 1.0 release!
|
| doggo has been my main DNS tool for a while, now. Love it!
| mr-karan wrote:
| Very kind of you, thanks!
|
| Was just mentioning on my other comment[1] about your
| contributions to the tool.
|
| [1]: https://news.ycombinator.com/item?id=40848420
| XiS wrote:
| Would be amazing is this tool would add support for the
| equivalent of query type ANY
| mr-karan wrote:
| Just did: https://github.com/mr-karan/doggo/pull/128
|
| Will release soon
| XiS wrote:
| Wow, that's really amazing. Will definitely try soon!
| achillean wrote:
| We developed "geodns" for situations where you want to do DNS
| lookups from different regions around the world. For example,
| ycombinator.com returns different IPs depending on your location:
| $ geodns ycombinator.com 108.156.133.117
| Singapore 108.156.133.21 Singapore
| 108.156.133.25 Singapore 108.156.133.59
| Singapore 108.156.39.26 London
| 108.156.39.61 London 108.156.39.62
| London 108.156.39.64 London
| 13.32.27.123 Frankfurt am Main
| 13.32.27.47 Frankfurt am Main
| 13.32.27.51 Frankfurt am Main
| 13.32.27.80 Frankfurt am Main
| 13.35.93.12 Clifton 13.35.93.14
| Clifton 13.35.93.46 Clifton
| 13.35.93.47 Clifton 18.239.94.100
| Amsterdam 18.239.94.114 Amsterdam
| 18.239.94.33 Amsterdam 18.239.94.79
| Amsterdam 99.86.20.42 Doddaballapura
| 99.86.20.54 Doddaballapura 99.86.20.64
| Doddaballapura 99.86.20.96
| Doddaballapura
|
| https://gitlab.com/shodan-public/geonet-rs
| metadat wrote:
| Is that because it's behind cloudflare? I'm pretty sure it
| still runs primarily on a single server in a Colo (i.e. except
| in times of hardware failure or other physical realities).
| kevin_nisbet wrote:
| whois is returning AWS and I don't see any of the normal
| cloudfront headers, but I do see a server header of nginx. So
| it doesn't look like cloudflare to me, I'd guess they're just
| running some ec2 instances with nginx configured to give the
| exact behaviour they need (as I recall they return cached
| pages to non logged in users, which is why you can sometimes
| log out and get the page to load when they're having issues).
| I also see awsdns in their ns records, so it looks to be like
| they're just doing Geo-dns in route53 to route to the closest
| instance they're running.
| oefrha wrote:
| You're thinking about news.ycombinator.com, run on a single
| server from M5, which is not the same as ycombinator.com.
| > dig +short news.ycombinator.com 209.216.230.207
| > ipinfo 209.216.230.207 { "ip":
| "209.216.230.207", "hostname":
| "news.ycombinator.com", "city": "San Diego",
| "region": "California", "country": "US",
| "loc": "32.7157,-117.1647", "org": "AS21581 M5
| Computer Security", "postal": "92101",
| "timezone": "America/Los_Angeles", "readme":
| "https://ipinfo.io/missingauth" }
|
| It was moved to AWS temporarily the last time the servers
| failed: https://news.ycombinator.com/item?id=32031136
| 1vuio0pswjnm7 wrote:
| It's also possible to get a copy of HN from Cloudflare in
| addition to M5. I keep historical DNS data and can confirm
| there are Cloudlfare IPs that continue to work.
| 1vuio0pswjnm7 wrote:
| https://geonet.shodan.io/api/geodns/ycombinator.com?rtype=A
| robomc wrote:
| I have a silly question I guess... why does it print everything
| out twice?
|
| ~ doggo google.com
|
| NAME TYPE CLASS TTL ADDRESS NAMESERVER
|
| google.com. A IN 296s 142.250.67.14 127.0.2.2:53
|
| google.com. A IN 296s 142.250.67.14 127.0.2.3:53
|
| ~ doggo news.ycombinator.com
|
| NAME TYPE CLASS TTL ADDRESS NAMESERVER
|
| news.ycombinator.com. A IN 1s 209.216.230.207 127.0.2.2:53
|
| news.ycombinator.com. A IN 1s 209.216.230.207 127.0.2.3:53
| kadoban wrote:
| Looks like once per nameserver that you're configured to use. I
| guess just in case they give different answers, which is
| uncommon in practice.
| ksynwa wrote:
| Would be useful in my unfortunate case where the ISP's DNS is
| broken for a bunch of domains. Most notably
| githubusercontent.com. Also a bunch of CDN domains.
| vladvasiliu wrote:
| Oh man, if I had a penny for every time this issue came up,
| my grandchildren wouldn't have to work a day in their lives.
| mrngm wrote:
| Try a few queries to an anycasted resolver for the same
| record. It's rather common that, for example, TTL values
| differ per response. (the magic trick here is that it's not
| guaranteed that your requests end up on the same resolver).
|
| You could have a look at https://dnsdiag.org/ that provides a
| few tools for further introspection in the many (different)
| answers resolvers can give.
| mr-karan wrote:
| Just tried on my Adguard DNS server, I am only getting one
| entry. I think it's related to your nameserver configuration.
| Could you try reproducing with specifying a custom one, with
| @1.1.1.1 or something? doggo google.com --short
| 142.250.185.238
| lemcoe9 wrote:
| Another shameless plug for my website, you can use ipkitten.com
| to get your public IP address from your terminal:
| $ curl ipkitten.com 27.44.144.144
|
| And if you visit it in a browser, you get your IP address _and_ a
| kitten GIF!:
|
| https://ipkitten.com
| nullindividual wrote:
| icanhazip.com is another service which does this.
| jachee wrote:
| And the easy-to-remember-for-Unix-nerds:
| ifconfig.me/ip
| LargoLasskhyfv wrote:
| v6! Yay!
| jachee wrote:
| One of the reasons I dig it.
| fragmede wrote:
| if you use curl it'll do user agent detection and just give
| you your ip curl ifconfig.me
| peddling-brink wrote:
| Or ifconfig.co
| emmelaich wrote:
| or google search, which you tell you (might be fourth or
| more result)
|
| https://www.google.com/search?q=what%27s+my+ip
| fragmede wrote:
| Just don't let grow up and eat http://ipchicken.com.
| varenc wrote:
| I love using ipinfo.com for the extra details it provides like
| hostname, ISP, ASN, etc. $ curl ipinfo.io/json
|
| or you can look up these details for any other IP:
| $ curl ipinfo.io/18.18.18.18
| reincoder wrote:
| We have a CLI as well: https://github.com/ipinfo/cli
|
| It has a ton of bells and whistles, including summarize IPs,
| bulk enrichment, grepip, and a ton of network-related tools.
| I was writing a series of blog posts on the CLI, but I think
| the series got too long and left users to discover the
| features of the CLI on their own.
| xinayder wrote:
| there's https://myip.wtf or wtfismyip.com which provides a
| strongly worded interface. You can also check which headers
| your browser is sending to the website.
| emmanueloga_ wrote:
| Is this related to Dog [1]? They look almost identical in
| functionality.
|
| Both ask for the specific query to run (A, AAAA, etc.). Why not
| default to query all records? (at least when querying a single
| domain).
|
| --
|
| 1: https://github.com/mr-karan/doggo
| mr-karan wrote:
| What does "all records" mean though? `dig` defaults to just
| show A records and I've kept the behaviour same. Do you mean
| all possible record types under the sun, or just a bunch of
| common ones? `MX, AAAA, A, CNAME, TXT` etc ?
| emmanueloga_ wrote:
| I did not realize the list of record types was so long! [1]
| But I was thinking the common ones, yes.
|
| ---
|
| 1: https://en.wikipedia.org/wiki/List_of_DNS_record_types#/me
| di...
| mr-karan wrote:
| This is now live:
| https://doggo.mrkaran.dev/docs/features/any/
| teddyh wrote:
| Actually authoritative list:
| <https://www.iana.org/assignments/dns-parameters/dns-
| paramete...>
| 8mobile wrote:
| 404 page not found, have you received many requests? The project
| is very interesting, I like the interface. Congratulations
| mr-karan wrote:
| Ah yes, but it's a static site, shouldn't be 404ing. Most
| probably you're hitting `/docs`. I've not setup the redirect of
| trailing slash. Will do that.
|
| Meanwhile, the docs link is https://doggo.mrkaran.dev/docs/
| vladvasiliu wrote:
| Is there a way to run the web interface locally?
|
| BTW, the "visit demo" link in the docs returns 404.
| mr-karan wrote:
| Sorry the demo link is fixed now: https://doggo.mrkaran.dev/
|
| Yes, you can run the web server locally: https://github.com/mr-
| karan/doggo/tree/main/web cd web go run .
| jdoe247dog wrote:
| The q client has a feature comparison:
| https://github.com/natesales/q?tab=readme-ov-file#feature-co...
| moderation wrote:
| After having issues with QUIC timeouts with Doggo, I switched
| to q and it has been great.
| steph-123 wrote:
| An awesome project, I learned about it last year through
| developing the x-cmd pkg, at that time the latest version was
| 0.5.7, now it's 1.0.2, it seems necessary to upgrade the version.
|
| Here is a demo video, you can take a look:
| https://x-cmd.com/pkg/doggo
| nedt wrote:
| Very nice to also have it dockerized. You might just want to add
| in the documentation the `--rm` parameter for cleanup after
| running and `-t` for the colors. So it will be
| docker run --rm -it ghcr.io/mr-karan/doggo:latest mrkaran.dev MX
| mr-karan wrote:
| Yep, that makes sense. Thanks, just updated docs.
| Bluecobra wrote:
| Just curious, but why go through all the trouble to create a
| docker container for a DNS cli utility with no dependencies?
| mr-karan wrote:
| Long answer: Not OP, but sometimes you're in a throwaway env
| and want to quickly do a DNS query and don't have any tools
| (like Ubuntu minimal) available. Spawning an ephemeral
| container isn't a bad idea in that case.
|
| Short answer: Why not :)
| chrisandchris wrote:
| I don't specifically know Ubuntu minimal. But suggesting
| that a minimal OS has containerd pre-installed isn't
| exactly the "minimal" I'm thinking of.
|
| It's a lot of code to "just run a UDP packet" IMHO.
| patmcc wrote:
| Makes it easy to drop it into a k8s cluster, maybe?
| gosub100 wrote:
| You want an upfront assurance that there's not going to be
| any bullshit. There's nothing that technically prevents a
| docker container from failing, of course. But seeing that
| someone took the extra step to make one is enough assurance.
| And it also protects the author from incoming "it doesn't
| work on my machine" bs.
| ErikBjare wrote:
| Is this how the kids "rawdog" DNS these days?
| Siilwyn wrote:
| I use `bore` which works about the same, interesting to see new
| options! https://crates.io/crates/bore
| icar wrote:
| I'd not encourage the usage of an AUR helper. Just pointing to
| the AUR page should be enough.
| toasteros wrote:
| There's a curl | sh too. Would be kind of ironic to suffer from
| a DNS poisoning attack while trying to download a DNS client.
___________________________________________________________________
(page generated 2024-07-02 23:02 UTC)