From 70b45710e77dac3b4a4eb59af8534167051d5a4f Mon Sep 17 00:00:00 2001 From: Cuong Manh Le Date: Tue, 21 Apr 2026 15:40:48 +0700 Subject: [PATCH] docs: improve common gotchas and non-obvious patterns README.md: fix Go version requirement (1.23 -> 1.24), update OS support architectures (add arm64/mipsle/mips64 for Linux, arm64 for Windows/FreeBSD, remove windows/arm), fix broken PowerShell install path, demote H1 section headings to H2. --- README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 1614424..e7a7223 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ All DNS protocols are supported, including: - `DNS-over-HTTP/3` (DOH3) - `DNS-over-QUIC` -# Use Cases +## Use Cases 1. Use secure DNS protocols on networks and devices that don't natively support them (legacy OSes, TVs, smart toasters). 2. Create source IP based DNS routing policies with variable secure DNS upstreams. Subnet 1 (admin) uses upstream resolver A, while Subnet 2 (employee) uses upstream resolver B. 3. Create destination IP based DNS routing policies with variable secure DNS upstreams. Listener 1 uses upstream resolver C, while Listener 2 uses upstream resolver D. @@ -32,12 +32,12 @@ All DNS protocols are supported, including: ## OS Support -- Windows Desktop (386, amd64, arm) +- Windows Desktop (386, amd64, arm64) - MacOS (amd64, arm64) -- Linux (386, amd64, arm, mips) -- FreeBSD (386, amd64, arm) +- Linux (386, amd64, arm, arm64, mips, mipsle, mips64) +- FreeBSD (386, amd64, arm, arm64) -# Install +## Install There are several ways to download and install `ctrld`. ## Quick Install @@ -49,7 +49,7 @@ sh -c 'sh -c "$(curl -sL https://api.controld.com/dl?version=2)"' Windows user and prefer Powershell (who doesn't)? No problem, execute this command instead in administrative PowerShell: ```shell -(Invoke-WebRequest -Uri 'https://api.controld.com/dl/ps1?version=2' -UseBasicParsing).Content | Set-Content "$env:TEMPctrld_install.ps1"; Invoke-Expression "& '$env:TEMPctrld_install.ps1'" +(Invoke-WebRequest -Uri 'https://api.controld.com/dl/ps1?version=2' -UseBasicParsing).Content | Set-Content "$env:TEMP\ctrld_install.ps1"; Invoke-Expression "& '$env:TEMP\ctrld_install.ps1'" ``` Or you can pull and run a Docker container from [Docker Hub](https://hub.docker.com/r/controldns/ctrld) @@ -61,7 +61,7 @@ docker run -d --name=ctrld -p 127.0.0.1:53:53/tcp -p 127.0.0.1:53:53/udp control Alternatively, if you know what you're doing you can download pre-compiled binaries from the [Releases](https://github.com/Control-D-Inc/ctrld/releases) section for the appropriate platform. ## Build -Lastly, you can build `ctrld` from source which requires `go1.23+`: +Lastly, you can build `ctrld` from source which requires `go1.24+`: ```shell go build ./cmd/ctrld @@ -80,7 +80,7 @@ docker build -t controldns/ctrld . -f docker/Dockerfile ``` -# Usage +## Usage The cli is self documenting, so feel free to run `--help` on any sub-command to get specific usages. ## Arguments @@ -175,7 +175,7 @@ Linux or Macos sudo ctrld service start ``` -# Configuration +## Configuration `ctrld` can be configured in variety of different ways, which include: API, local config file or via cli launch args. ## API Based Auto Configuration