Initial PlayBull release with Trilogy Hub integration.
Includes homelab deploy tooling, image position/zoom manifest persistence, and full trading/casino stack. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
32
deploy/duckdns-update.sh
Normal file
32
deploy/duckdns-update.sh
Normal file
@@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env bash
|
||||
# DuckDNS IP-Updater — holt oeffentliche IPv4/IPv6 und meldet sie an DuckDNS.
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
# shellcheck source=/dev/null
|
||||
source "${SCRIPT_DIR}/env.homelab"
|
||||
|
||||
: "${DUCKDNS_TOKEN:?DUCKDNS_TOKEN fehlt in deploy/env.homelab}"
|
||||
: "${DUCKDNS_DOMAIN:?DUCKDNS_DOMAIN fehlt in deploy/env.homelab}"
|
||||
|
||||
SUBDOMAIN="${DUCKDNS_DOMAIN%%.*}"
|
||||
|
||||
IPV4="$(curl -4 -fsS --max-time 15 https://api.ipify.org 2>/dev/null || true)"
|
||||
IPV6="$(curl -6 -fsS --max-time 15 https://api64.ipify.org 2>/dev/null || true)"
|
||||
|
||||
if [[ -z "${IPV4}" && -z "${IPV6}" ]]; then
|
||||
echo "duckdns-update: keine oeffentliche IP ermittelbar" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
URL="https://www.duckdns.org/update?domains=${SUBDOMAIN}&token=${DUCKDNS_TOKEN}&verbose=true"
|
||||
[[ -n "${IPV4}" ]] && URL+="&ip=${IPV4}"
|
||||
[[ -n "${IPV6}" ]] && URL+="&ipv6=${IPV6}"
|
||||
|
||||
RESP="$(curl -fsS --max-time 20 "${URL}")"
|
||||
echo "$(date -Is) duckdns ${SUBDOMAIN}: ${RESP} (v4=${IPV4:-none} v6=${IPV6:-none})"
|
||||
|
||||
case "${RESP}" in
|
||||
OK*) exit 0 ;;
|
||||
*) exit 1 ;;
|
||||
esac
|
||||
Reference in New Issue
Block a user