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