upd README
This commit is contained in:
parent
cb57ed07de
commit
aa88d0e6ab
50
README.md
50
README.md
@ -1,9 +1,57 @@
|
|||||||
# pddnsc
|
# pddnsc
|
||||||
|
|
||||||
Возможно ddns клиент
|
Возможно `DDNS` клиент
|
||||||
|
|
||||||
## запуск
|
## запуск
|
||||||
|
|
||||||
~~~sh
|
~~~sh
|
||||||
python -m pddnsc.cli
|
python -m pddnsc.cli
|
||||||
~~~
|
~~~
|
||||||
|
|
||||||
|
## конфигурация
|
||||||
|
|
||||||
|
Конфигурация находится в файле `settings/config.toml`.
|
||||||
|
Пример конфигурации:
|
||||||
|
|
||||||
|
~~~toml
|
||||||
|
[sources]
|
||||||
|
# сервис https://www.ipify.org
|
||||||
|
[sources.ipfy]
|
||||||
|
provider = "IPIFYSource" # имя python класса
|
||||||
|
|
||||||
|
[filters]
|
||||||
|
# этот фильтр означает, что если ip адреса не изменились (по хешу)
|
||||||
|
# то не нужно никуда отсылать ничего
|
||||||
|
[filters.state-hash]
|
||||||
|
provider = "StateHashFilter"
|
||||||
|
filepath = "state/hash.txt"
|
||||||
|
|
||||||
|
[outputs]
|
||||||
|
# сохранение хеша всех ip адресов в файл,
|
||||||
|
# чтобы потом проверить изменились ли они
|
||||||
|
[outputs.hash-file]
|
||||||
|
provider = "StateHashFile"
|
||||||
|
filepath = "state/hash.txt"
|
||||||
|
|
||||||
|
# сервис доменов на vscale (vds.selectel.ru)
|
||||||
|
# токен в переменной окружения VSCALE_API_TOKEN
|
||||||
|
[outputs.vscale]
|
||||||
|
provider = "VscaleDomains"
|
||||||
|
domain = "example.com"
|
||||||
|
target = "www" # изменяем www.example.com
|
||||||
|
ttl = 3600
|
||||||
|
ipv4 = true # менять A запись
|
||||||
|
ipv6 = false # НЕ менять AAAA запись
|
||||||
|
~~~
|
||||||
|
|
||||||
|
Конфигурация состоит из секций:
|
||||||
|
|
||||||
|
- `sources` - источники ip адресов (выбирается результат от первого по времени сработавшего источника, который вернул хотябы один ipv4 или ipv6 адрес)
|
||||||
|
- `filters` - фильтры, если хоть один вернет ложь то программа ничего никуда не запишет и не отправит, например проверка, что ip адрес не изменился
|
||||||
|
- `outputs` - модули вывода, например ыоыод в консоль, запись в файл или создание dns записей на сервере
|
||||||
|
|
||||||
|
Все модули источников/фильтров/вовода работают конкурентно через `asyncio`.
|
||||||
|
|
||||||
|
### TODO
|
||||||
|
|
||||||
|
- Добавить названия python классов и их параметры.
|
||||||
|
Loading…
Reference in New Issue
Block a user