Skip to content

Commit

Permalink
chore: fix docs
Browse files Browse the repository at this point in the history
  • Loading branch information
mr-karan committed Dec 18, 2020
1 parent 9f586cc commit 1c1ffd6
Show file tree
Hide file tree
Showing 4 changed files with 64 additions and 22 deletions.
16 changes: 14 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,24 @@ jobs:
uses: actions/setup-go@v2
with:
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
uses: goreleaser/goreleaser-action@v2
with:
version: latest
args: release --rm-dist
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# SNAPCRAFT_TOKEN: ${{ secrets.SNAPCRAFT_TOKEN }}
DOCKER_CLI_EXPERIMENTAL: enabled
GITHUB_TOKEN: ${{ secrets.GH_GORELEASER_TOKEN }}
22 changes: 9 additions & 13 deletions .goreleaser.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,14 +24,14 @@ archives:
- README.md
- LICENSE

# snapcrafts:
# - name_template: "{{ .ProjectName }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}"
# summary: DNS Command-line client.
# description: |
# doggo is a command-line DNS client written in Go. It supports protocols like DoH, DoT and output formats like JSON.
# grade: stable
# confinement: strict
# publish: true
snapcrafts:
- name_template: "{{ .ProjectName }}_{{ .Arch }}{{ if .Arm }}v{{ .Arm }}{{ end }}"
summary: Command-line DNS client.
description: |
doggo is a command-line DNS client written in Go. It supports protocols like DoH, DoT and output formats like JSON.
grade: stable
confinement: strict
publish: true

dockers:
- image_templates:
Expand All @@ -45,15 +45,11 @@ dockers:
- "ARCH=amd64"
- image_templates:
- "ghcr.io/mr-karan/doggo:{{ .Tag }}-arm64v8"
- "ghcr.io/mr-karan/doggo:latest-arm64v8"
binaries:
- doggo
goarch: arm64
dockerfile: Dockerfile
build_flag_templates:
- "--build-arg"
- "ARCH=arm64v8"
docker_manifests:
- name_template: mr-karan/doggo:{{ .Tag }}
image_templates:
- mr-karan/doggo:{{ .Tag }}-amd64
- mr-karan/doggo:{{ .Tag }}-arm64v8
48 changes: 41 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,32 +10,65 @@

---

`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
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

- Human readable output - Supports colors and tabular format.
- Supports JSON format - useful for writing scripts.
- Human readable output - supports **colors** and **tabular** format.
- Supports **JSON** format - can be useful while writing scripts.
- Has support for multiple transport protocols:
- DNS over **HTTPS** (DoH)
- DNS over **TLS** (DoT)
- DNS over **TCP**
- DNS over **UDP**
- 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_.

## Installation

### Binary (Recommended)
### Binary

```shell
$ cd "$(mktemp -d)"
$ curl -sL "https://github.com/mr-karan/doggo/releases/download/0.0.1/doggo_0.0.1_$(uname)_amd64.tar.gz" | tar xz
$ mv doggo /usr/local/bin
# doggo should be available now in your $PATH
$ doggo
```
### Docker

Images are hosted on Github Container Registry (ghcr.io).

**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`

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.

### Snap

### 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

**Do a simple DNS Lookup for `mrkaran.dev`**
Expand Down Expand Up @@ -181,7 +214,8 @@ URL scheme of the server is used to identify which resolver to use for lookups.

## 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_.

## License
Expand Down
Binary file modified www/static/usage.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 1c1ffd6

Please sign in to comment.