From 2fcda274490e7eb70dc2734ab349f422364056e9 Mon Sep 17 00:00:00 2001 From: CasperMajinvest Date: Thu, 7 Apr 2022 09:12:55 +0200 Subject: [PATCH] added docker capabilities, and docker file, --- README.md | 20 ++++++++++++++++++++ builddocker.bat | 1 + docker-compose.yml | 9 +++++++++ dockerfile | 8 ++++++++ one_com_ddns.py | 34 ++++++++++++++++++---------------- 5 files changed, 56 insertions(+), 16 deletions(-) create mode 100644 builddocker.bat create mode 100644 docker-compose.yml create mode 100644 dockerfile diff --git a/README.md b/README.md index 5a67428..64c3134 100644 --- a/README.md +++ b/README.md @@ -69,6 +69,26 @@ CHECK_IP_CHANGE = True LAST_IP_FILE = "lastip.txt" ``` +## Docker + +To build docker from dockerfile: Replace imagenamexyz with your own +``` +docker build --rm -f "dockerfile" -t imagenameXYZ:tag . +``` +Dockercompose example: +``` +version: '3.3' +services: + one: + image: imagenameXYZ:latest + environment: + - Username=example@domain.com + - Password=pwd + - Domain=domain.com + - SubDomains=sub +``` + + ## Contributing Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. diff --git a/builddocker.bat b/builddocker.bat new file mode 100644 index 0000000..a03e29d --- /dev/null +++ b/builddocker.bat @@ -0,0 +1 @@ +docker build --rm -f "dockerfile" -t onedotcomddns:latest . \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..a6fe6f1 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,9 @@ +version: '3.3' +services: + one: + image: onedotcomddns:latest + environment: + - USERNAME=NotMyEmail + - PASSWORD=NotMyPass + - Domain=not-my-domain.com + - SubDomains=subdomain \ No newline at end of file diff --git a/dockerfile b/dockerfile new file mode 100644 index 0000000..0229cb7 --- /dev/null +++ b/dockerfile @@ -0,0 +1,8 @@ +FROM python:3 +RUN pip3 install requests --user + +WORKDIR /usr/src/app + +COPY . . + +CMD [ "python3", "one_com_ddns.py" ] \ No newline at end of file diff --git a/one_com_ddns.py b/one_com_ddns.py index 8df2b2d..1507d8a 100644 --- a/one_com_ddns.py +++ b/one_com_ddns.py @@ -29,30 +29,35 @@ on github or send me an email (main@lugico.de) ''' - - +import os +import requests +import json +import sys # YOUR ONE.COM LOGIN -USERNAME="email.address@example.com" -PASSWORD="Your Beautiful Password" - +#USERNAME="email.address@example.com" +USERNAME = os.getenv('Username') +#PASSWORD="Your Beautiful Password" +PASSWORD = os.getenv('Password') # YOUR DOMAIN ( NOT www.example.com, only example.com )" -DOMAIN="example.com" - +#DOMAIN="example.com" +DOMAIN = os.getenv('Domain') # LIST OF SUBDOMAINS YOU WANT POINTING TO YOUR IP -SUBDOMAINS = ["myddns"] +#SUBDOMAINS = ["myddns"] # SUBDOMAINS = ["mutiple", "subdomains"] - +SUBDOMAINS = os.getenv('SubDomains').split(',') # YOUR IP ADDRESS. -IP='AUTO' +#IP='AUTO' +IP = os.getenv('IP','AUTO') # '127.0.0.1' -> IP Address # 'AUTO' -> Automatically detect using ipify.org # 'ARG' -> Read from commandline argument ($ python3 ddns.py 127.0.0.1) # CHECK IF IP ADDRESS HAS CHANGED SINCE LAST SCRIPT EXECUTION? -CHECK_IP_CHANGE = True +#CHECK_IP_CHANGE = True +CHECK_IP_CHANGE = os.getenv('Change','true').lower() == 'true' # True = only continue when IP has changed # False = always continue @@ -60,10 +65,7 @@ # not needed CHECK_IP_CHANGE is false LAST_IP_FILE = "lastip.txt" - -import requests -import json -import sys +print(f"Running with options USERNAME: {USERNAME}, DOMAIN:{DOMAIN} SUBDomains: {SUBDOMAINS} IPMode: {IP}, Change detection: {CHECK_IP_CHANGE}") if IP == 'AUTO': IP = requests.get("https://api.ipify.org/").text @@ -185,4 +187,4 @@ def changeIP(session, ID, DOMAIN, SUBDOMAIN, IP, TTL=3600): if recordid == "": print("!!! - Record '" + subdomain + "' could not be found.") continue - changeIP(s, recordid, DOMAIN, subdomain, IP, 600) + changeIP(s, recordid, DOMAIN, subdomain, IP, 600) \ No newline at end of file