68 Commits

Author SHA1 Message Date
alcapone1933
01f657f6eb Merge pull request 'v0.1.4' (#14) from development into master 2024-03-29 13:17:26 +01:00
alcapone1933
aa25108b5d v0.1.4 2024-03-29 13:13:22 +01:00
alcapone1933
4a6817a290 SHOUTRRR_SKIP_TEST 2024-03-29 13:02:18 +01:00
alcapone1933
81b8ae07eb Merge branch 'development' 2023-10-09 23:12:07 +02:00
alcapone1933
4d51b4e43f v0.1.3 2023-10-07 12:33:31 +02:00
alcapone1933
fa232af923 v0.1.3 2023-10-07 11:41:51 +02:00
alcapone1933
ebe1442b15 dev-v0.1.3 2023-10-07 10:38:35 +02:00
alcapone1933
48122dc045 v0.1.2 2023-04-11 19:25:56 +02:00
alcapone1933
d222704306 v0.1.2 2023-04-11 19:21:56 +02:00
alcapone1933
9efddb5d50 Merge pull request 'v0.1.2' (#10) from development into master
v0.1.2
2023-04-11 19:02:39 +02:00
alcapone1933
1c08c983aa v0.1.2 2023-04-11 18:56:11 +02:00
alcapone1933
d879a192d6 update 2023-03-06 19:03:20 +01:00
alcapone1933
84a2b80e7c update 2023-03-06 19:02:46 +01:00
alcapone1933
7ad42db5bd „README.md“ ändern 2023-03-06 18:55:50 +01:00
alcapone1933
b115ab16b4 „README.md“ ändern 2023-03-06 18:54:58 +01:00
alcapone1933
8335b0715a demo Shoutrrr 2023-01-08 18:50:35 +01:00
alcapone1933
d637666032 demo Shoutrrr 2023-01-08 18:49:04 +01:00
alcapone1933
f7516fb34b Merge pull request 'demo Shoutrrr' (#9) from development into master 2023-01-08 18:47:46 +01:00
alcapone1933
7b739d1563 demo shoutrrr 2023-01-08 18:39:23 +01:00
alcapone1933
6919e87ac3 demo shoutrrr 2023-01-08 18:33:12 +01:00
alcapone1933
4c795f3939 update 2023-01-03 06:36:44 +01:00
alcapone1933
ef97a43fae update 2023-01-03 06:36:24 +01:00
alcapone1933
8a12e1c920 update 2023-01-03 03:41:47 +01:00
alcapone1933
98099d10bd update 2023-01-03 03:40:39 +01:00
alcapone1933
1514a2d362 update 2023-01-01 12:08:16 +01:00
alcapone1933
cbffb2c88a update 2023-01-01 12:07:02 +01:00
alcapone1933
852cf37bd9 Merge pull request 'v0.1.1' (#7) from development into master 2022-12-31 14:34:31 +01:00
alcapone1933
604744abee update 2022-12-31 14:20:03 +01:00
alcapone1933
13ae818f28 v0.1.1 2022-12-31 07:45:48 +01:00
alcapone1933
f6680e6e3c v0.1.1 2022-12-31 07:45:36 +01:00
alcapone1933
909890dd60 v0.1.1 2022-12-31 02:43:44 +01:00
alcapone1933
567d36c1a5 Merge pull request 'v0.1.0' (#6) from development into master 2022-12-30 16:55:20 +01:00
alcapone1933
625359ff46 update 2022-12-30 05:56:14 +01:00
alcapone1933
46b74e8a14 update 2022-12-30 05:39:48 +01:00
alcapone1933
e1ef6973cf update 2022-12-30 05:05:33 +01:00
alcapone1933
e16e8dc0e9 update 2022-12-30 01:47:47 +01:00
alcapone1933
5c6ad37592 update 2022-12-29 14:31:11 +01:00
alcapone1933
07275139ed fix 2022-12-29 13:42:02 +01:00
alcapone1933
a063d96922 fix 2022-12-29 13:38:27 +01:00
alcapone1933
8a48cb7c3e update 2022-12-29 13:23:44 +01:00
alcapone1933
3869f713ac update 2022-12-29 13:23:06 +01:00
alcapone1933
58cc6106a8 update 2022-12-29 13:16:40 +01:00
alcapone1933
9754252189 v0.1.0 2022-12-29 13:12:19 +01:00
alcapone1933
24f8af18be fix 2022-12-29 09:53:37 +01:00
alcapone1933
1314f21034 fix 2022-12-29 09:49:39 +01:00
alcapone1933
a8ff67f81c drone-dev 2022-12-29 09:44:56 +01:00
alcapone1933
fa25ee4c0e fix 2022-12-29 09:12:26 +01:00
alcapone1933
a451ca1d7b build dev 2022-12-29 08:53:31 +01:00
alcapone1933
91fca82fda v0.1.0 2022-12-29 08:38:51 +01:00
alcapone1933
b4244ed7f0 fix 2022-12-27 20:54:22 +01:00
alcapone1933
3ec5e55bb5 Shoutrrr 2022-12-27 18:57:11 +01:00
alcapone1933
2ad69f6d71 update 2022-12-21 22:49:14 +01:00
alcapone1933
f7d5c808e3 update 2022-12-21 22:47:48 +01:00
alcapone1933
7b1390cff9 Merge pull request 'v0.0.9' (#5) from development into master 2022-12-01 17:04:01 +01:00
alcapone1933
66b1f15f93 v0.0.9 2022-12-01 17:02:58 +01:00
alcapone1933
642d49fee6 „Dockerfile“ ändern 2022-11-29 19:25:51 +01:00
alcapone1933
0962f3d545 update 2022-11-29 19:10:54 +01:00
alcapone1933
e77043a427 Merge pull request 'development' (#4) from development into master 2022-11-29 17:02:53 +01:00
alcapone1933
776eb3ac8d v0.0.8 2022-11-29 17:02:10 +01:00
alcapone1933
0ce80be3dc v0.0.8 2022-11-29 16:54:10 +01:00
alcapone1933
79be8ef001 update 2022-11-28 09:42:24 +01:00
alcapone1933
6d7e5cd1b8 „README.md“ ändern 2022-11-27 01:16:52 +01:00
alcapone1933
5cf152a114 update 2022-11-27 01:08:36 +01:00
alcapone1933
aef9e8a468 Merge pull request 'v0.0.7' (#2) from development into master 2022-11-26 13:07:51 +01:00
alcapone1933
a574ab7cfb v0.0.7 2022-11-26 00:19:24 +01:00
alcapone1933
6af83e2a7a Readme 2022-11-12 14:46:50 +01:00
alcapone1933
a7c1e4c82d Merge pull request 'v.0.0.6 User-agent' (#1) from development into master
v.0.0.6 User-agent
2022-11-12 11:24:56 +01:00
alcapone1933
a7045709c8 v.0.0.6 User-agent 2022-11-12 11:13:46 +01:00
15 changed files with 848 additions and 429 deletions

View File

@@ -7,7 +7,7 @@ steps:
image: alcapone1933/drone:docker-buildx
privileged: true
settings:
platforms: linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8,linux/ppc64le,linux/s390x
platforms: linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8
repo: alcapone1933/ddns-ipv64
tags: latest
dry_run: true
@@ -33,11 +33,11 @@ steps:
from_secret: DOCKER_USER
password:
from_secret: DOCKER_PASS
platforms: linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8,linux/ppc64le,linux/s390x
platforms: linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8
repo: alcapone1933/ddns-ipv64
# tags: latest
auto_tag: true
auto_tag_suffix: v0.0.5
auto_tag_suffix: v0.1.4
trigger:
branch:
@@ -50,37 +50,6 @@ trigger:
depends_on:
- BUILD-TEST
---
kind: pipeline
type: docker
name: BUILD-GitHub-Version
steps:
- name: Build Multi-arch
image: alcapone1933/drone:docker-buildx
privileged: true
settings:
username:
from_secret: GITHUB_USER
password:
from_secret: GITHUB_PASS
platforms: linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8,linux/ppc64le,linux/s390x
registry: ghcr.io
repo: ghcr.io/alcapone1933/ddns-ipv64
# tags: latest
auto_tag: true
auto_tag_suffix: v0.0.5
trigger:
branch:
- master
event:
- custom
# - push
# - pull_request
depends_on:
- BUILD-Dockerhub-Version
---
kind: pipeline
type: docker
@@ -94,7 +63,7 @@ steps:
from_secret: DOCKER_USER
password:
from_secret: DOCKER_PASS
platforms: linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8,linux/ppc64le,linux/s390x
platforms: linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8
repo: alcapone1933/ddns-ipv64
# tags: latest
auto_tag: true
@@ -108,34 +77,55 @@ trigger:
# - pull_request
depends_on:
- BUILD-GitHub-Version
- BUILD-Dockerhub-Version
---
kind: pipeline
type: docker
name: BUILD-TEST-DEV
steps:
- name: Build Multi-arch
image: alcapone1933/drone:docker-buildx
privileged: true
settings:
platforms: linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8
repo: alcapone1933/ddns-ipv64
tags: dev
dry_run: true
trigger:
branch:
- development
event:
- custom
# - push
# - pull_request
---
kind: pipeline
type: docker
name: BUILD-GitHub-Latest
name: BUILD-Dockerhub-DEV
steps:
- name: Build Multi-arch
image: alcapone1933/drone:docker-buildx
privileged: true
settings:
username:
from_secret: GITHUB_USER
from_secret: DOCKER_USER
password:
from_secret: GITHUB_PASS
platforms: linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8,linux/ppc64le,linux/s390x
registry: ghcr.io
repo: ghcr.io/alcapone1933/ddns-ipv64
# tags: latest
auto_tag: true
from_secret: DOCKER_PASS
platforms: linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64/v8
repo: alcapone1933/ddns-ipv64
tags: dev
# auto_tag: true
# auto_tag_suffix: dev
trigger:
branch:
- master
- development
event:
- custom
# - push
# - pull_request
depends_on:
- BUILD-Dockerhub-Latest
- BUILD-TEST-DEV

View File

@@ -1,28 +1,35 @@
FROM alpine:latest
FROM alcapone1933/alpine:latest
# ipv64.net
LABEL maintainer="alcapone1933 <alcapone1933@cosanostra-cloud.de>" \
org.opencontainers.image.created="$(date +%Y-%m-%d\ %H:%M)" \
org.opencontainers.image.authors="alcapone1933 <alcapone1933@cosanostra-cloud.de>" \
org.opencontainers.image.url="https://hub.docker.com/r/alcapone1933/ddns-ipv64" \
org.opencontainers.image.version="v0.0.5" \
org.opencontainers.image.version="v0.1.4" \
org.opencontainers.image.ref.name="alcapone1933/ddns-ipv64" \
org.opencontainers.image.title="DDNS Updater ipv64.net" \
org.opencontainers.image.description="Community DDNS Updater fuer ipv64.net"
ENV TZ=Europe/Berlin
ENV CRON_TIME="*/15 * * * *"
ENV CRON_TIME_DIG="*/30 * * * *"
ENV TZ=Europe/Berlin \
CRON_TIME="*/15 * * * *" \
CRON_TIME_DIG="*/30 * * * *" \
VERSION="v0.1.4" \
CURL_USER_AGENT="docker-ddns-ipv64/version=v0.1.4 github.com/alcapone1933/docker-ddns-ipv64" \
SHOUTRRR_URL="" \
SHOUTRRR_SKIP_TEST="no" \
IP_CHECK="yes" \
NAME_SERVER="ns1.ipv64.net"
RUN apk add --update --no-cache tzdata curl bash tini bind-tools jq && \
rm -rf /var/cache/apk/*
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
RUN mkdir -p /data /usr/local/bin/ /etc/cron.d/
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone && \
mkdir -p /data /usr/local/bin/ /etc/cron.d/
COPY data /data
RUN mv /data/entrypoint.sh /usr/local/bin/entrypoint.sh && mv /data/cronjob /etc/cron.d/container_cronjob && mv /data/healthcheck.sh /usr/local/bin/healthcheck.sh && \
chmod 755 /data/ddns-update.sh && chmod 755 /usr/local/bin/entrypoint.sh && chmod 755 /usr/local/bin/healthcheck.sh && \
chmod 755 /etc/cron.d/container_cronjob && touch /var/log/cron.log
COPY --from=alcapone1933/shoutrrr:latest /usr/local/bin/shoutrrr /usr/local/bin/shoutrrr
RUN cd /data && chmod +x *.sh && mv /data/entrypoint.sh /usr/local/bin/entrypoint.sh && \
mv /data/cronjob /etc/cron.d/container_cronjob && mv /data/healthcheck.sh /usr/local/bin/healthcheck.sh && touch /var/log/cron.log && ln -s /var/log/cron.log /data/cron.log
# VOLUME [ "/data" ]
WORKDIR /data
ENTRYPOINT ["/sbin/tini", "--", "/usr/local/bin/entrypoint.sh"]
HEALTHCHECK --interval=5s --timeout=30s --start-period=5s --retries=3 CMD curl -sSL --fail https://ipv64.net/ > /dev/null || exit 1
# HEALTHCHECK --interval=5s --timeout=30s --start-period=5s --retries=3 CMD curl -sSL --user-agent "${CURL_USER_AGENT}" --fail "https://ipv64.net" > /dev/null || exit 1
# HEALTHCHECK --interval=5s --timeout=30s --start-period=5s --retries=2 CMD /usr/local/bin/healthcheck.sh

View File

@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2022 alcapone1933
Copyright (c) 2023 alcapone1933
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
SOFTWARE.

179
README.md
View File

@@ -4,33 +4,65 @@
[![Build Status Branch Master](https://shields.cosanostra-cloud.de/drone/build/alcapone1933/docker-ddns-ipv64/master?logo=drone&label=build%20%5Bbranch%20master%5D&server=https%3A%2F%2Fdrone.docker-for-life.de)](https://drone.docker-for-life.de/alcapone1933/docker-ddns-ipv64/branches)
[![Docker Pulls](https://shields.cosanostra-cloud.de/docker/pulls/alcapone1933/ddns-ipv64?logo=docker&logoColor=blue)](https://hub.docker.com/r/alcapone1933/ddns-ipv64/tags)
![Docker Image Version (latest semver)](https://shields.cosanostra-cloud.de/docker/v/alcapone1933/ddns-ipv64?sort=semver&logo=docker&logoColor=blue&label=dockerhub%20version)
[![Website](https://shields.cosanostra-cloud.de/website?down_color=red&down_message=down&label=Status%20Webseite%20IPV64.NET&style=plastic&up_color=green&up_message=ready&url=https%3A%2F%2Fipv64.net%2F)](https://ipv64.net/)
[![Website](https://shields.cosanostra-cloud.de/website?down_color=red&down_message=DOWN&label=Webseite%20IPV64.NET&up_color=green&up_message=UP&url=https%3A%2F%2Fipv64.net%2F)](https://ipv64.net/)
&nbsp;
# DDNS Updater in Docker für Free DynDNS [IPv64.net](https://ipv64.net/) -NUR FÜR IPV4-
# DDNS Updater in Docker für Free DynDNS [IPv64.net](https://ipv64.net/) - NUR FÜR IPV4 -
Dieser Docker Container ist ein DDNS Updater für Free DynDNS - ipv64.net.
Bei Änderung der ipv4 Adresse am Standort, wird die neue ipv4 Adresse als A-Record an ipv64.net geschickt.
Bei einer Änderung der ipv4 Adresse am Standort wird die neue ipv4 Adresse als A-Record an ipv64.net geschickt.
Wenn sie dieses Docker Projekt nutzen möchten, ändern sie die Environments vor dem starten des Docker Containers.
Wenn Du dieses Docker Projekt nutzen möchtest, ändere bitte die Environments vor dem Starten des Docker Containers.
&nbsp;
* Hier bitte deine DOMAIN eintragen (ersetzen) die unter https://ipv64.net/dyndns.php erstellt wurde Z.B "deine-domain.ipv64.net"
***
## Erklärung
### Domain
* Hier bitte deine DOMAIN eintragen (ersetzen), die unter https://ipv64.net/dyndns.php erstellt wurde, z.B "deine-domain.ipv64.net"
`-e "DOMAIN_IPV64=deine-domain.ipv64.net"`
* Wenn sie mehrer DOMAINS eintragen wollen bitte mit Komma trennen
* Wenn Du mehrere DOMAINS eintragen willst, bitte mit Komma trennen:
`-e "DOMAIN_IPV64=deine-domain.ipv64.net,deine-domain.ipv64.de"`
* Hier bitte dein DOMAIN KEY bzw. DynDNS Updatehash eintragen (ersetzen). Zu finden ist dieser unter https://ipv64.net/dyndns.php z.B "1234567890abcdefghijklmn"
&nbsp;
### Domain Praefix
* Wenn Du einen DOMAIN PRAEFIX verwenden willst, dann benutze die Variablen ***DOMAIN_PRAEFIX_YES=yes*** und ***DOMAIN_PRAEFIX***
`-e "DOMAIN_PRAEFIX_YES=yes"`
* Hier bitte nur ein DOMAIN PRAEFIX (subdomain) eintragen (ersetzen), das unter https://ipv64.net/dyndns.php erstellt wurde:
`-e "DOMAIN_PRAEFIX=ddns"`
⚠️ ***Solltest Du mehrere DOMAINS verwenden, dann bitte nur ein PRAEFIX eintragen (ersetzen)*** ⚠️
***Bei mehreren Domains wird immer derselbe PRAEFIX verwendet.***
***Beispiel: ddns.deine-domain.ipv64.net und ddns.deine-domain.ipv64.de***
&nbsp;
### Domain Key
* Hier bitte dein DOMAIN KEY bzw. DynDNS Updatehash eintragen (ersetzen). \
Zu finden ist dieser unter https://ipv64.net/dyndns.php z.B "1234567890abcdefghijklmn"
`-e "DOMAIN_KEY=1234567890abcdefghijklmn"`
&nbsp;
***
## Docker CLI
```bash
@@ -44,7 +76,14 @@ docker run -d \
alcapone1933/ddns-ipv64:latest
-e "DOMAIN_IPV64=deine-domain.ipv64.net,deine-domain.ipv64.de"
-e "DOMAIN_IPV64=deine-domain.ipv64.net,deine-domain.ipv64.de" \
-e "DOMAIN_PRAEFIX_YES=yes" \
"⚠️ Hier bitte nur ein DOMAIN PRAEFIX (subdomain) eintragen (ersetzen) ⚠️"
-e "DOMAIN_PRAEFIX=ddns" \
-e "SHOUTRRR_URL=" \
-e "SHOUTRRR_SKIP_TEST=no" \
-e "NAME_SERVER=ns1.ipv64.net" \
```
## Docker Compose
@@ -58,48 +97,134 @@ services:
restart: always
environment:
- "TZ=Europe/Berlin"
# Standard Abfrage Alle 15 Minuten nach der aktuellen ip
- "CRON_TIME=*/15 * * * *"
# Standard Abfrage Alle 30 Minuten für die Domain Adresse
- "CRON_TIME_DIG=*/30 * * * *"
# Hier bitte deine DOMAIN eintragen (ersetzen) die unter https://ipv64.net/dyndns.php erstellt wurde Z.B "deine-domain.ipv64.net"
- "DOMAIN_IPV64=deine-domain.ipv64.net"
# Wenn sie mehrer DOMAINS eintragen wollen bitte mit Komma trennen
# "DOMAIN_IPV64=deine-domain.ipv64.net,deine-domain.ipv64.de"
# Hier bitte dein DOMAIN KEY bzw. DynDNS Updatehash eintragen (ersetzen). Zu finden ist dieser unter https://ipv64.net/dyndns.php z.B "1234567890abcdefghijklmn"
# - "DOMAIN_IPV64=deine-domain.ipv64.net,deine-domain.ipv64.de"
# - "DOMAIN_PRAEFIX_YES=yes"
# ⚠️ Hier bitte nur ein DOMAIN PRAEFIX (subdomain) eintragen (ersetzen) ⚠️
# - "DOMAIN_PRAEFIX=ddns"
- "DOMAIN_KEY=1234567890abcdefghijklmn"
# - "SHOUTRRR_URL="
# - "SHOUTRRR_SKIP_TEST=no"
# - "NAME_SERVER=ns1.ipv64.net"
```
&nbsp;
&nbsp;
***
## Volume Parameter
| Name (Beschreibung) #Optional | Wert | Standard |
| ----------------------------- | ------- | --------------------- |
| Speicherort logs und Script | volume | ddns-ipv64_data:/data |
| Speicherort logs und script | volume | ddns-ipv64_data:/data |
| | | /dein Pfad:/data |
* * *
&nbsp;
## Env Parameter
| Name (Beschreibung) | Wert | Standard | Beispiel |
| ---------------------------------------------------------------------------------------------- | --------------- | ------------------ | -------------------------------------------- |
| Zeitzone | TZ | Europe/Berlin | Europe/Berlin |
| Zeitliche Abfrage für die aktuelle IP | CRON_TIME | */15 * * * * | */15 * * * * |
| Zeitliche Abfrage auf die Domain (dig DOMAIN_IPV64 A) | CRON_TIME_DIG | */30 * * * * | */30 * * * * |
| DOMAIN KEY: DEIN DOMAIN KEY bzw. DynDNS Updatehash zu fiden unter https://ipv64.net/dyndns.php | DOMAIN_KEY | ------------------ | 1234567890abcdefghijklmn |
| DEINE DOMAIN: z.b. deine-domain.ipv64.net zu fiden unter https://ipv64.net/dyndns.php | DOMAIN_IPV64 | ------------------ | deine-domain.ipv64.net |
| DEINE DOMAINS: z.b. deine-domain.ipv64.net,deine-domain.ipv64.de | DOMAIN_IPV64 | ------------------ | deine-domain.ipv64.net,deine-domain.ipv64.de |
| Name (Beschreibung) | Wert | Standard | Beispiel |
| ------------------------------------------------------------------------------------------------- | ------------------ | ------------------ | -------------------------------------------- |
| Zeitzone | TZ | Europe/Berlin | Europe/Berlin |
| Zeitliche Abfrage für die aktuelle IP | CRON_TIME | */15 * * * * | */15 * * * * |
| Zeitliche Abfrage auf die Domain (dig DOMAIN_IPV64 A) | CRON_TIME_DIG | */30 * * * * | */30 * * * * |
| DOMAIN KEY: DEIN DOMAIN KEY bzw. DynDNS Updatehash zu finden unter https://ipv64.net/dyndns.php | DOMAIN_KEY | ------------------ | 1234567890abcdefghijklmn |
| DEINE DOMAIN: z.b. deine-domain.ipv64.net zu finden unter https://ipv64.net/dyndns.php | DOMAIN_IPV64 | ------------------ | deine-domain.ipv64.net |
| DEINE DOMAINS: z.b. deine-domain.ipv64.net, deine-domain.ipv64.de | DOMAIN_IPV64 | ------------------ | deine-domain.ipv64.net,deine-domain.ipv64.de |
| DOMAIN PRAEFIX YES: Damit wird das Domain PRAEFIX aktiv genutzt | DOMAIN_PRAEFIX_YES | no | yes (yes oder no) |
| DEIN DOMAIN PRAEFIX (subdomain) : ⚠️ Nur ein Praefix verwenden ⚠️ z.b. ddns | DOMAIN_PRAEFIX | ------------------ | ddns |
| IP CHECK: Die IP-Adresse der Domain wird überprüft | IP_CHECK | yes | yes (yes oder no) |
| SHOUTRRR URL: Deine Shoutrrr URL als Benachrichtigungsdienst z.b ( gotify,discord,telegram,email) | SHOUTRRR_URL | ------------------ | [Shoutrrr-Beispiele](#shoutrrr-beispiele) |
| SHOUTRRR_SKIP_TEST: Beim Start des Containers wird keine Testnachricht gesendet | SHOUTRRR_SKIP_TEST | no | no (yes oder no) |
| NAME_SERVER: : Der Nameserver, um die IP-Adresse Ihrer Domain zu überprüfen | NAME_SERVER | ns1.ipv64.net | ns1.ipv64.net |
* * *
&nbsp;
## Shoutrrr Beispiele
Die Nachricht wird fest vom Script erstellt. \
Sie können den Betreff (titel) frei wählen wie im Beispiel genannt. \
So könnte die Nachricht ausehen.
```txt
Betreff: DDNS IPV64 IP UPDATE
# Die Nachricht wird fest vom Script erstellt.
Nachricht: DOCKER DDNS UPDATER IPV64.NET - IP UPDATE !!!
DATUM UPDATE !!!
Update IP=IP - Alte-IP=IP
DOMAIN: DOMAIN
----------------------------------------------------------
Nachricht: DOCKER DDNS UPDATER IPV64.NET - IP UPDATE !!!
2022-12-27 14:40:59 UPDATE !!!
Update IP=1.0.0.1 - Alte-IP=1.1.1.1
DOMAIN: deine-domain.ipv64.net
Nachricht: DOCKER DDNS UPDATER IPV64.NET - IP UPDATE !!!
2022-12-27 14:40:59 UPDATE !!!
Update IP=1.0.0.1 - Alte-IP=1.1.1.1
DOMAIN mit PRAEFIX: ddnd.deine-domain.ipv64.net
```
Das sind Beispiele für Shoutrrr als Benachrichtigungsdienst, für weitere Services infos fidetest du hier [Shoutrrr](https://containrrr.dev/shoutrrr/latest/services/overview/)
| Service Name | URL Beispiel |
| ------------ | ------------------------------------------------------------------------------------------------- |
| gotify | `gotify://<url domain.de>/<token>/?title=<title>&priority=<priority>` |
| discord | `discord://<token>@<webhook id>?title=<title>` |
| telegram | `telegram://<token>@telegram/?chats=<chad_id>&title=<title>` |
| smtp (email) | `smtp://<username>:<password>@<host>:<port>/?from=<sender_email>&to=<to_email>&subject=<subject>` |
| Service Name | URL Beispiel (Beispiel text) |
| ------------ | ----------------------------------------------------------------------------------------------------------------------------- |
| gotify | `gotify://domain.de/123456abc/?title=DDNS+IPV64+IP+UPDATE&priority=5` |
| discord | `discord://123456abc@555555555555555?title=DDNS+IPV64+IP+UPDATE` |
| telegram | `telegram://1111111111:123456abc@telegram/?chats=5555555555&title=DDNS+IPV64+IP+UPDATE` |
| smtp (email) | `smtp://noreply@domain.de:password@mail.domain.de:587/?from=noreply@domain.de&to=user@domain.de&subject=DDNS+IPV64+IP+UPDATE` |
&nbsp;
### Du kannst die Shoutrrr URL auch generieren lassen
```bash
# $ docker run --rm -it alcapone1933/shoutrrr generate
#Error: no service specified
#Usage:
# shoutrrr generate [flags]
#
#Flags:
# -g, --generator string The generator to use (default "basic")
# -h, --help help for generate
# -p, --property stringArray Configuration property in key=value format
# -s, --service string The notification service to generate a URL for
#
#Available services:
# opsgenie, slack, teams, generic, googlechat, join, bark, logger, matrix, discord, mattermost, rocketchat, pushbullet, pushover, smtp, telegram, zulip, gotify, hangouts, ifttt
# docker run --rm -it alcapone1933/shoutrrr generate gotify
docker run --rm -it alcapone1933/shoutrrr generate
# TEST
# $ docker run --rm -it alcapone1933/shoutrrr send --verbose --url "< Shoutrrr URL >" --message "DOCKER DDNS UPDATER IPV64.NET"
docker run --rm -it alcapone1933/shoutrrr send --verbose --url "< Shoutrrr URL >" --message "DOCKER DDNS UPDATER IPV64.NET"
```
<details>
<summary markdown="span">DEMO Shoutrrr URL generieren</summary>
<img src="demo/shoutrrr-demo.gif" width="1050" height="400">
</details>
&nbsp;
## DEMO
<img src="demo/demo.gif" width="700" height="400">

View File

@@ -1,4 +1,6 @@
# Cronjob DDNS Updater ipv64.net
*/15 * * * * /bin/bash /data/ddns-update.sh >> /var/log/cron.log 2>&1
# */30 * * * * sleep 20 && echo "`date +%Y-%m-%d\ %H:%M:%S` IP CHECK - Deine DOMAIN ${DOMAIN_IPV64} HAT DIE IP=`dig +short ${DOMAIN_IPV64} A @ns1.ipv64.net`" >> /var/log/cron.log 2>&1
*/30 * * * * sleep 20 && for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "`date +%Y-%m-%d\ %H:%M:%S` IP CHECK - Deine DOMAIN ${DOMAIN} HAT DIE IP=`dig +short ${DOMAIN} A @ns1.ipv64.net`" >> /var/log/cron.log 2>&1; done
# */15 * * * * /bin/bash /data/ddns-update.sh >> /var/log/cron.log 2>&1
# */30 * * * * sleep 20 && /bin/bash /data/domain-ip-scheck.sh >> /var/log/cron.log 2>&1
# */30 * * * * sleep 20 && echo "`date +%Y-%m-%d\ %H:%M:%S` IP CHECK - Deine DOMAIN ${DOMAIN_IPV64} HAT DIE IP=`dig +short ${DOMAIN_IPV64} A @${NAME_SERVER}`" >> /var/log/cron.log 2>&1
# */30 * * * * sleep 20 && for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "`date +%Y-%m-%d\ %H:%M:%S` IP CHECK - Deine DOMAIN ${DOMAIN} HAT DIE IP=`dig +short ${DOMAIN} A @${NAME_SERVER}`" >> /var/log/cron.log 2>&1; done
# */30 * * * * sleep 20 && for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "`date +%Y-%m-%d\ %H:%M:%S` IP CHECK - Deine DOMAIN mit PRAEFIX ${DOMAIN_PRAEFIX}.${DOMAIN} HAT DIE IP=`dig +short ${DOMAIN_PRAEFIX}.${DOMAIN} A @${NAME_SERVER}`" >> /var/log/cron.log 2>&1; done

View File

@@ -0,0 +1,62 @@
#!/usr/bin/env bash
DATUM=$(date +%Y-%m-%d\ %H:%M:%S)
# if ! curl -4sf --user-agent "${CURL_USER_AGENT}" "https://ipv64.net" 2>&1 > /dev/null; then
if ! curl -4sf --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/ipcheck.php" 2>&1 > /dev/null; then
echo "$DATUM FEHLER !!! - 404 Sie haben kein Netzwerk oder Internetzugang oder die Webseite ipv64.net ist nicht erreichbar"
exit 1
fi
PFAD="/data"
# IP=$(curl -4ssL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?howismyip" | jq -r 'to_entries[] | "\(.value)"')
IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/ipcheck.php?ipv4")
UPDIP=$(cat $PFAD/updip.txt)
sleep 1
if [ "$IP" == "$UPDIP" ]; then
echo "$DATUM KEIN UPDATE - Aktuelle IP=$UPDIP"
else
echo "$DATUM UPDATE !!! ..."
echo "$DATUM UPDATE !!! - Update IP=$IP - Alte-IP=$UPDIP"
sleep 1
echo "$IP" > $PFAD/updip.txt
# curl -4sSL "https://ipv64.net/update.php?dkey=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&praefix=${DOMAIN_PRAEFIX}&ip=${IP}&output=min"
UPDATE_IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?dkey=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&praefix=${DOMAIN_PRAEFIX}&ip=${IP}&output=min")
# if [ "$UPDATE_IP" = "ok" ] ; then
if [[ "$UPDATE_IP" =~ (nochg|good|ok) ]] ; then
echo "$DATUM UPDATE !!! - UPDATE IP=$IP AN IPV64.NET GESENDET"
else
echo "$DATUM UPDATE !!! - UPDATE IP=$IP NICHT GESENTET"
fi
# curl -4sSL https://ipv64.net/update.php?dkey=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&praefix=${DOMAIN_PRAEFIX}&ip=<ipaddr>&ip6=<ip6addr>&output=min
fi
sleep 5
# Nachpruefung ob der DOMAIN Eintrag richtig gesetzt ist
function CHECK_A_DOMAIN() {
DATUM=$(date +%Y-%m-%d\ %H:%M:%S)
UPDIP=$(cat $PFAD/updip.txt)
# IP=$(curl -4s https://ipv64.net/wieistmeineip.php | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | tail -n 1)
# IP=$(curl -4ssL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?howismyip" | jq -r 'to_entries[] | "\(.value)"')
IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/ipcheck.php?ipv4")
DOMAIN_CHECK=$(dig +short ${DOMAIN_PRAEFIX}.${DOMAIN_IPV64} A @${NAME_SERVER})
sleep 1
if [ "$IP" == "$DOMAIN_CHECK" ]; then
echo "$DATUM CHECK - DOMAIN mit PRAEFIX HAT DEN A-RECORD=`dig +noall +answer ${DOMAIN_PRAEFIX}.${DOMAIN_IPV64} A @${NAME_SERVER}`"
else
echo "$DATUM UPDATE !!! ..."
echo "$DATUM UPDATE !!! - NACHEINTRAG DIE IP WIRD NOCH EINMAL GESETZT"
echo "$DATUM UPDATE !!! - Update IP=$IP - Alte-IP=$UPDIP"
sleep 5
# curl -4sSL "https://ipv64.net/update.php?dkey=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&praefix=${DOMAIN_PRAEFIX}&ip=${IP}&output=min"
UPDATE_IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?dkey=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&praefix=${DOMAIN_PRAEFIX}&ip=${IP}&output=min")
# if [ "$UPDATE_IP" = "ok" ] ; then
if [[ "$UPDATE_IP" =~ (nochg|good|ok) ]] ; then
echo "$DATUM UPDATE !!! - UPDATE IP=$IP AN IPV64.NET GESENDET"
else
echo "$DATUM UPDATE !!! - UPDATE IP=$IP NICHT GESENTET"
fi
# curl -4sSL https://ipv64.net/update.php?dkey=${DOMAIN_KEY}=${DOMAIN_IPV64}&praefix=${DOMAIN_PRAEFIX}&ip=<ipaddr>&ip6=<ip6addr>&output=min
sleep 15
echo "$DATUM NACHEINTRAG - DOMAIN mit PRAEFIX HAT DEN A-RECORD=`dig +noall +answer ${DOMAIN_PRAEFIX}.${DOMAIN_IPV64} A @${NAME_SERVER}`"
fi
}
CHECK_A_DOMAIN

63
data/ddns-update-dkey.sh Normal file
View File

@@ -0,0 +1,63 @@
#!/usr/bin/env bash
DATUM=$(date +%Y-%m-%d\ %H:%M:%S)
# if ! curl -4sf --user-agent "${CURL_USER_AGENT}" "https://ipv64.net" 2>&1 > /dev/null; then
if ! curl -4sf --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/ipcheck.php" 2>&1 > /dev/null; then
echo "$DATUM FEHLER !!! - 404 Sie haben kein Netzwerk oder Internetzugang oder die Webseite ipv64.net ist nicht erreichbar"
exit 1
fi
PFAD="/data"
# IP=$(curl -4s https://ipv64.net/wieistmeineip.php | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | tail -n 1)
# IP=$(curl -4ssL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?howismyip" | jq -r 'to_entries[] | "\(.value)"')
IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/ipcheck.php?ipv4")
UPDIP=$(cat $PFAD/updip.txt)
sleep 1
if [ "$IP" == "$UPDIP" ]; then
echo "$DATUM KEIN UPDATE - Aktuelle IP=$UPDIP"
else
echo "$DATUM UPDATE !!! ..."
echo "$DATUM UPDATE !!! - Update IP=$IP - Alte-IP=$UPDIP"
sleep 1
echo "$IP" > $PFAD/updip.txt
# curl -4sSL "https://ipv64.net/update.php?dkey=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=${IP}&output=min"
UPDATE_IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?dkey=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=${IP}&output=min")
# if [ "$UPDATE_IP" = "ok" ] ; then
if [[ "$UPDATE_IP" =~ (nochg|good|ok) ]] ; then
echo "$DATUM UPDATE !!! - UPDATE IP=$IP AN IPV64.NET GESENDET"
else
echo "$DATUM UPDATE !!! - UPDATE IP=$IP NICHT GESENTET"
fi
# curl -4sSL https://ipv64.net/update.php?dkey=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=<ipaddr>&ip6=<ip6addr>&output=min
fi
sleep 5
# Nachpruefung ob der DOMAIN Eintrag richtig gesetzt ist
function CHECK_A_DOMAIN() {
DATUM=$(date +%Y-%m-%d\ %H:%M:%S)
UPDIP=$(cat $PFAD/updip.txt)
# IP=$(curl -4s https://ipv64.net/wieistmeineip.php | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | tail -n 1)
# IP=$(curl -4ssL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?howismyip" | jq -r 'to_entries[] | "\(.value)"')
IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/ipcheck.php?ipv4")
DOMAIN_CHECK=$(dig +short ${DOMAIN_IPV64} A @${NAME_SERVER})
sleep 1
if [ "$IP" == "$DOMAIN_CHECK" ]; then
echo "$DATUM CHECK - DOMAIN HAT DEN A-RECORD=`dig +noall +answer ${DOMAIN_IPV64} A @${NAME_SERVER}`"
else
echo "$DATUM UPDATE !!! ..."
echo "$DATUM UPDATE !!! - NACHEINTRAG DIE IP WIRD NOCH EINMAL GESETZT"
echo "$DATUM UPDATE !!! - Update IP=$IP - Alte-IP=$UPDIP"
sleep 5
# curl -4sSL "https://ipv64.net/update.php?dkey=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=${IP}&output=min"
UPDATE_IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?dkey=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=${IP}&output=min")
# if [ "$UPDATE_IP" = "ok" ] ; then
if [[ "$UPDATE_IP" =~ (nochg|good|ok) ]] ; then
echo "$DATUM UPDATE !!! - UPDATE IP=$IP AN IPV64.NET GESENDET"
else
echo "$DATUM UPDATE !!! - UPDATE IP=$IP NICHT GESENTET"
fi
# curl -4sSL https://ipv64.net/update.php?dkey=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=<ipaddr>&ip6=<ip6addr>&output=min
sleep 15
echo "$DATUM NACHEINTRAG - DOMAIN HAT DEN A-RECORD=`dig +noall +answer ${DOMAIN_IPV64} A @${NAME_SERVER}`"
fi
}
CHECK_A_DOMAIN

164
data/ddns-update-praefix.sh Normal file
View File

@@ -0,0 +1,164 @@
#!/usr/bin/env bash
PFAD="/data"
DATUM=$(date +%Y-%m-%d\ %H:%M:%S)
# set -e
# if ! curl -4sf --user-agent "${CURL_USER_AGENT}" "https://ipv64.net" 2>&1 > /dev/null; then
if ! curl -4sf --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/ipcheck.php" 2>&1 > /dev/null; then
echo "$DATUM FEHLER !!! - 404 Sie haben kein Netzwerk oder Internetzugang oder die Webseite ipv64.net ist nicht erreichbar"
STATUS="OK"
NAMESERVER_CHECK=$(dig +timeout=1 @${NAME_SERVER} 2> /dev/null)
echo "$NAMESERVER_CHECK" | grep -s -q "timed out" && { NAMESERVER_CHECK="Timeout" ; STATUS="FAIL" ; }
if [ "${STATUS}" = "FAIL" ] ; then
echo "$DATUM FEHLER !!! - 404 NAMESERVER ${NAME_SERVER} ist nicht ist nicht erreichbar. Sie haben kein Netzwerk oder Internetzugang"
echo "=============================================================================================="
fi
if ! curl -4sf "https://google.de" 2>&1 > /dev/null; then
echo "$DATUM FEHLER !!! - 404 Sie haben kein Netzwerk oder Internetzugang oder die Webseite google.de ist nicht erreichbar"
echo "=============================================================================================="
exit 1
else
IP_INFO=$(curl -4sf "https://ipinfo.io/ip" 2>&1)
UPDIP=$(cat $PFAD/updip.txt)
echo "$DATUM INFO !!! - Die Webseite google.de ist erreichbar. Ihre Aktuelle IP laut IPINFO.IO=$IP_INFO"
if [ "$IP_INFO" = "$UPDIP" ]; then
echo > /dev/null
else
if [ -z "${SHOUTRRR_URL:-}" ] ; then
echo > /dev/null
else
echo "$DATUM SHOUTRRR - SHOUTRRR NACHRICHT wird gesendet"
DOMAIN_NOTIFY=$(for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "DOMAIN mit PRAEFIX: ${DOMAIN_PRAEFIX}.${DOMAIN} "; done)
if ! /usr/local/bin/shoutrrr send --url "${SHOUTRRR_URL}" --message "`echo -e "$DATUM INFO !!! \n\nIPV64.NET IST NICHT ERREICHBAR \nIHRE Aktuelle IP laut IPINFO.IO=$IP_INFO \n${DOMAIN_NOTIFY}"`" 2> /dev/null; then
echo "$DATUM FEHLER !!! - SHOUTRRR NACHRICHT konnte nicht gesendet werden"
else
echo "$DATUM SHOUTRRR - SHOUTRRR NACHRICHT wurde gesendet"
fi
fi
fi
echo "$IP_INFO" > $PFAD/updip.txt
echo "=============================================================================================="
exit 1
fi
fi
# IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?howismyip" | jq -r 'to_entries[] | "\(.value)"')
IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/ipcheck.php?ipv4")
UPDIP=$(cat $PFAD/updip.txt)
sleep 1
function SHOUTRRR_NOTIFY() {
echo "$DATUM SHOUTRRR - SHOUTRRR NACHRICHT wird gesendet"
NOTIFY="
DOCKER DDNS UPDATER IPV64.NET - IP UPDATE !!!
\n
`for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "$DATUM UPDATE !!! \nUpdate IP=$IP - Alte-IP=$UPDIP \nDOMAIN mit PRAEFIX: ${DOMAIN_PRAEFIX}.${DOMAIN} \n"; done`"
if ! /usr/local/bin/shoutrrr send --url "${SHOUTRRR_URL}" --message "`echo -e "${NOTIFY}"`" 2> /dev/null; then
echo "$DATUM FEHLER !!! - SHOUTRRR NACHRICHT konnte nicht gesendet werden"
else
echo "$DATUM SHOUTRRR - SHOUTRRR NACHRICHT wurde gesendet"
fi
}
if [ "$IP" == "$UPDIP" ]; then
echo "$DATUM KEIN UPDATE - Aktuelle IP=$UPDIP"
else
echo "$DATUM UPDATE !!! ..."
echo "$DATUM UPDATE !!! - Update IP=$IP - Alte-IP=$UPDIP"
sleep 1
# curl -4sSL "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&praefix=${DOMAIN_PRAEFIX}&ip=${IP}&output=min"
UPDATE_IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&praefix=${DOMAIN_PRAEFIX}&ip=${IP}&output=min")
# if [ "$UPDATE_IP" = "ok" ] ; then
if [[ "$UPDATE_IP" =~ (nochg|good|ok) ]] ; then
echo "$DATUM UPDATE !!! - UPDATE IP=$IP WURDE AN IPV64.NET GESENDET"
if [ -z "${SHOUTRRR_URL:-}" ] ; then
echo > /dev/null
else
SHOUTRRR_NOTIFY
fi
echo "$IP" > $PFAD/updip.txt
else
echo "$DATUM FEHLER !!! - UPDATE IP=$IP WURDE NICHT AN IPV64.NET GESENTET"
CHECK_INTERVALL=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&praefix=${DOMAIN_PRAEFIX}&ip=${IP}" | grep -o "Updateintervall")
if [ "$CHECK_INTERVALL" == "Updateintervall" ]; then
echo "$DATUM FEHLER !!! - Dein DynDNS Update Limit ist wohl erreicht"
echo "$DATUM INFO !!! - Es kann erst wieder ein Update gesedet werden wenn dein DynDNS Update Limit im grünen Bereich ist"
fi
if [ -z "${SHOUTRRR_URL:-}" ] ; then
echo > /dev/null
else
echo "$DATUM SHOUTRRR - SHOUTRRR NACHRICHT wird gesendet"
DOMAIN_NOTIFY=$(for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "DOMAIN mit PRAEFIX: ${DOMAIN_PRAEFIX}.${DOMAIN} "; done)
if ! /usr/local/bin/shoutrrr send --url "${SHOUTRRR_URL}" --message "`echo -e "$DATUM INFO !!! \n\nUPDATE IP=$IP WURDE NICHT AN IPV64.NET GESENTET \n${DOMAIN_NOTIFY}"`" 2> /dev/null; then
echo "$DATUM FEHLER !!! - SHOUTRRR NACHRICHT konnte nicht gesendet werden"
else
echo "$DATUM SHOUTRRR - SHOUTRRR NACHRICHT wurde gesendet"
fi
fi
fi
# curl -4sSL https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}praefix=${DOMAIN_PRAEFIX}&ip=<ipaddr>&ip6=<ip6addr>&output=min
fi
echo "=============================================================================================="
sleep 5
# Nachpruefung ob der DOMAIN Eintrag richtig gesetzt ist
function CHECK_A_DOMAIN() {
DATUM=$(date +%Y-%m-%d\ %H:%M:%S)
UPDIP=$(cat $PFAD/updip.txt)
# IP=$(curl -4s https://ipv64.net/wieistmeineip.php | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | tail -n 1)
# IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?howismyip" | jq -r 'to_entries[] | "\(.value)"')
IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/ipcheck.php?ipv4")
# DOMAIN_CHECK=$(dig +short ${DOMAIN_IPV64} A @${NAME_SERVER})
DOMAIN_CHECK=$(for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do dig +short ${DOMAIN_PRAEFIX}.${DOMAIN} A @${NAME_SERVER}; done | tail -n 1)
sleep 1
if [ "$IP" == "$DOMAIN_CHECK" ]; then
# echo "$DATUM CHECK - DOMAIN mit PRAEFIX HAT DEN A-RECORD=`dig +noall +answer ${DOMAIN_PRAEFIX}.${DOMAIN_IPV64} A @${NAME_SERVER}`"
for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "$DATUM CHECK - DOMAIN mit PRAEFIX HAT DEN A-RECORD=`dig +noall +answer ${DOMAIN_PRAEFIX}.${DOMAIN} A @${NAME_SERVER}`"; done
else
echo "$DATUM UPDATE !!! ..."
echo "$DATUM UPDATE !!! - NACHEINTRAG DIE IP WIRD NOCH EINMAL GESETZT"
echo "$DATUM UPDATE !!! - Update IP=$IP - Alte-IP=$UPDIP"
sleep 5
# curl -4sSL "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&praefix=${DOMAIN_PRAEFIX}&ip=${IP}&output=min"
UPDATE_IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&praefix=${DOMAIN_PRAEFIX}&ip=${IP}&output=min")
# if [ "$UPDATE_IP" = "ok" ] ; then
if [[ "$UPDATE_IP" =~ (nochg|good|ok) ]] ; then
echo "$DATUM UPDATE !!! - UPDATE IP=$IP WURDE AN IPV64.NET GESENDET"
if [ -z "${SHOUTRRR_URL:-}" ] ; then
echo > /dev/null
else
SHOUTRRR_NOTIFY
fi
echo "$IP" > $PFAD/updip.txt
# curl -4sSL https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&praefix=${DOMAIN_PRAEFIX}&ip=<ipaddr>&ip6=<ip6addr>&output=min
sleep 15
# echo "$DATUM NACHEINTRAG - DOMAIN mit PRAEFIX HAT DEN A-RECORD=`dig +noall +answer ${DOMAIN_PRAEFIX}.${DOMAIN_IPV64} A @${NAME_SERVER}`"
for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "$DATUM NACHEINTRAG - DOMAIN mit PRAEFIX HAT DEN A-RECORD=`dig +noall +answer ${DOMAIN_PRAEFIX}.${DOMAIN} A @${NAME_SERVER}`"; done
else
echo "$DATUM FEHLER !!! - UPDATE IP=$IP WURDE NICHT AN IPV64.NET GESENTET"
CHECK_INTERVALL=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&praefix=${DOMAIN_PRAEFIX}&ip=${IP}" | grep -o "Updateintervall")
if [ "$CHECK_INTERVALL" == "Updateintervall" ]; then
echo "$DATUM FEHLER !!! - Dein DynDNS Update Limit ist wohl erreicht"
echo "$DATUM INFO !!! - Es kann erst wieder ein Update gesedet werden wenn dein DynDNS Update Limit im grünen Bereich ist"
fi
if [ -z "${SHOUTRRR_URL:-}" ] ; then
echo > /dev/null
else
echo "$DATUM SHOUTRRR - SHOUTRRR NACHRICHT wird gesendet"
DOMAIN_NOTIFY=$(for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "DOMAIN mit PRAEFIX: ${DOMAIN_PRAEFIX}.${DOMAIN} "; done)
if ! /usr/local/bin/shoutrrr send --url "${SHOUTRRR_URL}" --message "`echo -e "$DATUM INFO !!! \n\nUPDATE IP=$IP WURDE NICHT AN IPV64.NET GESENTET \n${DOMAIN_NOTIFY}"`" 2> /dev/null; then
echo "$DATUM FEHLER !!! - SHOUTRRR NACHRICHT konnte nicht gesendet werden"
else
echo "$DATUM SHOUTRRR - SHOUTRRR NACHRICHT wurde gesendet"
fi
fi
fi
fi
}
if [[ "$IP_CHECK" =~ (YES|yes|Yes) ]] ; then
CHECK_A_DOMAIN
else
echo > /dev/null
fi
echo "=============================================================================================="

View File

@@ -1,63 +1,165 @@
#!/usr/bin/env bash
DATUM=$(date +%Y-%m-%d\ %H:%M:%S)
if ! curl -sSL --fail https://ipv64.net/ > /dev/null; then
echo "$DATUM FEHLER !!! - 404 Sie haben kein Netzwerk oder Internetzugang"
exit 0
fi
PFAD="/data"
# IP=$(curl -4s https://ipv64.net/wieistmeineip.php | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | tail -n 1)
IP=$(curl -4ssL https://ipv64.net/update.php?howismyip | jq -r 'to_entries[] | "\(.value)"')
UPDIP=$(cat $PFAD/updip.txt)
DATUM=$(date +%Y-%m-%d\ %H:%M:%S)
# set -e
# if ! curl -4sf --user-agent "${CURL_USER_AGENT}" "https://ipv64.net" 2>&1 > /dev/null; then
if ! curl -4sf --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/ipcheck.php" 2>&1 > /dev/null; then
echo "$DATUM FEHLER !!! - 404 Sie haben kein Netzwerk oder Internetzugang oder die Webseite ipv64.net ist nicht erreichbar"
STATUS="OK"
NAMESERVER_CHECK=$(dig +timeout=1 @${NAME_SERVER} 2> /dev/null)
echo "$NAMESERVER_CHECK" | grep -s -q "timed out" && { NAMESERVER_CHECK="Timeout" ; STATUS="FAIL" ; }
if [ "${STATUS}" = "FAIL" ] ; then
echo "$DATUM FEHLER !!! - 404 NAMESERVER ${NAME_SERVER} ist nicht ist nicht erreichbar. Sie haben kein Netzwerk oder Internetzugang"
echo "=============================================================================================="
fi
if ! curl -4sf "https://google.de" 2>&1 > /dev/null; then
echo "$DATUM FEHLER !!! - 404 Sie haben kein Netzwerk oder Internetzugang oder die Webseite google.de ist nicht erreichbar"
echo "=============================================================================================="
exit 1
else
IP_INFO=$(curl -4sf "https://ipinfo.io/ip" 2>&1)
UPDIP=$(cat $PFAD/updip.txt)
echo "$DATUM INFO !!! - Die Webseite google.de ist erreichbar. Ihre Aktuelle IP laut IPINFO.IO=$IP_INFO"
if [ "$IP_INFO" = "$UPDIP" ]; then
echo > /dev/null
else
if [ -z "${SHOUTRRR_URL:-}" ] ; then
echo > /dev/null
else
echo "$DATUM SHOUTRRR - SHOUTRRR NACHRICHT wird gesendet"
DOMAIN_NOTIFY=$(for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "DOMAIN: ${DOMAIN} "; done)
if ! /usr/local/bin/shoutrrr send --url "${SHOUTRRR_URL}" --message "`echo -e "$DATUM INFO !!! \n\nIPV64.NET IST NICHT ERREICHBAR \nIHRE Aktuelle IP laut IPINFO.IO=$IP_INFO \n${DOMAIN_NOTIFY}"`" 2> /dev/null; then
echo "$DATUM FEHLER !!! - SHOUTRRR NACHRICHT konnte nicht gesendet werden"
else
echo "$DATUM SHOUTRRR - SHOUTRRR NACHRICHT wurde gesendet"
fi
fi
fi
echo "$IP_INFO" > $PFAD/updip.txt
echo "=============================================================================================="
exit 1
fi
fi
# IP=$(curl -4s https://ipv64.net/wieistmeineip.php | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | tail -n 1)
# IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?howismyip" | jq -r 'to_entries[] | "\(.value)"')
IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/ipcheck.php?ipv4")
UPDIP=$(cat $PFAD/updip.txt)
sleep 1
function SHOUTRRR_NOTIFY() {
echo "$DATUM SHOUTRRR - SHOUTRRR NACHRICHT wird gesendet"
NOTIFY="
DOCKER DDNS UPDATER IPV64.NET - IP UPDATE !!!
\n
`for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "$DATUM UPDATE !!! \nUpdate IP=$IP - Alte-IP=$UPDIP \nDOMAIN: ${DOMAIN} \n"; done`"
if ! /usr/local/bin/shoutrrr send --url "${SHOUTRRR_URL}" --message "`echo -e "${NOTIFY}"`" 2> /dev/null; then
echo "$DATUM FEHLER !!! - SHOUTRRR NACHRICHT konnte nicht gesendet werden"
else
echo "$DATUM SHOUTRRR - SHOUTRRR NACHRICHT wurde gesendet"
fi
}
if [ "$IP" == "$UPDIP" ]; then
echo "$DATUM KEIN UPDATE - Aktuelle IP= $UPDIP"
echo "$DATUM KEIN UPDATE - Aktuelle IP=$UPDIP"
else
echo "$DATUM UPDATE !!! ..."
echo "$DATUM UPDATE !!! - Update IP= $IP - Alte-IP= $UPDIP"
echo "$DATUM UPDATE !!! - Update IP=$IP - Alte-IP=$UPDIP"
sleep 1
echo "$IP" > $PFAD/updip.txt
# curl -4sSL "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=${IP}&output=min"
UPDATE_IP=$(curl -4sSL "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=${IP}&output=min")
UPDATE_IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=${IP}&output=min")
# if [ "$UPDATE_IP" = "ok" ] ; then
if [[ "$UPDATE_IP" =~ (nochg|good|ok) ]] ; then
echo "$DATUM UPDATE !!! - UPDATE IP= $IP AN IPV64.NET GESENDET"
echo "$DATUM UPDATE !!! - UPDATE IP=$IP WURDE AN IPV64.NET GESENDET"
if [ -z "${SHOUTRRR_URL:-}" ] ; then
echo > /dev/null
else
SHOUTRRR_NOTIFY
fi
echo "$IP" > $PFAD/updip.txt
else
echo "$DATUM UPDATE !!! - UPDATE IP= $IP NICHT GESENTET"
echo "$DATUM FEHLER !!! - UPDATE IP=$IP WURDE NICHT AN IPV64.NET GESENTET"
CHECK_INTERVALL=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=${IP}" | grep -o "Updateintervall")
if [ "$CHECK_INTERVALL" == "Updateintervall" ]; then
echo "$DATUM FEHLER !!! - Dein DynDNS Update Limit ist wohl erreicht"
echo "$DATUM INFO !!! - Es kann erst wieder ein Update gesedet werden wenn dein DynDNS Update Limit im grünen Bereich ist"
fi
if [ -z "${SHOUTRRR_URL:-}" ] ; then
echo > /dev/null
else
echo "$DATUM SHOUTRRR - SHOUTRRR NACHRICHT wird gesendet"
DOMAIN_NOTIFY=$(for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "DOMAIN: ${DOMAIN} "; done)
if ! /usr/local/bin/shoutrrr send --url "${SHOUTRRR_URL}" --message "`echo -e "$DATUM INFO !!! \n\nUPDATE IP=$IP WURDE NICHT AN IPV64.NET GESENTET \n${DOMAIN_NOTIFY}"`" 2> /dev/null; then
echo "$DATUM FEHLER !!! - NACHRICHT konnte nicht gesendet werden"
else
echo "$DATUM SHOUTRRR - SHOUTRRR NACHRICHT wurde gesendet"
fi
fi
fi
# curl -4sSL https://ipv64.net/update.php?key=${DOMAIN_KEY}=${DOMAIN_IPV64}&ip=<ipaddr>&ip6=<ip6addr>&output=min
# curl -4sSL https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=<ipaddr>&ip6=<ip6addr>&output=min
fi
echo "=============================================================================================="
sleep 5
# Nachpruefung ob der DOMAIN Eintrag richtig gesetzt ist
function CHECK_A_DOMAIN() {
DATUM=$(date +%Y-%m-%d\ %H:%M:%S)
UPDIP=$(cat $PFAD/updip.txt)
# IP=$(curl -4s https://ipv64.net/wieistmeineip.php | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | tail -n 1)
IP=$(curl -4ssL https://ipv64.net/update.php?howismyip | jq -r 'to_entries[] | "\(.value)"')
# DOMAIN_CHECK=$(dig +short ${DOMAIN_IPV64} A @ns1.ipv64.net)
DOMAIN_CHECK=$(for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do dig +short ${DOMAIN} A @ns1.ipv64.net; done | tail -n 1)
# IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?howismyip" | jq -r 'to_entries[] | "\(.value)"')
IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/ipcheck.php?ipv4")
# DOMAIN_CHECK=$(dig +short ${DOMAIN_IPV64} A @${NAME_SERVER})
DOMAIN_CHECK=$(for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do dig +short ${DOMAIN} A @${NAME_SERVER}; done | tail -n 1)
sleep 1
if [ "$IP" == "$DOMAIN_CHECK" ]; then
# echo "$DATUM CHECK - DOMAIN HAT DEN A-RECORD= `dig +noall +answer ${DOMAIN_IPV64} A @ns1.ipv64.net`"
for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "$DATUM CHECK - DOMAIN HAT DEN A-RECORD= `dig +noall +answer ${DOMAIN} A @ns1.ipv64.net`"; done
# echo "$DATUM CHECK - DOMAIN HAT DEN A-RECORD=`dig +noall +answer ${DOMAIN_IPV64} A @${NAME_SERVER}`"
for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "$DATUM CHECK - DOMAIN HAT DEN A-RECORD=`dig +noall +answer ${DOMAIN} A @${NAME_SERVER}`"; done
else
echo "$DATUM UPDATE !!! ..."
echo "$DATUM UPDATE !!! - NACHEINTRAG DIE IP WIRD NOCH EINMAL GESETZT"
echo "$DATUM UPDATE !!! - Update IP= $IP - Alte-IP= $UPDIP"
echo "$DATUM UPDATE !!! - Update IP=$IP - Alte-IP=$UPDIP"
sleep 5
# curl -4sSL "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=${IP}&output=min"
UPDATE_IP=$(curl -4sSL "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=${IP}&output=min")
UPDATE_IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=${IP}&output=min")
# if [ "$UPDATE_IP" = "ok" ] ; then
if [[ "$UPDATE_IP" =~ (nochg|good|ok) ]] ; then
echo "$DATUM UPDATE !!! - UPDATE IP= $IP AN IPV64.NET GESENDET"
echo "$DATUM UPDATE !!! - UPDATE IP=$IP WURDE AN IPV64.NET GESENDET"
if [ -z "${SHOUTRRR_URL:-}" ] ; then
echo > /dev/null
else
SHOUTRRR_NOTIFY
fi
echo "$IP" > $PFAD/updip.txt
# curl -4sSL https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=<ipaddr>&ip6=<ip6addr>&output=min
sleep 15
# echo "$DATUM NACHEINTRAG - DOMAIN HAT DEN A-RECORD=`dig +noall +answer ${DOMAIN_IPV64} A @${NAME_SERVER}`"
for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "$DATUM NACHEINTRAG - DOMAIN HAT DEN A-RECORD=`dig +noall +answer ${DOMAIN} A @${NAME_SERVER}`"; done
else
echo "$DATUM UPDATE !!! - UPDATE IP= $IP NICHT GESENTET"
echo "$DATUM FEHLER !!! - UPDATE IP=$IP WURDE NICHT AN IPV64.NET GESENTET"
CHECK_INTERVALL=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=${IP}" | grep -o "Updateintervall")
if [ "$CHECK_INTERVALL" == "Updateintervall" ]; then
echo "$DATUM FEHLER !!! - Dein DynDNS Update Limit ist wohl erreicht"
echo "$DATUM INFO !!! - Es kann erst wieder ein Update gesedet werden wenn dein DynDNS Update Limit im grünen Bereich ist"
fi
if [ -z "${SHOUTRRR_URL:-}" ] ; then
echo > /dev/null
else
echo "$DATUM SHOUTRRR - SHOUTRRR NACHRICHT wird gesendet"
DOMAIN_NOTIFY=$(for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "DOMAIN: ${DOMAIN} "; done)
if ! /usr/local/bin/shoutrrr send --url "${SHOUTRRR_URL}" --message "`echo -e "$DATUM INFO !!! \n\nUPDATE IP=$IP WURDE NICHT AN IPV64.NET GESENTET \n${DOMAIN_NOTIFY}"`" 2> /dev/null; then
echo "$DATUM FEHLER !!! - SHOUTRRR NACHRICHT konnte nicht gesendet werden"
else
echo "$DATUM SHOUTRRR - SHOUTRRR NACHRICHT wurde gesendet"
fi
fi
fi
# curl -4sSL https://ipv64.net/update.php?key=${DOMAIN_KEY}=${DOMAIN_IPV64}&ip=<ipaddr>&ip6=<ip6addr>&output=min
sleep 15
# echo "$DATUM NACHEINTRAG - DOMAIN HAT DEN A-RECORD= `dig +noall +answer ${DOMAIN_IPV64} A @ns1.ipv64.net`"
for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "$DATUM NACHEINTRAG - DOMAIN HAT DEN A-RECORD= `dig +noall +answer ${DOMAIN} A @ns1.ipv64.net`"; done
fi
}
CHECK_A_DOMAIN
if [[ "$IP_CHECK" =~ (YES|yes|Yes) ]] ; then
CHECK_A_DOMAIN
else
echo > /dev/null
fi
echo "=============================================================================================="

28
data/domain-ip-scheck.sh Normal file
View File

@@ -0,0 +1,28 @@
#!/usr/bin/env bash
# set -e
DATUM=$(date +%Y-%m-%d\ %H:%M:%S)
# if ! curl -4sf --user-agent "${CURL_USER_AGENT}" "https://ipv64.net" 2>&1 > /dev/null; then
if ! curl -4sf --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/ipcheck.php" 2>&1 > /dev/null; then
echo "$DATUM FEHLER !!! - 404 Sie haben kein Netzwerk oder Internetzugang oder die Webseite ipv64.net ist nicht erreichbar"
echo "=============================================================================================="
exit 1
fi
STATUS="OK"
NAMESERVER_CHECK=$(dig +timeout=1 @${NAME_SERVER} 2> /dev/null)
echo "$NAMESERVER_CHECK" | grep -s -q "timed out" && { NAMESERVER_CHECK="Timeout" ; STATUS="FAIL" ; }
if [ "${STATUS}" = "FAIL" ] ; then
echo "$DATUM FEHLER !!! - 404 NAMESERVER ${NAME_SERVER} ist nicht ist nicht erreichbar. Sie haben kein Netzwerk oder Internetzugang"
echo "=============================================================================================="
exit 1
fi
if [[ "${DOMAIN_PRAEFIX_YES}" =~ (YES|yes|Yes) ]] ; then
for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do
echo "`date +%Y-%m-%d\ %H:%M:%S` IP CHECK - Deine DOMAIN mit PRAEFIX ${DOMAIN_PRAEFIX}.${DOMAIN} HAT DIE IP=`dig +short ${DOMAIN_PRAEFIX}.${DOMAIN} A @${NAME_SERVER}`" >> /var/log/cron.log 2>&1
done
else
for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do
echo "`date +%Y-%m-%d\ %H:%M:%S` IP CHECK - Deine DOMAIN ${DOMAIN} HAT DIE IP=`dig +short ${DOMAIN} A @${NAME_SERVER}`" >> /var/log/cron.log 2>&1
done
fi
echo "=============================================================================================="

View File

@@ -1,10 +1,19 @@
#!/usr/bin/env bash
# set -x
set -e
# set -e
DATUM=$(date +%Y-%m-%d\ %H:%M:%S)
# cleanup
cleanup() {
echo "================================ STOP DDNS UPDATER IPV64.NET ================================"
echo "=============================================================================================="
echo "========================= ###### ####### ####### ####### ========================="
echo "========================= # # # # # # # ========================="
echo "========================= # # # # # # ========================="
echo "========================= ##### # # # ###### ========================="
echo "========================= # # # # # ========================="
echo "========================= # # # # # # ========================="
echo "========================= ##### # ####### # ========================="
echo "=============================================================================================="
}
# Trap SIGTERM
@@ -12,50 +21,185 @@ trap 'cleanup' SIGTERM
echo -n "" > /var/log/cron.log
sleep 10
echo "================================ START DDNS UPDATER IPV64.NET ================================"
echo "=============================================================================================="
echo "================ ###### ######## ## ## ####### ## ## ================"
echo "================ ## ## ## ## ## ## ## ## ## ================"
echo "================ ## ## ## ## ## ## ## ## ================"
echo "================ ## ######## ## ## ######## ## ## ================"
echo "================ ## ## ## ## ## ## ######### ================"
echo "================ ## ## ## ## ## ## ## ================"
echo "================ ###### ## ### ####### ## ================"
echo "=============================================================================================="
if [[ "${DOMAIN_PRAEFIX_YES}" =~ (YES|yes|Yes) ]] ; then
if [ -z "${DOMAIN_PRAEFIX:-}" ] ; then
echo "$DATUM PRAEFIX - Sie haben kein DOMAIN PRAEFIX gesetzt, schaue unter https://ipv64.net/dyndns.php nach bei Domain"
sleep infinity
else
echo "$DATUM PRAEFIX - Sie haben ein DOMAIN PRAEFIX gesetzt"
fi
if [ -z "${DOMAIN_IPV64:-}" ] ; then
echo "$DATUM DOMAIN - Sie haben keine DOMAIN gesetzt, schaue unter https://ipv64.net/dyndns.php nach bei Domain"
sleep infinity
else
echo "$DATUM DOMAIN - Sie haben eine DOMAIN gesetzt"
for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "$DATUM DOMAIN - Deine DOMAIN mit PRAEFIX ${DOMAIN_PRAEFIX}.${DOMAIN}"; done
fi
else
if [ -z "${DOMAIN_IPV64:-}" ] ; then
echo "$DATUM DOMAIN - Sie haben keine DOMAIN gesetzt, schaue unter https://ipv64.net/dyndns.php nach bei Domain"
sleep infinity
else
echo "$DATUM DOMAIN - Sie haben eine DOMAIN gesetzt"
# echo "$DATUM DOMAIN - Deine DOMAIN $DOMAIN_IPV64"
for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "$DATUM DOMAIN - Deine DOMAIN ${DOMAIN}"; done
fi
fi
if [ -z "${DOMAIN_KEY:-}" ] ; then
echo "$DATUM DOMAIN KEY - Sie haben keinen DOMAIN Key gesetzt, schauen die unter https://ipv64.net/dyndns.php nach bei DynDNS Updatehash"
exit 1
echo "$DATUM DOMAIN KEY - Sie haben keinen DOMAIN Key gesetzt, schaue unter https://ipv64.net/dyndns.php nach bei DynDNS Updatehash"
sleep infinity
else
echo "$DATUM DOMAIN KEY - Sie haben einen DOMAIN Key gesetzt"
fi
if [ -z "${DOMAIN_IPV64:-}" ] ; then
echo "$DATUM DOMAIN - Sie haben keine DOMAIN gesetzt, schauen die unter https://ipv64.net/dyndns.php nach bei Domain"
exit 1
if [ -z "${CRON_TIME:-}" ] ; then
echo "$DATUM FEHLER !!! - Sie haben die Environment CRON_TIME nicht gesetzt"
sleep infinity
fi
if [ -z "${CRON_TIME_DIG:-}" ] ; then
echo "$DATUM FEHLER !!! - Sie haben die Environment CRON_TIME_DIG nicht gesetzt"
sleep infinity
fi
while true; do
# if ! curl -4sf --user-agent "${CURL_USER_AGENT}" "https://ipv64.net" 2>&1 > /dev/null; then
if ! curl -4sf --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/ipcheck.php" 2>&1 > /dev/null; then
echo "$DATUM FEHLER !!! - 404 Sie haben kein Netzwerk oder Internetzugang oder die Webseite ipv64.net ist nicht erreichbar"
sleep 900
echo "=============================================================================================="
else
break
fi
done
while true; do
STATUS="OK"
NAMESERVER_CHECK=$(dig +timeout=1 @${NAME_SERVER} 2> /dev/null)
echo "$NAMESERVER_CHECK" | grep -s -q "timed out" && { NAMESERVER_CHECK="Timeout" ; STATUS="FAIL" ; }
if [ "${STATUS}" = "FAIL" ] ; then
echo "$DATUM FEHLER !!! - 404 NAMESERVER ${NAME_SERVER} ist nicht ist nicht erreichbar. Sie haben kein Netzwerk oder Internetzugang"
sleep 900
echo "=============================================================================================="
else
break
fi
done
if [ -z "${SHOUTRRR_URL:-}" ] ; then
echo "$DATUM SHOUTRRR - Sie haben keine SHOUTRRR URL gesetzt"
else
echo "$DATUM DOMAIN - Sie haben eine DOMAIN gesetzt"
# echo "$DATUM DOMAIN - Deine DOMAIN $DOMAIN_IPV64"
for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "$DATUM DOMAIN - Deine DOMAIN $DOMAIN"; done
fi
if ! curl -sSL --fail https://ipv64.net/ > /dev/null; then
echo "$DATUM FEHLER !!! - 404 Sie haben kein Netzwerk oder Internetzugang"
exit 0
echo "$DATUM SHOUTRRR - Sie haben eine SHOUTRRR URL gesetzt"
if [[ "${SHOUTRRR_SKIP_TEST}" =~ (NO|no|No) ]] ; then
if ! /usr/local/bin/shoutrrr send --url "${SHOUTRRR_URL}" --message "`echo -e "$DATUM TEST !!! \nDDNS Updater in Docker fuer Free DynDNS IPv64.net"`" 2> /dev/null; then
echo "$DATUM FEHLER !!! - Die Angaben sind falsch gesetzt: SHOUTRRR URL"
echo "$DATUM INFO !!! - Schaue unter https://containrrr.dev/shoutrrr/ nach dem richtigen URL Format"
echo "$DATUM INFO !!! - Stoppen sie den Container und Starten sie den Container mit den richtigen Angaben erneut"
sleep infinity
else
echo "$DATUM CHECK - Die Angaben sind richtig gesetzt: SHOUTRRR URL"
fi
else
echo "$DATUM SHOUTRRR - Sie haben die Shoutrrr Testnachricht übersprungen."
fi
fi
# IP=$(curl -4s https://ipv64.net/wieistmeineip.php | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' | tail -n 1)
# CHECK=$(curl -4sSL "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=$IP" | grep -o "success")
IP=$(curl -4ssL https://ipv64.net/update.php?howismyip | jq -r 'to_entries[] | "\(.value)"')
CHECK=$(curl -4sSL "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=${IP}&output=min")
# IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?howismyip" | jq -r 'to_entries[] | "\(.value)"')
IP=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/ipcheck.php?ipv4")
function Domain_default() {
CHECK=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=${IP}&output=min")
# if [ "$CHECK" = "ok" ] ; then
if [[ "$CHECK" =~ (nochg|good|ok) ]] ; then
echo "$DATUM CHECK - Die Angaben sind richtig gesetzt: DOMAIN und DOMAIN KEY"
sleep 5 && for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "$DATUM IP CHECK - Deine DOMAIN ${DOMAIN} HAT DIE IP=`dig +short ${DOMAIN} A @ns1.ipv64.net`"; done
sleep 5
if [[ "$IP_CHECK" =~ (YES|yes|Yes) ]] ; then
for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "$DATUM IP CHECK - Deine DOMAIN ${DOMAIN} HAT DIE IP=`dig +short ${DOMAIN} A @${NAME_SERVER}`"; done
else
echo > /dev/null
fi
echo "${IP}" > /data/updip.txt
sleep 2
else
echo "$DATUM FEHLER !!! - Die Angaben sind falsch gesetzt: DOMAIN oder DOMAIN KEY"
exit 1
CHECK_INTERVALL=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&ip=${IP}" | grep -o "Updateintervall")
if [ "$CHECK_INTERVALL" == "Updateintervall" ]; then
echo "$DATUM CHECK - Die Angaben sind richtig gesetzt: DOMAIN und DOMAIN KEY"
echo "$DATUM FEHLER !!! - Dein DynDNS Update Limit ist wohl erreicht"
echo "$DATUM INFO !!! - Es kann erst wieder ein Update gesedet werden wenn dein DynDNS Update Limit im grünen Bereich ist"
else
echo "$DATUM FEHLER !!! - Die Angaben sind falsch gesetzt: DOMAIN oder DOMAIN KEY"
echo "$DATUM INFO !!! - Stoppen sie den Container und Starten sie den Container mit den richtigen Angaben erneut"
return
fi
fi
echo "${IP}" > /data/updip.txt
echo "${CRON_TIME} /bin/bash /data/ddns-update.sh >> /var/log/cron.log 2>&1" > /etc/cron.d/container_cronjob
# echo "$CRON_TIME_DIG" 'sleep 20 && echo "`date +%Y-%m-%d\ %H:%M:%S` IP CHECK - Deine DOMAIN ${DOMAIN_IPV64} HAT DIE IP=`dig +short ${DOMAIN_IPV64} A @ns1.ipv64.net`" >> /var/log/cron.log 2>&1' >> /etc/cron.d/container_cronjob
echo "$CRON_TIME_DIG" 'sleep 20 && for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "`date +%Y-%m-%d\ %H:%M:%S` IP CHECK - Deine DOMAIN ${DOMAIN} HAT DIE IP=`dig +short ${DOMAIN} A @ns1.ipv64.net`" >> /var/log/cron.log 2>&1; done' >> /etc/cron.d/container_cronjob
sleep 2
echo "${CRON_TIME} /bin/bash /data/ddns-update.sh >> /var/log/cron.log 2>&1" > /etc/cron.d/container_cronjob
if [[ "$IP_CHECK" =~ (YES|yes|Yes) ]] ; then
echo "${CRON_TIME_DIG} sleep 20 && /bin/bash /data/domain-ip-scheck.sh >> /var/log/cron.log 2>&1" >> /etc/cron.d/container_cronjob
else
echo > /dev/null
fi
# echo "$CRON_TIME_DIG" 'sleep 20 && echo "`date +%Y-%m-%d\ %H:%M:%S` IP CHECK - Deine DOMAIN ${DOMAIN_IPV64} HAT DIE IP=`dig +short ${DOMAIN_IPV64} A @${NAME_SERVER}`" >> /var/log/cron.log 2>&1' >> /etc/cron.d/container_cronjob
# echo "$CRON_TIME_DIG" 'sleep 20 && for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "`date +%Y-%m-%d\ %H:%M:%S` IP CHECK - Deine DOMAIN ${DOMAIN} HAT DIE IP=`dig +short ${DOMAIN} A @${NAME_SERVER}`" >> /var/log/cron.log 2>&1; done' >> /etc/cron.d/container_cronjob
}
function Domain_mit_praefix() {
CHECK=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&praefix=${DOMAIN_PRAEFIX}&ip=${IP}&output=min")
if [[ "$CHECK" =~ (nochg|good|ok) ]] ; then
echo "$DATUM CHECK - Die Angaben sind richtig gesetzt: DOMAIN mit PRAEFIX und DOMAIN KEY"
sleep 5
if [[ "$IP_CHECK" =~ (YES|yes|Yes) ]] ; then
for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "$DATUM IP CHECK - Deine DOMAIN mit PRAEFIX ${DOMAIN_PRAEFIX}.${DOMAIN} HAT DIE IP=`dig +short ${DOMAIN_PRAEFIX}.${DOMAIN} A @${NAME_SERVER}`"; done
else
echo > /dev/null
fi
echo "${IP}" > /data/updip.txt
sleep 2
else
CHECK_INTERVALL=$(curl -4sSL --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/update.php?key=${DOMAIN_KEY}&domain=${DOMAIN_IPV64}&praefix=${DOMAIN_PRAEFIX}&ip=${IP}" | grep -o "Updateintervall")
if [ "$CHECK_INTERVALL" == "Updateintervall" ]; then
echo "$DATUM CHECK - Die Angaben sind richtig gesetzt: DOMAIN mit PRAEFIX und DOMAIN KEY"
echo "$DATUM FEHLER !!! - Dein DynDNS Update Limit ist wohl erreicht"
echo "$DATUM INFO !!! - Es kann erst wieder ein Update gesedet werden wenn dein DynDNS Update Limit im grünen Bereich ist"
else
echo "$DATUM FEHLER !!! - Die Angaben sind falsch gesetzt: DOMAIN mit PRAEFIX oder DOMAIN KEY"
echo "$DATUM INFO !!! - Stoppen sie den Container und Starten sie den Container mit den richtigen Angaben erneut"
return
fi
fi
echo "${CRON_TIME} /bin/bash /data/ddns-update-praefix.sh >> /var/log/cron.log 2>&1" > /etc/cron.d/container_cronjob
if [[ "$IP_CHECK" =~ (YES|yes|Yes) ]] ; then
echo "${CRON_TIME_DIG} sleep 20 && /bin/bash /data/domain-ip-scheck.sh >> /var/log/cron.log 2>&1" >> /etc/cron.d/container_cronjob
else
echo > /dev/null
fi
# echo "$CRON_TIME_DIG" 'sleep 20 && for DOMAIN in $(echo "${DOMAIN_IPV64}" | sed -e "s/,/ /g"); do echo "`date +%Y-%m-%d\ %H:%M:%S` IP CHECK - Deine DOMAIN mit PRAEFIX ${DOMAIN_PRAEFIX}.${DOMAIN} HAT DIE IP=`dig +short ${DOMAIN_PRAEFIX}.${DOMAIN} A @${NAME_SERVER}`" >> /var/log/cron.log 2>&1; done' >> /etc/cron.d/container_cronjob
}
if [[ "$DOMAIN_PRAEFIX_YES" =~ (YES|yes|Yes) ]] ; then
Domain_mit_praefix
else
Domain_default
fi
/usr/bin/crontab /etc/cron.d/container_cronjob
/usr/sbin/crond
echo "=============================================================================================="
set tail -f /var/log/cron.log "$@"
exec "$@" &

View File

@@ -1,30 +1,15 @@
#!/usr/bin/env bash
DATUM=$(date +%Y-%m-%d\ %H:%M:%S)
set -e
if [ -z "${DOMAIN_KEY:-}" ] ; then
echo
echo "$DATUM DOMAIN KEY - Sie haben keinen DOMAIN Key gesetzt, schauen die unter https://ipv64.net/dyndns.php nach bei DynDNS Updatehash"
echo
# set -e
# if ! curl -4sf --user-agent "${CURL_USER_AGENT}" "https://ipv64.net" 2>&1 > /dev/null; then
if ! curl -4sf --user-agent "${CURL_USER_AGENT}" "https://ipv64.net/ipcheck.php" 2>&1 > /dev/null; then
echo "$DATUM FEHLER !!! - 404 Sie haben kein Netzwerk oder Internetzugang oder die Webseite ipv64.net ist nicht erreichbar"
exit 1
else
echo
echo "$DATUM DOMAIN KEY - Sie haben einen DOMAIN Key gesetzt"
echo
fi
if [ -z "${DOMAIN_IPV64:-}" ] ; then
echo
echo "$DATUM DOMAIN - Sie haben keine DOMAIN gesetzt, schauen die unter https://ipv64.net/dyndns.php nach bei Domain"
echo
STATUS="OK"
NAMESERVER_CHECK=$(dig +timeout=1 @${NAME_SERVER} 2> /dev/null)
echo "$NAMESERVER_CHECK" | grep -s -q "timed out" && { NAMESERVER_CHECK="Timeout" ; STATUS="FAIL" ; }
if [ "${STATUS}" = "FAIL" ] ; then
echo "$DATUM FEHLER !!! - 404 NAMESERVER ${NAME_SERVER} ist nicht ist nicht erreichbar. Sie haben kein Netzwerk oder Internetzugang"
exit 1
else
echo
echo "$DATUM DOMAIN - Sie haben eine DOMAIN gesetzt"
echo
echo "$DATUM DOMAIN - Deine DOMAIN $DOMAIN_IPV64"
fi
if ! curl -sSL --fail https://ipv64.net/ > /dev/null; then
echo "$DATUM FEHLER !!! - 404 Sie haben kein Netzwerk oder Internetzugang"
exit 1
fi

View File

@@ -1,257 +0,0 @@
{"version": 2, "width": 103, "height": 27, "timestamp": 1667020335, "env": {"SHELL": "/bin/bash", "TERM": "xterm-256color"}}
[0.009057, "o", "\u001b[?2004h"]
[0.009807, "o", "root@debian-2gb-nbg1-1:~/docker-ddns-ipv64# "]
[4.008684, "o", "\u001b[7mnano docker-compose.yml\u001b[27m"]
[4.493642, "o", "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\bnano docker-compose.yml"]
[4.494021, "o", "\r\n"]
[4.494364, "o", "\u001b[?2004l\r"]
[4.505653, "o", "\u001b[?2004h"]
[4.506278, "o", "\u001b[?1049h\u001b[22;0;0t\u001b[1;27r\u001b(B\u001b[m\u001b[4l\u001b[?7h\u001b[39;49m\u001b[?1h\u001b="]
[4.506672, "o", "\u001b[?1h\u001b="]
[4.50698, "o", "\u001b[?25l"]
[4.507668, "o", "\u001b[39;49m\u001b(B\u001b[m\u001b[H\u001b[2J\u001b[25;45H"]
[4.50803, "o", "\u001b(B\u001b[0;7m[ Reading... ]"]
[4.50844, "o", "\u001b(B\u001b[m"]
[4.508909, "o", "\u001b[25;44H"]
[4.509565, "o", "\u001b(B\u001b[0;7m[ Read 25 lin"]
[4.509843, "o", "es ]"]
[4.510089, "o", "\u001b(B\u001b[m"]
[4.511579, "o", "\u001b[H"]
[4.511913, "o", "\u001b(B\u001b[0;7m GNU nano 5.4 docker-compose.yml \u001b[1;102H"]
[4.512269, "o", "\u001b(B\u001b[m"]
[4.512559, "o", "\r\u001b[26d"]
[4.512787, "o", "\u001b(B\u001b[0;7m^G\u001b(B\u001b[m Help\u001b[15G"]
[4.513005, "o", "\u001b(B\u001b[0;7m^O\u001b(B\u001b[m Write Out \u001b(B\u001b[0;7m^W\u001b(B\u001b[m Where Is \u001b(B\u001b[0;7m^K\u001b(B\u001b[m Cut\u001b[26;57H"]
[4.513258, "o", "\u001b(B\u001b[0;7m^T\u001b(B\u001b[m Execute \u001b(B\u001b[0;7m^C\u001b(B\u001b[m Location \u001b(B\u001b[0;7mM-U\u001b(B\u001b[m Undo\r\u001b[27d"]
[4.51348, "o", "\u001b(B\u001b[0;7m^X\u001b(B\u001b[m Exit\u001b[15G"]
[4.513694, "o", "\u001b(B\u001b[0;7m^R\u001b(B\u001b[m Read File \u001b(B\u001b[0;7m^\\\u001b(B\u001b[m Replace \u001b(B\u001b[0;7m^U\u001b(B\u001b[m Paste\u001b[57G"]
[4.51389, "o", "\u001b(B\u001b[0;7m^J\u001b(B\u001b[m Justify \u001b(B\u001b[0;7m^_\u001b(B\u001b[m Go To Line \u001b(B\u001b[0;7mM-E\u001b(B\u001b[m Redo"]
[4.51425, "o", "\r\u001b[2d"]
[4.514426, "o", "version: \"3.9\"\r\u001b[3d"]
[4.514574, "o", "services:\u001b[4;3H"]
[4.514717, "o", "ddns-ipv64:\u001b[5;5H"]
[4.514856, "o", "build:\u001b[6;7H"]
[4.514996, "o", "dockerfile: ./Dockerfile\u001b[7;5H"]
[4.515147, "o", "image: alcapone1933/ddns-ipv64:latest\u001b[8;5H"]
[4.515289, "o", "container_name: ddns-ipv64\u001b[9;5H"]
[4.515425, "o", "restart: always\r\u001b[10d"]
[4.515566, "o", "\u001b[36m # volumes:\u001b[11;6H"]
[4.515722, "o", "\u001b[1K "]
[4.515949, "o", "# - data:/data\u001b[12;5H"]
[4.516159, "o", "\u001b[39m\u001b(B\u001b[menvironment:\u001b[13;7H"]
[4.516334, "o", "- \"TZ=Europe/Berlin\"\u001b[14;6H"]
[4.516564, "o", "\u001b[36m\u001b[1K "]
[4.516794, "o", "# Standert Alle 15 Minuten\u001b[15;7H"]
[4.517056, "o", "\u001b[39m\u001b(B\u001b[m- \"CRON_TIME=*/1 * * * *\"\u001b[16;6H"]
[4.517304, "o", "\u001b[36m\u001b[1K "]
[4.517544, "o", "# Standert Alle 30 Minuten Abfrage ob der Domain eintrag richtig ist\u001b[17;7H"]
[4.517781, "o", "\u001b[39m\u001b(B\u001b[m- \"CRON_TIME_DIG=*/1 * * * *\"\u001b[18;7H"]
[4.518074, "o", "- \"DOMAIN_IPV64=demo-ipv64.ipv64.net\"\u001b[19;6H"]
[4.51832, "o", "\u001b[36m\u001b[1K "]
[4.518563, "o", "# DOMAIN KEY FALSCH\u001b[20;7H"]
[4.518803, "o", "\u001b[39m\u001b(B\u001b[m- \"DOMAIN_KEY=7nQpaSWPFOozbHLA2miZGtKM\"\u001b[21;6H"]
[4.519044, "o", "\u001b[36m\u001b[1K "]
[4.519277, "o", "# DOMAIN KEY RICHTIG\u001b[22;6H"]
[4.519507, "o", "\u001b[1K "]
[4.519742, "o", "# - \"DOMAIN_KEY=knQpaSWPFOozbHLA2miZGtKM\"\r\u001b[24d"]
[4.51997, "o", "# volumes:\r\u001b[2d"]
[4.520251, "o", "\u001b[39m\u001b(B\u001b[m"]
[4.520489, "o", "\u001b[?12l\u001b[?25h"]
[5.844522, "o", "\u001b[?25l"]
[5.84534, "o", "\u001b[3d"]
[5.845882, "o", "\u001b[?12l\u001b[?25h"]
[6.348809, "o", "\u001b[?25l"]
[6.349455, "o", "\u001b[4d"]
[6.349748, "o", "\u001b[?12l\u001b[?25h"]
[6.380009, "o", "\u001b[?25l"]
[6.380556, "o", "\u001b[5d"]
[6.38088, "o", "\u001b[?12l\u001b[?25h"]
[6.412216, "o", "\u001b[?25l"]
[6.413226, "o", "\u001b[6d"]
[6.413758, "o", "\u001b[?12l\u001b[?25h"]
[6.457679, "o", "\u001b[?25l"]
[6.458205, "o", "\u001b[7d"]
[6.458586, "o", "\u001b[?12l\u001b[?25h"]
[6.489465, "o", "\u001b[?25l"]
[6.490006, "o", "\u001b[8d"]
[6.49035, "o", "\u001b[?12l\u001b[?25h"]
[6.519657, "o", "\u001b[?25l"]
[6.520224, "o", "\u001b[9d"]
[6.520543, "o", "\u001b[?12l\u001b[?25h"]
[6.551093, "o", "\u001b[?25l"]
[6.551654, "o", "\u001b[10d"]
[6.551985, "o", "\u001b[?12l\u001b[?25h"]
[6.58218, "o", "\u001b[?25l\u001b[11d\u001b[?12l\u001b[?25h"]
[6.614251, "o", "\u001b[?25l\u001b[12d\u001b[?12l\u001b[?25h"]
[6.644328, "o", "\u001b[?25l\u001b[13d\u001b[?12l\u001b[?25h"]
[6.675868, "o", "\u001b[?25l\u001b[14d\u001b[?12l\u001b[?25h"]
[6.708505, "o", "\u001b[?25l\u001b[15d\u001b[?12l\u001b[?25h"]
[6.75547, "o", "\u001b[?25l\u001b[16d\u001b[?12l\u001b[?25h"]
[6.785852, "o", "\u001b[?25l\u001b[17d\u001b[?12l\u001b[?25h"]
[6.815244, "o", "\u001b[?25l\u001b[18d\u001b[?12l\u001b[?25h"]
[6.84606, "o", "\u001b[?25l\u001b[19d\u001b[?12l\u001b[?25h"]
[6.877302, "o", "\u001b[?25l\u001b[20d\u001b[?12l\u001b[?25h"]
[8.849629, "o", "\u001b[?25l\u001b[25d\u001b[J\u001b[27d\u001b[?12l\u001b[?25h\u001b[27;1H\u001b[?1049l\u001b[23;0;0t\r\u001b[?1l\u001b>\u001b[?2004l\u001b[?2004hroot@debian-2gb-nbg1-1:~/docker-ddns-ipv64# "]
[11.682145, "o", "\u001b[7mdocker-compose up\u001b[27m"]
[12.164139, "o", "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\bdocker-compose up\r\n\u001b[?2004l\r"]
[12.303022, "o", "\u001b[1A\u001b[1B\u001b[0G\u001b[?25l[+] Running 0/0\r\n\u001b[37m ⠋ Network docker-ddns-ipv64_default Creating 0.1s\r\n\u001b[0m\u001b[?25h"]
[12.366119, "o", "\u001b[1A\u001b[1A\u001b[0G\u001b[?25l[+] Running 2/1\r\n\u001b[34m ⠿ Network docker-ddns-ipv64_default Created 0.1s\r\n\u001b[0m\u001b[34m ⠿ Container ddns-ipv64 Created 0.0s\r\n\u001b[0m\u001b[?25h"]
[12.368394, "o", "Attaching to ddns-ipv64\r\n"]
[17.766958, "o", "\u001b[36mddns-ipv64 | \u001b[0m================================ START DDNS UPDATER IPV64.NET ================================\r\n\u001b[36mddns-ipv64 | \u001b[0m\r\n\u001b[36mddns-ipv64 | \u001b[0mSie haben einen DOMAIN Key gesetzt\r\n\u001b[36mddns-ipv64 | \u001b[0m\r\n\u001b[36mddns-ipv64 | \u001b[0m\r\n\u001b[36mddns-ipv64 | \u001b[0mSie haben eine DOMAIN gesetzt\r\n\u001b[36mddns-ipv64 | \u001b[0m\r\n\u001b[36mddns-ipv64 | \u001b[0mDeine DOMAIN demo-ipv64.ipv64.net\r\n"]
[17.977174, "o", "\u001b[36mddns-ipv64 | \u001b[0m\r\n\u001b[36mddns-ipv64 | \u001b[0mDie Angaben sind falsch gesetzt : DOMAIN oder DOMAIN KEY\r\n\u001b[36mddns-ipv64 | \u001b[0m\r\n"]
[18.102001, "o", "\u001b[36mddns-ipv64 exited with code 1\r\n\u001b[0m"]
[20.074317, "o", "^CGracefully stopping... (press Ctrl+C again to force)\r\n"]
[20.174766, "o", "\u001b[1A\u001b[1B\u001b[0G\u001b[?25l[+] Running 0/0\r\n\u001b[37m ⠋ Container ddns-ipv64 Stopping 0.1s\r\n\u001b[0m\u001b[?25h"]
[20.219771, "o", "\u001b[1A\u001b[1A\u001b[0G\u001b[?25l\u001b[34m[+] Running 1/1\u001b[0m\r\n\u001b[34m ⠿ Container ddns-ipv64 Stopped 0.1s\r\n\u001b[0m\u001b[?25h"]
[20.221656, "o", "canceled"]
[20.222029, "o", "\r\n"]
[20.224045, "o", "\u001b[?2004h"]
[20.224417, "o", "root@debian-2gb-nbg1-1:~/docker-ddns-ipv64# "]
[21.821976, "o", "\u001b[7mdocker-compose down\u001b[27m"]
[22.131369, "o", "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\bdocker-compose down\r\n\u001b[?2004l\r"]
[22.24558, "o", "\u001b[1A\u001b[1B\u001b[0G\u001b[?25l[+] Running 2/0\r\n\u001b[34m ⠿ Container ddns-ipv64 Removed 0.0s\r\n\u001b[0m\u001b[34m ⠿ Network docker-ddns-ipv64_default Removed 0.1s\r\n\u001b[0m\u001b[?25h\u001b[?2004h"]
[22.246054, "o", "root@debian-2gb-nbg1-1:~/docker-ddns-ipv64# "]
[23.37785, "o", "docker-compose down"]
[23.707726, "o", "\b\b\b\b\u001b[2Pup"]
[24.004216, "o", "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\bnano docker-compose.yml"]
[24.992152, "o", "\r\n\u001b[?2004l\r"]
[25.00142, "o", "\u001b[?2004h"]
[25.002667, "o", "\u001b[?1049h\u001b[22;0;0t\u001b[1;27r\u001b(B\u001b[m\u001b[4l\u001b[?7h\u001b[39;49m\u001b[?1h\u001b="]
[25.003288, "o", "\u001b[?1h\u001b="]
[25.003619, "o", "\u001b[?25l"]
[25.004364, "o", "\u001b[39;49m\u001b(B\u001b[m\u001b[H\u001b[2J\u001b[25;45H"]
[25.004708, "o", "\u001b(B\u001b[0;7m[ Reading... ]"]
[25.005032, "o", "\u001b(B\u001b[m"]
[25.005407, "o", "\u001b[25;44H"]
[25.005691, "o", "\u001b(B\u001b[0;7m[ Read 25 lin"]
[25.005947, "o", "es ]"]
[25.006154, "o", "\u001b(B\u001b[m"]
[25.007736, "o", "\u001b[H"]
[25.008131, "o", "\u001b(B\u001b[0;7m GNU nano 5.4 docker-compose.yml \u001b[1;102H"]
[25.008387, "o", "\u001b(B\u001b[m"]
[25.008656, "o", "\r\u001b[26d"]
[25.008927, "o", "\u001b(B\u001b[0;7m^G\u001b(B\u001b[m Help\u001b[15G"]
[25.009158, "o", "\u001b(B\u001b[0;7m^O\u001b(B\u001b[m Write Out \u001b(B\u001b[0;7m^W\u001b(B\u001b[m Where Is \u001b(B\u001b[0;7m^K\u001b(B\u001b[m Cut\u001b[26;57H"]
[25.009382, "o", "\u001b(B\u001b[0;7m^T\u001b(B\u001b[m Execute \u001b(B\u001b[0;7m^C\u001b(B\u001b[m Location \u001b(B\u001b[0;7mM-U\u001b(B\u001b[m Undo\r\u001b[27d"]
[25.009593, "o", "\u001b(B\u001b[0;7m^X\u001b(B\u001b[m Exit\u001b[15G"]
[25.009804, "o", "\u001b(B\u001b[0;7m^R\u001b(B\u001b[m Read File \u001b(B\u001b[0;7m^\\\u001b(B\u001b[m Replace \u001b(B\u001b[0;7m^U\u001b(B\u001b[m Paste\u001b[57G"]
[25.010012, "o", "\u001b(B\u001b[0;7m^J\u001b(B\u001b[m Justify \u001b(B\u001b[0;7m^_\u001b(B\u001b[m Go To Line \u001b(B\u001b[0;7mM-E\u001b(B\u001b[m Redo"]
[25.010559, "o", "\r\u001b[2d"]
[25.010807, "o", "version: \"3.9\"\r\u001b[3d"]
[25.011147, "o", "services:\u001b[4;3H"]
[25.011384, "o", "ddns-ipv64:\u001b[5;5H"]
[25.011652, "o", "build:\u001b[6;7H"]
[25.011941, "o", "dockerfile: ./Dockerfile\u001b[7;5H"]
[25.012199, "o", "image: alcapone1933/ddns-ipv64:latest\u001b[8;5H"]
[25.012416, "o", "container_name: ddns-ipv64\u001b[9;5H"]
[25.012624, "o", "restart: always\r\u001b[10d"]
[25.012895, "o", "\u001b[36m # volumes:\u001b[11;6H"]
[25.013161, "o", "\u001b[1K "]
[25.01338, "o", "# - data:/data\u001b[12;5H"]
[25.01359, "o", "\u001b[39m\u001b(B\u001b[menvironment:\u001b[13;7H"]
[25.013752, "o", "- \"TZ=Europe/Berlin\"\u001b[14;6H"]
[25.01389, "o", "\u001b[36m\u001b[1K "]
[25.014029, "o", "# Standert Alle 15 Minuten\u001b[15;7H"]
[25.014169, "o", "\u001b[39m\u001b(B\u001b[m- \"CRON_TIME=*/1 * * * *\"\u001b[16;6H"]
[25.014307, "o", "\u001b[36m\u001b[1K "]
[25.014449, "o", "# Standert Alle 30 Minuten Abfrage ob der Domain eintrag richtig ist\u001b[17;7H"]
[25.0146, "o", "\u001b[39m\u001b(B\u001b[m- \"CRON_TIME_DIG=*/1 * * * *\"\u001b[18;7H"]
[25.01474, "o", "- \"DOMAIN_IPV64=demo-ipv64.ipv64.net\"\u001b[19;6H"]
[25.014876, "o", "\u001b[36m\u001b[1K "]
[25.015013, "o", "# DOMAIN KEY FALSCH\u001b[20;7H"]
[25.015152, "o", "\u001b[39m\u001b(B\u001b[m- \"DOMAIN_KEY=7nQpaSWPFOozbHLA2miZGtKM\"\u001b[21;6H"]
[25.015295, "o", "\u001b[36m\u001b[1K "]
[25.015439, "o", "# DOMAIN KEY RICHTIG\u001b[22;6H"]
[25.015572, "o", "\u001b[1K "]
[25.015709, "o", "# - \"DOMAIN_KEY=knQpaSWPFOozbHLA2miZGtKM\"\r\u001b[24d"]
[25.015844, "o", "# volumes:\r\u001b[2d"]
[25.015974, "o", "\u001b[39m\u001b(B\u001b[m"]
[25.016146, "o", "\u001b[?12l\u001b[?25h"]
[25.330673, "o", "\u001b[?25l"]
[25.331418, "o", "\u001b[3d"]
[25.331894, "o", "\u001b[?12l\u001b[?25h"]
[25.831529, "o", "\u001b[?25l\u001b[4d\u001b[?12l\u001b[?25h"]
[25.878232, "o", "\u001b[?25l"]
[25.879161, "o", "\u001b[5d"]
[25.879727, "o", "\u001b[?12l\u001b[?25h"]
[25.90831, "o", "\u001b[?25l"]
[25.909404, "o", "\u001b[6d"]
[25.910072, "o", "\u001b[?12l\u001b[?25h"]
[25.941484, "o", "\u001b[?25l"]
[25.942249, "o", "\u001b[7d"]
[25.942564, "o", "\u001b[?12l\u001b[?25h"]
[25.973099, "o", "\u001b[?25l"]
[25.973631, "o", "\u001b[8d"]
[25.974091, "o", "\u001b[?12l\u001b[?25h"]
[26.003005, "o", "\u001b[?25l"]
[26.003568, "o", "\u001b[9d"]
[26.003915, "o", "\u001b[?12l\u001b[?25h"]
[26.034666, "o", "\u001b[?25l"]
[26.035211, "o", "\u001b[10d"]
[26.035512, "o", "\u001b[?12l\u001b[?25h"]
[26.065643, "o", "\u001b[?25l"]
[26.066292, "o", "\u001b[11d"]
[26.066651, "o", "\u001b[?12l\u001b[?25h"]
[26.095953, "o", "\u001b[?25l"]
[26.096493, "o", "\u001b[12d"]
[26.09698, "o", "\u001b[?12l\u001b[?25h"]
[26.142032, "o", "\u001b[?25l"]
[26.142241, "o", "\u001b[13d"]
[26.142409, "o", "\u001b[?12l\u001b[?25h"]
[26.173935, "o", "\u001b[?25l\u001b[14d"]
[26.174448, "o", "\u001b[?12l\u001b[?25h"]
[26.203891, "o", "\u001b[?25l\u001b[15d\u001b[?12l\u001b[?25h"]
[26.234345, "o", "\u001b[?25l\u001b[16d\u001b[?12l\u001b[?25h"]
[26.264978, "o", "\u001b[?25l\u001b[17d\u001b[?12l\u001b[?25h"]
[26.297094, "o", "\u001b[?25l\u001b[18d\u001b[?12l\u001b[?25h"]
[26.32784, "o", "\u001b[?25l\u001b[19d\u001b[?12l\u001b[?25h"]
[26.359473, "o", "\u001b[?25l\u001b[20d\u001b[?12l\u001b[?25h"]
[26.407653, "o", "\u001b[?25l\u001b[21d\u001b[?12l\u001b[?25h"]
[26.409044, "o", "\u001b[?25l\u001b[C\u001b[?12l\u001b[?25h"]
[26.811589, "o", "\u001b[?25l\u001b[C\u001b[?12l\u001b[?25h"]
[26.905981, "o", "\u001b[?25l\u001b[A\u001b[?12l\u001b[?25h"]
[27.081618, "o", "\u001b[?25l \u001b[?12l\u001b[?25h"]
[27.298024, "o", "\u001b[?25l \u001b[?12l\u001b[?25h"]
[27.545592, "o", "\u001b[?25l \u001b[?12l\u001b[?25h"]
[27.773669, "o", "\u001b[?25l\r\u001b[25d\u001b[K\u001b[20;7H\u001b[?12l\u001b[?25h"]
[28.73667, "o", "\u001b[?25l\u001b[1;65H\u001b(B\u001b[0;7m*\u001b[102G\u001b(B\u001b[m\u001b[20;6H\u001b[36m\u001b[1K #- \"DOMAIN_KEY=7nQpaSWPFOozbHLA2miZGtKM\"\u001b[8G\u001b[39m\u001b(B\u001b[m\u001b[?12l\u001b[?25h"]
[28.89698, "o", "\u001b[?25l\u001b[36m - \"DOMAIN_KEY=7nQpaSWPFOozbHLA2miZGtKM\"\u001b[20;9H\u001b[39m\u001b(B\u001b[m\u001b[?12l\u001b[?25h"]
[29.146949, "o", "\u001b[?25l\u001b[21d\u001b[?12l\u001b[?25h"]
[29.501894, "o", "\u001b[?25l\u001b[22d\u001b[?12l\u001b[?25h"]
[29.888123, "o", "\u001b[?25l\b\u001b[1P\u001b[?12l\u001b[?25h"]
[30.067487, "o", "\u001b[?25l\b\b\u001b[1K - \"DOMAIN_KEY=knQpaSWPFOozbHLA2miZGtKM\"\u001b[K\u001b[7G\u001b[?12l\u001b[?25h"]
[30.814693, "o", "\u001b[?25l\r\u001b[25d\u001b(B\u001b[0;7mSave modified buffer? \u001b[26;1H Y\u001b(B\u001b[m Yes\u001b[K\r\u001b[27d\u001b(B\u001b[0;7m N\u001b(B\u001b[m No \u001b[15G \u001b(B\u001b[0;7m^C\u001b(B\u001b[m Cancel\u001b[K\u001b[25;23H\u001b[?12l\u001b[?25h"]
[31.114283, "o", "\u001b[?25l\r\u001b[26d\u001b(B\u001b[0;7m^G\u001b(B\u001b[m Help\u001b[26;26H\u001b(B\u001b[0;7mM-D\u001b(B\u001b[m DOS Format\u001b[26;51H\u001b(B\u001b[0;7mM-A\u001b(B\u001b[m Append\u001b[26;76H\u001b(B\u001b[0;7mM-B\u001b(B\u001b[m Backup File\r\u001b[27d\u001b(B\u001b[0;7m^C\u001b(B\u001b[m Cancel\u001b[17G \u001b(B\u001b[0;7mM-M\u001b(B\u001b[m Mac Format\u001b[27;51H\u001b(B\u001b[0;7mM-P\u001b(B\u001b[m Prepend\u001b[27;76H\u001b(B\u001b[0;7m^T\u001b(B\u001b[m Browse\r\u001b[25d\u001b(B\u001b[0;7mFile Name to Write: docker-compose.yml\u001b(B\u001b[m\u001b[?12l\u001b[?25h"]
[31.457386, "o", "\u001b[?25l\u001b[44G\u001b[1K \u001b(B\u001b[0;7m[ Writing... ]\u001b(B\u001b[m\u001b[K"]
[31.459893, "o", "\u001b[1;65H\u001b(B\u001b[0;7m \u001b[102G\u001b(B\u001b[m\u001b[25;43H\u001b(B\u001b[0;7m[ Wrote 25 lines ]\u001b(B\u001b[m\r"]
[31.460335, "o", "\u001b[J\u001b[27d\u001b[?12l\u001b[?25h\u001b[27;1H\u001b[?1049l\u001b[23;0;0t\r\u001b[?1l\u001b>\u001b[?2004l"]
[31.461695, "o", "\u001b[?2004hroot@debian-2gb-nbg1-1:~/docker-ddns-ipv64# "]
[31.867655, "o", "nano docker-compose.yml"]
[32.073275, "o", "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\u001b[4Pdocker-compose down"]
[32.745869, "o", "\b\b\b\b\u001b[2Pup"]
[33.124935, "o", "\r\n\u001b[?2004l\r"]
[33.26416, "o", "\u001b[1A\u001b[1B\u001b[0G\u001b[?25l[+] Running 1/0\r\n\u001b[34m ⠿ Network docker-ddns-ipv64_default Created 0.1s\r\n\u001b[0m\u001b[37m ⠋ Container ddns-ipv64 Creating 0.0s\r\n\u001b[0m\u001b[?25h"]
[33.30283, "o", "\u001b[1A\u001b[1A\u001b[1A\u001b[0G\u001b[?25l\u001b[34m[+] Running 2/2\u001b[0m\r\n\u001b[34m ⠿ Network docker-ddns-ipv64_default Created 0.1s\r\n\u001b[0m\u001b[34m ⠿ Container ddns-ipv64 Created 0.1s\r\n\u001b[0m\u001b[?25h"]
[33.304242, "o", "Attaching to ddns-ipv64\r\n"]
[38.667533, "o", "\u001b[36mddns-ipv64 | \u001b[0m================================ START DDNS UPDATER IPV64.NET ================================\r\n\u001b[36mddns-ipv64 | \u001b[0m\r\n\u001b[36mddns-ipv64 | \u001b[0mSie haben einen DOMAIN Key gesetzt\r\n\u001b[36mddns-ipv64 | \u001b[0m\r\n\u001b[36mddns-ipv64 | \u001b[0m\r\n\u001b[36mddns-ipv64 | \u001b[0mSie haben eine DOMAIN gesetzt\r\n\u001b[36mddns-ipv64 | \u001b[0m\r\n\u001b[36mddns-ipv64 | \u001b[0mDeine DOMAIN demo-ipv64.ipv64.net\r\n"]
[38.891467, "o", "\u001b[36mddns-ipv64 | \u001b[0m\r\n"]
[38.892296, "o", "\u001b[36mddns-ipv64 | \u001b[0mDie Angaben sind richtig gesetzt : DOMAIN und DOMAIN KEY\r\n"]
[38.892983, "o", "\u001b[36mddns-ipv64 | \u001b[0m\r\n"]
[46.015311, "o", "\u001b[36mddns-ipv64 | \u001b[0m2022-10-29 07:13:00 Deine DOMAIN demo-ipv64.ipv64.net HAT DIE IP=188.34.202.141\r\n"]
[48.017625, "o", "\u001b[36mddns-ipv64 | \u001b[0m\r\n\u001b[36mddns-ipv64 | \u001b[0m2022-10-29 07:13:00 KEIN UPDATE - Aktuelle IP=188.34.202.141\r\n\u001b[36mddns-ipv64 | \u001b[0m\r\n"]
[54.300299, "o", "^C"]
[54.300963, "o", "Gracefully stopping... (press Ctrl+C again to force)\r\n"]
[54.401256, "o", "\u001b[1A\u001b[1B\u001b[0G\u001b[?25l[+] Running 0/0\r\n\u001b[37m ⠋ Container ddns-ipv64 Stopping 0.1s\r\n\u001b[0m\u001b[?25h"]
[54.456698, "o", "\u001b[1A\u001b[1A\u001b[0G\u001b[?25l\u001b[34m[+] Running 1/1\u001b[0m\r\n\u001b[34m ⠿ Container ddns-ipv64 Stopped 0.2s\r\n\u001b[0m\u001b[?25h"]
[54.457951, "o", "canceled"]
[54.458231, "o", "\r\n"]
[54.459596, "o", "\u001b[?2004h"]
[54.459825, "o", "root@debian-2gb-nbg1-1:~/docker-ddns-ipv64# "]
[54.929777, "o", "docker-compose up"]
[55.144134, "o", "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\bnano docker-compose.yml"]
[55.562913, "o", "\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\u001b[4Pdocker-compose down"]
[56.156131, "o", "\r\n\u001b[?2004l\r"]
[56.260251, "o", "\u001b[1A\u001b[1B\u001b[0G\u001b[?25l[+] Running 2/0\r\n\u001b[34m ⠿ Container ddns-ipv64 Removed 0.0s\r\n\u001b[0m\u001b[34m ⠿ Network docker-ddns-ipv64_default Removed 0.1s\r\n\u001b[0m\u001b[?25h"]
[56.260868, "o", "\u001b[?2004h"]
[56.261116, "o", "root@debian-2gb-nbg1-1:~/docker-ddns-ipv64# "]
[57.509694, "o", "\u001b[?2004l\r\r\nexit\r\n"]

BIN
demo/shoutrrr-demo.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

View File

@@ -4,21 +4,25 @@ services:
# build:
# dockerfile: ./Dockerfile
image: alcapone1933/ddns-ipv64:latest
# image: alcapone1933/ddns-ipv64:v0.0.5
# image: alcapone1933/ddns-ipv64:v0.1.4
container_name: ddns-ipv64
restart: always
# volumes:
# - data:/data
environment:
- "TZ=Europe/Berlin"
# Standard Abfrage Alle 15 Minuten nach der aktuellen ip
- "CRON_TIME=*/15 * * * *"
# Standard Abfrage Alle 30 Minuten für die Domain Adresse
- "CRON_TIME_DIG=*/30 * * * *"
- "DOMAIN_IPV64=deine-domain.ipv64.net"
# - "DOMAIN_IPV64=deine-domain.ipv64.net,deine-domain.ipv64.de"
# - "DOMAIN_PRAEFIX_YES=yes"
# ⚠️ Hier bitte nur ein DOMAIN PRAEFIX (subdomain) eintragen (ersetzen) ⚠️
# - "DOMAIN_PRAEFIX=ddns"
# - "IP_CHECK=Yes"
- "DOMAIN_KEY=1234567890abcdefghijklmn"
# - "SHOUTRRR_URL="
# - "SHOUTRRR_SKIP_TEST=no"
# - "NAME_SERVER=ns1.ipv64.net"
# volumes:
# data:
# name: ddns-ipv64_data