chore: fix docs
parent
9f586cc65c
commit
9a06a42288
|
@ -19,6 +19,18 @@ jobs:
|
||||||
uses: actions/setup-go@v2
|
uses: actions/setup-go@v2
|
||||||
with:
|
with:
|
||||||
go-version: 1.15
|
go-version: 1.15
|
||||||
|
-
|
||||||
|
name: Login to GitHub Container Registry
|
||||||
|
uses: docker/login-action@v1
|
||||||
|
with:
|
||||||
|
registry: ghcr.io
|
||||||
|
username: ${{ github.repository_owner }}
|
||||||
|
password: ${{ secrets.GH_GORELEASER_TOKEN }}
|
||||||
|
-
|
||||||
|
name: Install Snapcraft and Log In
|
||||||
|
uses: samuelmeuli/action-snapcraft@v1
|
||||||
|
with:
|
||||||
|
snapcraft_token: ${{ secrets.SNAPCRAFT_TOKEN }}
|
||||||
-
|
-
|
||||||
name: Run GoReleaser
|
name: Run GoReleaser
|
||||||
uses: goreleaser/goreleaser-action@v2
|
uses: goreleaser/goreleaser-action@v2
|
||||||
|
@ -26,5 +38,5 @@ jobs:
|
||||||
version: latest
|
version: latest
|
||||||
args: release --rm-dist
|
args: release --rm-dist
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
DOCKER_CLI_EXPERIMENTAL: enabled
|
||||||
# SNAPCRAFT_TOKEN: ${{ secrets.SNAPCRAFT_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GH_GORELEASER_TOKEN }}
|
||||||
|
|
|
@ -24,14 +24,14 @@ archives:
|
||||||
- README.md
|
- README.md
|
||||||
- LICENSE
|
- LICENSE
|
||||||
|
|
||||||
# snapcrafts:
|
snapcrafts:
|
||||||
# - name_template: "{{ .ProjectName }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}"
|
- name_template: "{{ .ProjectName }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}"
|
||||||
# summary: DNS Command-line client.
|
summary: Command-line DNS client.
|
||||||
# description: |
|
description: |
|
||||||
# doggo is a command-line DNS client written in Go. It supports protocols like DoH, DoT and output formats like JSON.
|
doggo is a command-line DNS client written in Go. It supports protocols like DoH, DoT and output formats like JSON.
|
||||||
# grade: stable
|
grade: stable
|
||||||
# confinement: strict
|
confinement: strict
|
||||||
# publish: true
|
publish: true
|
||||||
|
|
||||||
dockers:
|
dockers:
|
||||||
- image_templates:
|
- image_templates:
|
||||||
|
@ -45,6 +45,7 @@ dockers:
|
||||||
- "ARCH=amd64"
|
- "ARCH=amd64"
|
||||||
- image_templates:
|
- image_templates:
|
||||||
- "ghcr.io/mr-karan/doggo:{{ .Tag }}-arm64v8"
|
- "ghcr.io/mr-karan/doggo:{{ .Tag }}-arm64v8"
|
||||||
|
- "ghcr.io/mr-karan/doggo:latest-arm64v8"
|
||||||
binaries:
|
binaries:
|
||||||
- doggo
|
- doggo
|
||||||
goarch: arm64
|
goarch: arm64
|
||||||
|
@ -52,8 +53,3 @@ dockers:
|
||||||
build_flag_templates:
|
build_flag_templates:
|
||||||
- "--build-arg"
|
- "--build-arg"
|
||||||
- "ARCH=arm64v8"
|
- "ARCH=arm64v8"
|
||||||
docker_manifests:
|
|
||||||
- name_template: mr-karan/doggo:{{ .Tag }}
|
|
||||||
image_templates:
|
|
||||||
- mr-karan/doggo:{{ .Tag }}-amd64
|
|
||||||
- mr-karan/doggo:{{ .Tag }}-arm64v8
|
|
||||||
|
|
47
README.md
47
README.md
|
@ -10,31 +10,61 @@
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
`doggo` is a modern command-line DNS client (like _dig_) written in Golang. It outputs information in a neat concise manner and supports protocols like DoH, DoT as well.
|
**doggo** is a modern command-line DNS client (like _dig_) written in Golang. It outputs information in a neat concise manner and supports protocols like DoH, DoT as well.
|
||||||
|
|
||||||
It's totally inspired from [dog](https://github.com/ogham/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 oppurtunity
|
It's totally inspired from [dog](https://github.com/ogham/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 oppurtunity
|
||||||
to experiment with writing a DNS Client from scratch in `Go` myself. Hence the name `dog` +`go` => `doggo`.
|
to experiment with writing a DNS Client from scratch in `Go` myself. Hence the name `dog` +`go` => **doggo**.
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
- Human readable output - Supports colors and tabular format.
|
- Human readable output - supports **colors** and **tabular** format.
|
||||||
- Supports JSON format - useful for writing scripts.
|
- Supports **JSON** format - can be useful while writing scripts.
|
||||||
- Has support for multiple transport protocols:
|
- Has support for multiple transport protocols:
|
||||||
- DNS over **HTTPS** (DoH)
|
- DNS over **HTTPS** (DoH)
|
||||||
- DNS over **TLS** (DoT)
|
- DNS over **TLS** (DoT)
|
||||||
- DNS over **TCP**
|
- DNS over **TCP**
|
||||||
- DNS over **UDP**
|
- DNS over **UDP**
|
||||||
- Supports **ndots** and **search** configurations from `resolv.conf` or command-line arguments.
|
- Supports **ndots** and **search** configurations from `resolv.conf` or command-line arguments.
|
||||||
- Supports multiple resolvers in one go.
|
- Supports multiple resolvers at once.
|
||||||
- Supports IPv4 **and** IPv6 _both_.
|
- Supports IPv4 **and** IPv6 _both_.
|
||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
### Binary (Recommended)
|
### Binary
|
||||||
|
|
||||||
|
```shell
|
||||||
|
$ cd "$(mktemp -d)"
|
||||||
|
$ curl -sL "https://github.com/mr-karan/doggo/releases/download/v0.1.0/doggo_0.1.0_linux_amd64.tar.gz" | tar xz
|
||||||
|
$ mv doggo /usr/local/bin
|
||||||
|
# doggo should be available now in your $PATH
|
||||||
|
$ doggo
|
||||||
|
```
|
||||||
### Docker
|
### Docker
|
||||||
|
|
||||||
### Snap
|
Images are hosted on Github Container Registry (ghcr.io).
|
||||||
|
You can view all the tags [here](https://github.com/users/mr-karan/packages/container/package/doggo). It even supports **ARM** so you can spin up a container on your RPi to do DNS lookups, cause why not.
|
||||||
|
|
||||||
|
**Pull**
|
||||||
|
|
||||||
|
`docker pull ghcr.io/mr-karan/doggo:latest`
|
||||||
|
|
||||||
|
**Running**
|
||||||
|
|
||||||
|
You can supply all arguments to the CLI directly to `docker run` command. Eg:
|
||||||
|
|
||||||
|
`docker run ghcr.io/mr-karan/doggo:latest mrkaran.dev @1.1.1.1 MX`
|
||||||
|
|
||||||
|
### Using snap
|
||||||
|
|
||||||
|
[![Get it from the Snap Store](https://snapcraft.io/static/images/badges/en/snap-store-black.svg)](https://snapcraft.io/doggo)
|
||||||
|
|
||||||
|
```sh
|
||||||
|
$ sudo snap install doggo
|
||||||
|
```
|
||||||
|
|
||||||
|
**NOTE**: Since the [confinement](https://snapcraft.io/docs/snap-confinement) mode is strict as of now, it cannot access your host's `/etc/resolv.conf`.
|
||||||
|
I'll be making a request in the Snap forums soon so that it can be manually reviewed and allowed to use `--classic`. Until then, please specify a namesever manually
|
||||||
|
if using `snap`.
|
||||||
|
|
||||||
## Usage Examples
|
## Usage Examples
|
||||||
|
|
||||||
|
@ -181,7 +211,8 @@ URL scheme of the server is used to identify which resolver to use for lookups.
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
I'm open to accept feature requests and/or issues. I understand `doggo` is a very new DNS Client in the town and there might be some edge cases I am not handling. Please feel free to open issues if you ever come across such a case.
|
I'm open to accept feature requests and/or issues. I understand `doggo` is a new DNS Client in the town and there might be some edge cases I am not handling.
|
||||||
|
Please feel free to open issues if you ever come across such a case.
|
||||||
For now I am focussing more on [planned features](TODO.md) for a **stable** v1.0 release _soon_.
|
For now I am focussing more on [planned features](TODO.md) for a **stable** v1.0 release _soon_.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 156 KiB After Width: | Height: | Size: 135 KiB |
Loading…
Reference in New Issue