From aa88d0e6ab26480c67b0edbf3d6e25776aaead2a Mon Sep 17 00:00:00 2001 From: Dmitry Date: Tue, 20 Feb 2024 16:09:39 +0300 Subject: [PATCH] upd README --- README.md | 50 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4c3d79d..d9848d8 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,57 @@ # pddnsc -Возможно ddns клиент +Возможно `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 классов и их параметры.