Skip to content

MKultra6969/TimeWebDDNS

Repository files navigation

TimeWeb DDNS: Динамический DNS-клиент для Timeweb

Этот скрипт автоматически обновляет A-записи для ваших доменов на хостинге Timeweb, когда ваш внешний IP-адрес меняется. Идеально подходит для домашнего сервера или любого другого устройства с динамическим IP.

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

✨ Возможности

  • Автоматическая проверка IP: Скрипт периодически проверяет ваш внешний IP и сравнивает его с сохраненным.
  • Интеллектуальное обновление: DNS-записи обновляются только в случае реального изменения IP-адреса.
  • Поддержка нескольких доменов: Обновляйте A-записи сразу для нескольких доменов и поддоменов.
  • Сохранение сессии: Скрипт сохраняет cookies после первого входа, что значительно ускоряет последующие запуски и снижает риск блокировки.
  • Простота развертывания: Запуск одной командой благодаря Docker Compose.
  • Интерактивный режим: Возможность вручную просматривать и изменять A-записи через консольное меню.

⚙️ Требования

  • Docker
  • Docker Compose

🚀 Установка и запуск

Процесс установки и запуска максимально упрощен.

1. Клонируйте репозиторий

git clone https://github.com/MKultra6969/TimeWebDDNS.git
cd TimeWebDDNS

2. Создайте файл конфигурации .env

Создайте в корне проекта файл с именем .env и скопируйте в него содержимое ниже, подставив свои данные.

# Данные для входа в панель управления Timeweb
TIMEWEB_LOGIN=ваш_логин_timeweb
TIMEWEB_PASSWORD=ваш_секретный_пароль

# Домены и поддомены для обновления, через запятую
TIMEWEB_DOMAINS=domain.ru,sub.domain.ru,another.com

3. Соберите и запустите контейнер

Выполните одну команду, которая соберет образ и запустит контейнер в фоновом режиме (-d).

docker-compose up --build -d

На этом все! Скрипт запущен и будет работать в фоне, проверяя ваш IP-адрес с интервалом, указанным в настройках (по умолчанию 30 минут).

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

Просмотр логов

Чтобы посмотреть, что происходит внутри контейнера в реальном времени:

docker-compose logs -f

Остановка контейнера

docker-compose down

Запуск интерактивного меню

Если вам нужно вручную изменить A-запись или сбросить сессию, вы можете запустить интерактивное меню:

docker-compose run --rm timeweb-ddns python main.py

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

Все основные параметры настраиваются через переменные окружения в файле .env.

Переменная Описание Пример
TIMEWEB_LOGIN Ваш логин от аккаунта Timeweb. user12345
TIMEWEB_PASSWORD Ваш пароль от аккаунта Timeweb. s3cr3t_p@ssw0rd
TIMEWEB_DOMAINS Список доменов и/или поддоменов, для которых нужно обновлять A-запись. Перечисляются через запятую. domain.ru,sub.domain.ru

P.S.

  • Впрочем как всегда с ненавистью к людям, скрипт изначально написан для себя, решил выложить по причине: может пригодится другим. Лицензия как всегда WTFPL, поэтому DO WHAT THE FUCK YOU WANT To Public License
  • При запуске в докере, режим с firefox работать не будет(firefox там тупо нет)
  • Если есть желание можно добавить свои сервисы для получения ip в файле utils.py
IP_SERVICES = [
    'https://api.ipify.org?format=json',
    'https://wtfismyip.com/text',
    'https://api.myip.com/'
]
  • Так же не советую ставить задержку между запросами меньше 30 минут.

About

Скрипт для автоматического обновления DNS TimeWeb

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors