Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 61 additions & 0 deletions ct/ddns-updater.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVED/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: reptil1990
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://github.com/qdm12/ddns-updater

APP="DDNS-Updater"
var_tags="${var_tags:-network}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-512}"
var_disk="${var_disk:-2}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"

header_info "$APP"
variables
color
catch_errors

function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/ddns-updater ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "ddns-updater" "qdm12/ddns-updater"; then
msg_info "Stopping Service"
systemctl stop ddns-updater
msg_ok "Stopped Service"

msg_info "Backing up Data"
cp -r /opt/ddns-updater/data /opt/ddns-updater_data_backup
msg_ok "Backed up Data"

CLEAN_INSTALL=1 fetch_and_deploy_gh_release "ddns-updater" "qdm12/ddns-updater" "singlefile" "latest" "/opt/ddns-updater" "ddns-updater_*_linux_amd64"

msg_info "Restoring Data"
cp -r /opt/ddns-updater_data_backup/. /opt/ddns-updater/data/
rm -rf /opt/ddns-updater_data_backup
msg_ok "Restored Data"

msg_info "Starting Service"
systemctl start ddns-updater
msg_ok "Started Service"
msg_ok "Updated successfully!"
fi
exit
}

start
build_container
description

msg_ok "Completed successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:8000${CL}"
6 changes: 6 additions & 0 deletions ct/headers/ddns-updater
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
____ ____ _ _______ __ __ __ __
/ __ \/ __ \/ | / / ___/ / / / /___ ____/ /___ _/ /____ _____
/ / / / / / / |/ /\__ \_____/ / / / __ \/ __ / __ `/ __/ _ \/ ___/
/ /_/ / /_/ / /| /___/ /____/ /_/ / /_/ / /_/ / /_/ / /_/ __/ /
/_____/_____/_/ |_//____/ \____/ .___/\__,_/\__,_/\__/\___/_/
/_/
56 changes: 56 additions & 0 deletions install/ddns-updater-install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
#!/usr/bin/env bash

# Copyright (c) 2021-2026 community-scripts ORG
# Author: reptil1990
# License: MIT | https://github.com/community-scripts/ProxmoxVED/raw/main/LICENSE
# Source: https://github.com/qdm12/ddns-updater

source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os

fetch_and_deploy_gh_release "ddns-updater" "qdm12/ddns-updater" "singlefile" "latest" "/opt/ddns-updater" "ddns-updater_*_linux_amd64"

msg_info "Configuring DDNS-Updater"
mkdir -p /opt/ddns-updater/data
cat <<EOF >/opt/ddns-updater/data/config.json
{
"settings": [
{
"provider": ""
}
]
}
EOF
msg_ok "Configured DDNS-Updater"

msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/ddns-updater.service
[Unit]
Description=DDNS-Updater
After=network.target

[Service]
Type=simple
ExecStart=/opt/ddns-updater/ddns-updater
Environment=DATADIR=/opt/ddns-updater/data
Environment=LISTENING_ADDRESS=:8000
Environment=LOG_LEVEL=info
Environment=PERIOD=5m
WorkingDirectory=/opt/ddns-updater
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now ddns-updater
msg_ok "Created Service"

motd_ssh
customize
cleanup_lxc
40 changes: 40 additions & 0 deletions json/ddns-updater.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
{
"name": "DDNS-Updater",
"slug": "ddns-updater",
"categories": [
4
],
"date_created": "2026-04-06",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 8000,
"documentation": "https://github.com/qdm12/ddns-updater/wiki",
"website": "https://github.com/qdm12/ddns-updater",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/ddns-updater.webp",
"config_path": "/opt/ddns-updater/data/config.json",
"description": "Lightweight universal DDNS updater with web UI, supporting 60+ DNS providers including Cloudflare, Namecheap, GoDaddy, DuckDNS and more.",
"install_methods": [
{
"type": "default",
"script": "ct/ddns-updater.sh",
"resources": {
"cpu": 1,
"ram": 512,
"hdd": 2,
"os": "Debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Edit /opt/ddns-updater/data/config.json with your DNS provider settings before use.",
"type": "warning"
}
]
}
Loading