From 1017a5f455eb5e82887ca832091624155a801019 Mon Sep 17 00:00:00 2001 From: rafal Date: Fri, 30 Jan 2026 10:50:20 +0000 Subject: [PATCH] Update README.pl.md --- README.pl.md | 126 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) diff --git a/README.pl.md b/README.pl.md index e2a435a..2988ed8 100644 --- a/README.pl.md +++ b/README.pl.md @@ -41,3 +41,129 @@ cd /opt sudo git clone https://git.invelio.co.uk/rafal/ionos-ddns.git cd /opt/ionos-ddns ``` + +### 2. Zainstaluj zależności + +sudo apt update +sudo apt install python3-pip +sudo pip3 install -r requirements.txt + +### 3. Konfiguracja + +Edytuj plik konfiguracyjny: +``` +sudo nano config.json +``` +Uzupełnij: api_prefix api_secret + +Lista domen – edytuj plik domains.txt (jedna domena na linię): +``` +sudo nano domains.txt +``` +Przykład: +``` +mydomain.com +vpn.mydomain.com +server.other-domain.net +``` +Zabezpieczenie klucza API + +Ponieważ config.json zawiera wrażliwe dane, ustaw prawa tylko dla roota: +``` +sudo chown root:root /opt/ionos-ddns/config.json +sudo chmod 600 /opt/ionos-ddns/config.json +``` +Nadaj prawa do uruchomienia skryptu: +``` +sudo chmod +x /opt/ionos-ddns/update_ddns.py +``` +### 4. Instalacja usługi systemowej + +Skopiuj plik usługi: +``` +sudo cp ionos-ddns.service /etc/systemd/system/ +``` +Przeładuj demona, włącz i uruchom usługę: +``` +sudo systemctl daemon-reload +sudo systemctl enable ionos-ddns.service +sudo systemctl start ionos-ddns.service +``` +Monitorowanie + +Status usługi: +``` +sudo systemctl status ionos-ddns.service +``` +Podgląd logów: +``` +tail -f /var/log/ionos-ddns.log +``` +Jak to działa + +Skrypt działa w pętli (co 10 minut): + +Pobiera Twoje publiczne IP. + +Wczytuje domains.txt. + +Dla każdej domeny: + +znajduje odpowiednie Zone ID przez API, + +sprawdza czy istnieje rekord A, + +jeśli istnieje → porównuje IP i wykonuje PUT (update), + +jeśli nie istnieje → wykonuje POST (create). + + +### BŁĄD: 400 Invalid API key format + +Ten błąd oznacza, że serwer IONOS odrzucił klucz, ponieważ jego budowa jest nieprawidłowa. + +Najczęstsze przyczyny: + +Spacje (skopiowane przypadkiem przy wklejaniu). + +Ręczne dodanie kropki w pliku config (skrypt sam dodaje kropkę!). + +Zły typ klucza (klucz Cloud API zamiast Hosting/DNS API). + +KROK 1: Sprawdź spacje w config.json +``` +sudo nano /opt/ionos-ddns/config.json +``` +Upewnij się, że cudzysłowy przylegają idealnie do znaków. + +ŹLE (zwróć uwagę na spacje): +``` +"api_prefix": " 23498723498 ", +"api_secret": " a1b2c3d4 " +``` +DOBRZE: +``` +"api_prefix": "23498723498", +"api_secret": "a1b2c3d4" +``` +KROK 2: Nie dodawaj kropki w config.json + +Skrypt w Pythonie zawiera linię: +``` +"X-API-Key": f"{prefix}.{secret}" +``` +On sam łączy te dwie wartości kropką. + +Jeśli w config.json wpiszesz: +``` +"api_prefix": "myPrefix." +``` +skrypt wyśle: +``` +myPrefix..secret +``` +(co zawiera dwie kropki) i spowoduje błąd. + +api_prefix → tylko pierwsza część klucza + +api_secret → tylko druga, długa część klucza