pddnsc

Форк
0

8 месяцев назад
8 месяцев назад
8 месяцев назад
8 месяцев назад
8 месяцев назад
8 месяцев назад
8 месяцев назад
8 месяцев назад
8 месяцев назад
8 месяцев назад
8 месяцев назад
8 месяцев назад
8 месяцев назад
8 месяцев назад
README.md

pddnsc

Возможно DDNS клиент

Запуск

python -m pddnsc.cli

либо в docker/podman (для запуска по расписанию в cron):

docker run -v .state:/app/state:rw \
-v .settings:/app/settings:ro \
-e SCHEDULE=@hourly \
gitea.b4tman.ru/b4tman/pddnsc

Конфигурация

Конфигурация находится в файле settings/config.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 и httpx.

Подробная документация

Её необходимо собрать с помошью mkdocs. Для этого нужно установить зависимости:

pip install -r requirements.txt
pip install -r requirements.docs.txt

После этого либо собрать документацию в каталог site/, либо запустить тестовый сервер.

# сборка
mkdocs build
# тестовый сервер
mkdocs serve

Описание

возможно ddns клиент

Языки

Python

  • Dockerfile
Сообщить о нарушении

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.