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

No packages published