Update README.pl.md

This commit is contained in:
rafal 2026-01-30 10:50:20 +00:00
parent c4d0793290
commit 1017a5f455

View File

@ -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