feat: Add Duck DNS
This commit is contained in:
parent
47cfbc19b1
commit
c508d313fd
48
apps/duckdns/config.json
Normal file
48
apps/duckdns/config.json
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
{
|
||||||
|
"name": "Duck DNS",
|
||||||
|
"available": true,
|
||||||
|
"port": 8026,
|
||||||
|
"exposable": false,
|
||||||
|
"id": "duckdns",
|
||||||
|
"description": "Duck DNS is a free service which will point a DNS (sub domains of duckdns.org) to an IP of your choice",
|
||||||
|
"tipi_version": 1,
|
||||||
|
"version": "b14c520a-ls8",
|
||||||
|
"categories": ["network"],
|
||||||
|
"short_desc": "Duck DNS is a free Dynamic DNS service",
|
||||||
|
"author": "linuxserver.io",
|
||||||
|
"source": "https://github.com/linuxserver/docker-duckdns",
|
||||||
|
"website": "https://docs.linuxserver.io/images/docker-duckdns/",
|
||||||
|
"supported_architectures": ["arm64", "amd64"],
|
||||||
|
"uid": 1000,
|
||||||
|
"gid": 1000,
|
||||||
|
"form_fields": [
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"label": "Subdomains (comma separated). E.g. `mydomain1,mydomain2`.",
|
||||||
|
"max": 1024,
|
||||||
|
"min": 3,
|
||||||
|
"required": true,
|
||||||
|
"env_variable": "DUCKDNS_SUBDOMAINS"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "password",
|
||||||
|
"label": "DuckDNS Token",
|
||||||
|
"max": 128,
|
||||||
|
"min": 3,
|
||||||
|
"required": true,
|
||||||
|
"env_variable": "DUCKDNS_TOKEN"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "text",
|
||||||
|
"label": "Update IP (blank, ipv4, ipv6 or both). Setting this value uses external Cloudflare whoami service. Omitting the field uses DuckDNS for detection and only supports IPv4.",
|
||||||
|
"required": false,
|
||||||
|
"env_variable": "DUCKDNS_UPDATE_IP"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "boolean",
|
||||||
|
"label": "Enable logging",
|
||||||
|
"required": false,
|
||||||
|
"env_variable": "DUCKDNS_ENABLE_LOG_FILE"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
20
apps/duckdns/docker-compose.arm64.yml
Normal file
20
apps/duckdns/docker-compose.arm64.yml
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
version: "3.9"
|
||||||
|
services:
|
||||||
|
duckdns:
|
||||||
|
container_name: duckdns # Should be exact same name as "id" field in config.json
|
||||||
|
image: lscr.io/linuxserver/duckdns:arm64v8-b14c520a-ls8 # Try to avoid "latest" tag. As it may break configs in the future.
|
||||||
|
environment:
|
||||||
|
- PUID=1000
|
||||||
|
- PGID=1000
|
||||||
|
- TZ=${TZ}
|
||||||
|
- SUBDOMAINS=${DUCKDNS_SUBDOMAINS}
|
||||||
|
- TOKEN=${DUCKDNS_TOKEN}
|
||||||
|
- UPDATE_IP=${DUCKDNS_UPDATE_IP}
|
||||||
|
- LOG_FILE=${DUCKDNS_ENABLE_LOG_FILE}
|
||||||
|
volumes:
|
||||||
|
- ${APP_DATA_DIR}:/config
|
||||||
|
ports:
|
||||||
|
- ${APP_PORT}:80
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- tipi_main_network
|
20
apps/duckdns/docker-compose.yml
Normal file
20
apps/duckdns/docker-compose.yml
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
version: "3.9"
|
||||||
|
services:
|
||||||
|
duckdns:
|
||||||
|
container_name: duckdns # Should be exact same name as "id" field in config.json
|
||||||
|
image: lscr.io/linuxserver/duckdns:b14c520a-ls8 # Try to avoid "latest" tag. As it may break configs in the future.
|
||||||
|
environment:
|
||||||
|
- PUID=1000
|
||||||
|
- PGID=1000
|
||||||
|
- TZ=${TZ}
|
||||||
|
- SUBDOMAINS=${DUCKDNS_SUBDOMAINS}
|
||||||
|
- TOKEN=${DUCKDNS_TOKEN}
|
||||||
|
- UPDATE_IP=${DUCKDNS_UPDATE_IP}
|
||||||
|
- LOG_FILE=${DUCKDNS_ENABLE_LOG_FILE}
|
||||||
|
volumes:
|
||||||
|
- ${APP_DATA_DIR}:/config
|
||||||
|
ports:
|
||||||
|
- ${APP_PORT}:80
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
- tipi_main_network
|
32
apps/duckdns/metadata/description.md
Normal file
32
apps/duckdns/metadata/description.md
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
# DuckDNS
|
||||||
|
|
||||||
|
[Duckdns](https://duckdns.org/) is a free service which will point a DNS (sub domains of duckdns.org) to an IP of your choice. The service is completely free, and doesn't require reactivation or forum posts to maintain its existence.
|
||||||
|
|
||||||
|
[![duckdns](https://raw.githubusercontent.com/linuxserver/docker-templates/master/linuxserver.io/img/duckdns.png)](https://duckdns.org/)
|
||||||
|
|
||||||
|
## Supported Architectures
|
||||||
|
|
||||||
|
We utilise the docker manifest for multi-platform awareness. More information is available from docker [here](https://distribution.github.io/distribution/spec/manifest-v2-2/#manifest-list) and our announcement [here](https://blog.linuxserver.io/2019/02/21/the-lsio-pipeline-project/).
|
||||||
|
|
||||||
|
Simply pulling `lscr.io/linuxserver/duckdns:latest` should retrieve the correct image for your arch, but you can also pull specific arch images via tags.
|
||||||
|
|
||||||
|
The architectures supported by this image are:
|
||||||
|
|
||||||
|
| Architecture | Available | Tag |
|
||||||
|
| :----: | :----: | ---- |
|
||||||
|
| x86-64 | ✅ | amd64-\<version tag\> |
|
||||||
|
| arm64 | ✅ | arm64v8-\<version tag\> |
|
||||||
|
| armhf | ❌ | |
|
||||||
|
|
||||||
|
## Application Setup
|
||||||
|
|
||||||
|
- Go to the [duckdns website](https://duckdns.org/), register your subdomain(s) and retrieve your token
|
||||||
|
- Create a container with your subdomain(s) and token. If you own user.duckdns.org, you put `SUBDOMAINS=user` you would NOT put a sub subdomain like overseerr from overseerr.user.ducksdns.org
|
||||||
|
- It will update your IP with the DuckDNS service every 5 minutes (with a random jitter)
|
||||||
|
|
||||||
|
## Notice regarding automatic detection
|
||||||
|
|
||||||
|
Using the `UPDATE_IP` variable whatever its value (`ipv4`, `ipv6` or `both`) uses external *Cloudflare whoami* service to detect public IP addresses.
|
||||||
|
**Be aware that using this variable will query a third-party service other than DuckDNS.**
|
||||||
|
|
||||||
|
Omitting the `UPDATE_IP` variable uses DuckDNS for detection and only supports IPv4.
|
BIN
apps/duckdns/metadata/logo.jpg
Normal file
BIN
apps/duckdns/metadata/logo.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 33 KiB |
Loading…
Reference in New Issue
Block a user