pddnsc/README.md
2024-02-20 16:11:32 +03:00

58 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# pddnsc
Возможно `DDNS` клиент
## запуск
~~~sh
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 классов и их параметры.