Update README.pl.md
This commit is contained in:
parent
c4d0793290
commit
1017a5f455
126
README.pl.md
126
README.pl.md
|
|
@ -41,3 +41,129 @@ cd /opt
|
||||||
sudo git clone https://git.invelio.co.uk/rafal/ionos-ddns.git
|
sudo git clone https://git.invelio.co.uk/rafal/ionos-ddns.git
|
||||||
cd /opt/ionos-ddns
|
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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user