diff --git a/.devcontainer/README.md b/.devcontainer/README.md
index f14390ac6..ddb307c6e 100644
--- a/.devcontainer/README.md
+++ b/.devcontainer/README.md
@@ -47,7 +47,7 @@ You can customize **settings** and **extensions** in the [devcontainer.json](dev
### Entrypoint script
-You can bind mount a shell script to `/root/.welcome.sh` to replace the [current welcome script](shell/.welcome.sh).
+You can bind mount a shell script to `/root/.welcome.sh` to replace the [current welcome script](https://github.com/qdm12/basedevcontainer/blob/master/shell/.welcome.sh).
### Publish a port
diff --git a/.github/workflows/markdown.yml b/.github/workflows/markdown.yml
index d5d180281..68260c860 100644
--- a/.github/workflows/markdown.yml
+++ b/.github/workflows/markdown.yml
@@ -35,6 +35,7 @@ jobs:
- uses: gaurav-nelson/github-action-markdown-link-check@v1
with:
use-quiet-mode: yes
+ config-file: .github/workflows/mlc-config.json
- uses: peter-evans/dockerhub-description@v3
if: github.repository == 'qdm12/ddns-updater' && github.event_name == 'push'
diff --git a/.github/workflows/mlc-config.json b/.github/workflows/mlc-config.json
new file mode 100644
index 000000000..acc8eede3
--- /dev/null
+++ b/.github/workflows/mlc-config.json
@@ -0,0 +1,32 @@
+{
+ "ignorePatterns": [
+ {
+ "pattern": "^http://localhost"
+ },
+ {
+ "pattern": "^https://api6.ipify.org$"
+ },
+ {
+ "pattern": "^http://ip1.dynupdate6.no-ip.com$"
+ },
+ {
+ "pattern": "^https://ap.www.namecheap.com/Domains/DomainControlPanel/example.com/advancedns$"
+ },
+ {
+ "pattern": "^https://www.godaddy.com"
+ },
+ {
+ "pattern": "^https://www.namecheap.com"
+ },
+ {
+ "pattern": "https://www.linode.com/docs/products/tools/api/guides/manage-api-tokens/"
+ }
+ ],
+ "timeout": "5s",
+ "retryOn429": false,
+ "fallbackRetryDelay": "30s",
+ "aliveStatusCodes": [
+ 200,
+ 206
+ ]
+}
\ No newline at end of file
diff --git a/README.md b/README.md
index 765c9a180..31b64212d 100644
--- a/README.md
+++ b/README.md
@@ -27,7 +27,7 @@ Light container updating DNS A and/or AAAA records periodically for multiple DNS
![GitHub repo size](https://img.shields.io/github/repo-size/qdm12/ddns-updater)
![Go version](https://img.shields.io/github/go-mod/go-version/qdm12/ddns-updater)
-[![MIT](https://img.shields.io/github/license/qdm12/ddns-updater)](https://github.com/qdm12/ddns-updater/master/LICENSE)
+[![MIT](https://img.shields.io/github/license/qdm12/ddns-updater)](https://github.com/qdm12/ddns-updater/blob/master/LICENSE)
![Visitors count](https://visitor-badge.laobi.icu/badge?page_id=ddns-updater.readme)
## Features
@@ -176,7 +176,7 @@ Check the documentation for your DNS provider:
- [DDNSS.de](https://github.com/qdm12/ddns-updater/blob/master/docs/ddnss.de.md)
- [deSEC](https://github.com/qdm12/ddns-updater/blob/master/docs/desec.md)
- [DigitalOcean](https://github.com/qdm12/ddns-updater/blob/master/docs/digitalocean.md)
-- [DD24](https://github.com/qdm12/ddns-updater/blob/master/docs/domaindiscount24.md)
+- [DD24](https://github.com/qdm12/ddns-updater/blob/master/docs/dd24.md)
- [DonDominio](https://github.com/qdm12/ddns-updater/blob/master/docs/dondominio.md)
- [DNSOMatic](https://github.com/qdm12/ddns-updater/blob/master/docs/dnsomatic.md)
- [DNSPod](https://github.com/qdm12/ddns-updater/blob/master/docs/dnspod.md)
@@ -243,7 +243,7 @@ Note that:
| `RESOLVER_ADDRESS` | Your network DNS | A plaintext DNS address to use, such as `1.1.1.1:53`. This is useful for split dns, see [#389](https://github.com/qdm12/ddns-updater/issues/389) |
| `LOG_LEVEL` | `info` | Level of logging, `debug`, `info`, `warning` or `error` |
| `LOG_CALLER` | `hidden` | Show caller per log line, `hidden` or `short` |
-| `SHOUTRRR_ADDRESSES` | | (optional) Comma separated list of [Shoutrrr addresses](https://containrrr.dev/shoutrrr/0.8/services/overview/) (notification services) |
+| `SHOUTRRR_ADDRESSES` | | (optional) Comma separated list of [Shoutrrr addresses](https://containrrr.dev/shoutrrr/v0.8/services/overview/) (notification services) |
| `SHOUTRRR_DEFAULT_TITLE` | `DDNS Updater` | Default title for Shoutrrr notifications |
| `TZ` | | Timezone to have accurate times, i.e. `America/Montreal` |
@@ -318,7 +318,7 @@ We could do an API call to get the record IP address every period, but that woul
## Testing
-- The automated healthcheck verifies all your records are up to date [using DNS lookups](https://github.com/qdm12/ddns-updater/blob/master/internal/healthcheck/healthcheck.go#L15)
+- The automated healthcheck verifies all your records are up to date [using DNS lookups](https://github.com/qdm12/ddns-updater/blob/master/internal/health/check.go#L42)
- You can also manually check, by:
1. Going to your DNS management webpage
1. Setting your record to `127.0.0.1`
@@ -352,7 +352,7 @@ You can use optional build arguments with `--build-arg KEY=VALUE` from the table
## License
-This repository is under an [MIT license](https://github.com/qdm12/ddns-updater/master/license)
+This repository is under an [MIT license](https://github.com/qdm12/ddns-updater/blob/master/LICENSE)
## Used in external projects
@@ -362,7 +362,4 @@ This repository is under an [MIT license](https://github.com/qdm12/ddns-updater/
Sponsor me on [Github](https://github.com/sponsors/qdm12) or donate to [paypal.me/qmcgaw](https://www.paypal.me/qmcgaw)
-[![https://github.com/sponsors/qdm12](https://raw.githubusercontent.com/qdm12/private-internet-access-docker/master/doc/sponsors.jpg)](https://github.com/sponsors/qdm12)
-[![https://www.paypal.me/qmcgaw](https://raw.githubusercontent.com/qdm12/private-internet-access-docker/master/doc/paypal.jpg)](https://www.paypal.me/qmcgaw)
-
Many thanks to J. Famiglietti for supporting me financially 🥇👍
diff --git a/docs/cloudflare.md b/docs/cloudflare.md
index c25f18113..e50262d16 100644
--- a/docs/cloudflare.md
+++ b/docs/cloudflare.md
@@ -27,7 +27,7 @@
- `"host"` is your host and can be `"@"`, a subdomain or the wildcard `"*"`.
See [this issue comment for context](https://github.com/qdm12/ddns-updater/issues/243#issuecomment-928313949). This is left as is for compatibility.
- `"ttl"` integer value for record TTL in seconds (specify 1 for automatic)
-- One of the following ([how to find API keys](https://support.cloudflare.com/hc/en-us/articles/200167836-Where-do-I-find-my-Cloudflare-API-key-)):
+- One of the following ([how to find API keys](https://developers.cloudflare.com/fundamentals/api/get-started/)):
- Email `"email"` and Global API Key `"key"`
- User service key `"user_service_key"`
- API Token `"token"`, configured with DNS edit permissions for your DNS name's zone
diff --git a/docs/contributing.md b/docs/contributing.md
index 04224104a..2fabf612e 100644
--- a/docs/contributing.md
+++ b/docs/contributing.md
@@ -29,7 +29,7 @@ go mod download
And finally install [golangci-lint](https://github.com/golangci/golangci-lint#install).
-You might want to use an editor such as [Visual Studio Code](https://code.visualstudio.com/download) with the [Go extension](https://code.visualstudio.com/docs/languages/go). Working settings are already in [.vscode/settings.json](../.vscode/settings.json).
+You might want to use an editor such as [Visual Studio Code](https://code.visualstudio.com/download) with the [Go extension](https://code.visualstudio.com/docs/languages/go).
## Build and Run
diff --git a/docs/duckdns.md b/docs/duckdns.md
index 2accbe115..46f5afe6b 100644
--- a/docs/duckdns.md
+++ b/docs/duckdns.md
@@ -30,6 +30,6 @@
## Domain setup
-[![DuckDNS Website](../readme/duckdns.png)](https://duckdns.org)
+[![DuckDNS Website](../readme/duckdns.png)](https://www.duckdns.org/)
-*See the [duckdns website](https://duckdns.org)*
+*See the [duckdns website](https://www.duckdns.org/)*
diff --git a/docs/godaddy.md b/docs/godaddy.md
index 0bd52a50b..dd776fa35 100644
--- a/docs/godaddy.md
+++ b/docs/godaddy.md
@@ -32,7 +32,7 @@
## Domain setup
-[![GoDaddy Website](../readme/godaddy.png)](https://godaddy.com)
+[![GoDaddy Website](../readme/godaddy.png)](https://www.godaddy.com/en-ie)
1. Login to [https://developer.godaddy.com/keys](https://developer.godaddy.com/keys/) with your account credentials.
diff --git a/docs/linode.md b/docs/linode.md
index 1dc115ae1..d58ef6a61 100644
--- a/docs/linode.md
+++ b/docs/linode.md
@@ -30,5 +30,5 @@
## Domain setup
-1. Create a personal access token with `domains` set, with read and write privileges, ideally that never expires. You can refer to [@AnujRNair's comment](https://github.com/qdm12/ddns-updater/pull/144#discussion_r559292678) and to [Linode's guide](https://www.linode.com/docs/products/tools/cloud-manager/guides/cloud-api-keys).
+1. Create a personal access token with `domains` set, with read and write privileges, ideally that never expires. You can refer to [@AnujRNair's comment](https://github.com/qdm12/ddns-updater/pull/144#discussion_r559292678) and to [Linode's guide](https://www.linode.com/docs/products/tools/api/guides/manage-api-tokens/).
1. The program will create the A or AAAA record for you if it doesn't exist already.
diff --git a/docs/namecheap.md b/docs/namecheap.md
index 02bb3095a..47273d88b 100644
--- a/docs/namecheap.md
+++ b/docs/namecheap.md
@@ -32,26 +32,26 @@ Note that Namecheap only supports ipv4 addresses for now.
## Domain setup
-[![Namecheap Website](../readme/namecheap.png)](https://www.namecheap.com)
+[![Namecheap Website](../readme/namecheap.png)](https://www.namecheap.com/)
1. Create a Namecheap account and buy a domain name - *example.com* as an example
-1. Login to Namecheap at [https://www.namecheap.com/myaccount/login.aspx](https://www.namecheap.com/myaccount/login.aspx)
+1. Login to Namecheap at [https://www.namecheap.com/myaccount/login/](https://www.namecheap.com/myaccount/login/)
For **each domain name** you want to add, replace *example.com* in the following link with your domain name and go to [https://ap.www.namecheap.com/Domains/DomainControlPanel/**example.com**/advancedns](https://ap.www.namecheap.com/Domains/DomainControlPanel/example.com/advancedns)
1. For each host you want to add (if you don't know, create one record with the host set to `*`):
1. In the *HOST RECORDS* section, click on *ADD NEW RECORD*
- ![https://ap.www.namecheap.com/Domains/DomainControlPanel/mealracle.com/advancedns](../readme/namecheap1.png)
+ ![https://ap.www.namecheap.com/Domains/DomainControlPanel/example.com/advancedns](../readme/namecheap1.png)
1. Select the following settings and create the *A + Dynamic DNS Record*:
- ![https://ap.www.namecheap.com/Domains/DomainControlPanel/mealracle.com/advancedns](../readme/namecheap2.png)
+ ![https://ap.www.namecheap.com/Domains/DomainControlPanel/example.com/advancedns](../readme/namecheap2.png)
1. Scroll down and turn on the switch for *DYNAMIC DNS*
- ![https://ap.www.namecheap.com/Domains/DomainControlPanel/mealracle.com/advancedns](../readme/namecheap3.png)
+ ![https://ap.www.namecheap.com/Domains/DomainControlPanel/example.com/advancedns](../readme/namecheap3.png)
1. The Dynamic DNS Password will appear, which is `0e4512a9c45a4fe88313bcc2234bf547` in this example.
- ![https://ap.www.namecheap.com/Domains/DomainControlPanel/mealracle.com/advancedns](../readme/namecheap4.png)
+ ![https://ap.www.namecheap.com/Domains/DomainControlPanel/example.com/advancedns](../readme/namecheap4.png)
diff --git a/internal/provider/providers/duckdns/provider.go b/internal/provider/providers/duckdns/provider.go
index 17d159107..7006268e1 100644
--- a/internal/provider/providers/duckdns/provider.go
+++ b/internal/provider/providers/duckdns/provider.go
@@ -92,7 +92,7 @@ func (p *Provider) HTML() models.HTMLRow {
return models.HTMLRow{
Domain: fmt.Sprintf("%s", p.BuildDomainName(), p.BuildDomainName()),
Host: p.Host(),
- Provider: "DuckDNS",
+ Provider: "DuckDNS",
IPVersion: p.ipVersion.String(),
}
}
diff --git a/internal/provider/providers/godaddy/provider.go b/internal/provider/providers/godaddy/provider.go
index aa1b5cec4..7a4574e43 100644
--- a/internal/provider/providers/godaddy/provider.go
+++ b/internal/provider/providers/godaddy/provider.go
@@ -92,7 +92,7 @@ func (p *Provider) HTML() models.HTMLRow {
return models.HTMLRow{
Domain: fmt.Sprintf("%s", p.BuildDomainName(), p.BuildDomainName()),
Host: p.Host(),
- Provider: "GoDaddy",
+ Provider: "GoDaddy",
IPVersion: p.ipVersion.String(),
}
}
diff --git a/k8s/README.md b/k8s/README.md
index ee196ee31..b8ffa6c75 100644
--- a/k8s/README.md
+++ b/k8s/README.md
@@ -13,7 +13,7 @@ The Manifests have additional [Kustomize](https://kustomize.io/) overlays, which
curl -O https://raw.githubusercontent.com/qdm12/ddns-updater/master/k8s/base/kustomization.yaml
```
-1. Modify `secret-config.yaml` as described in the [project readme](../README#configuration)
+1. Modify `secret-config.yaml` as described in the [project readme](../README.md#configuration)
1. Use [kubectl](https://kubernetes.io/docs/reference/kubectl/) to apply the manifest:
```sh
@@ -33,6 +33,6 @@ The web UI should now be available at [http://localhost:8080](http://localhost:8
Kustomize overlays can extend the installation:
* [overlay/with-ingress](overlay/with-ingress/) - Basic **HTTP** Ingress ressource
-* [overlay/with-ingress-cert-manager](overlay/with-ingress-cert-manager/) - Basic **HTTPS** Ingress ressource which uses [cert-manager](https://github.com/cert-manager/cert-manager) to create certificates.
+* [overlay/with-ingress-tls-cert-manager](overlay/with-ingress-tls-cert-manager/) - Basic **HTTPS** Ingress ressource which uses [cert-manager](https://github.com/cert-manager/cert-manager) to create certificates.
To install with the overlay **just change dirctory in the overlay folder you want to install** and hit `kubectl apply -k .` .