Управление DNS-записями через REST API NIC.RU (RU-CENTER).
# Skill уже находится в
~/.openclaw/workspace/skills/nic-ru/
# Или клонируйте из репозитория
git clone https://github.com/adinvadim-dev/openclaw-nic-ru-skill.git \
~/.openclaw/workspace/skills/nic-ruchmod +x ~/.openclaw/workspace/skills/nic-ru/scripts/nic-dns
chmod +x ~/.openclaw/workspace/skills/nic-ru/scripts/auth.sh
# Добавьте в ~/.zshrc или ~/.bashrc:
export PATH="$PATH:$HOME/.openclaw/workspace/skills/nic-ru/scripts"pip install requests- Войдите в личный кабинет NIC.RU
- Перейдите в раздел OAuth приложения
- Создайте новое приложение или используйте существующее
- Скопируйте
App LoginиApp Password
# Вариант 1: Интерактивная настройка
./auth.sh setup
# Вариант 2: Ручное создание файла
cat > ~/.openclaw/workspace/.secrets/nic-ru-credentials <<EOF
NIC_APP_LOGIN=your_oauth_app_login
NIC_APP_PASSWORD=your_oauth_app_password
NIC_USERNAME=your_nic_ru_login
NIC_PASSWORD=your_nic_ru_password
EOF
chmod 600 ~/.openclaw/workspace/.secrets/nic-ru-credentials
# Получите токен
nic-dns authnic-dns zones
nic-dns zones --jsonnic-dns records example.ru
nic-dns records example.ru --json# A-запись
nic-dns add example.ru A www 1.2.3.4
nic-dns add example.ru A @ 1.2.3.4 3600
# AAAA (IPv6)
nic-dns add example.ru AAAA www 2001:db8::1
# CNAME
nic-dns add example.ru CNAME blog www.example.ru
# MX (формат: "priority exchange")
nic-dns add example.ru MX @ "10 mail.example.ru"
# TXT
nic-dns add example.ru TXT @ "v=spf1 include:_spf.google.com ~all"
# NS
nic-dns add example.ru NS @ ns1.example.ru
# Wildcard
nic-dns add example.ru A "*" 1.2.3.4# Сначала найди ID записи
nic-dns records example.ru
# Удали по ID
nic-dns delete example.ru 123456nic-dns update example.ru 123456 5.6.7.8
nic-dns update example.ru 123456 5.6.7.8 --ttl 7200Важно! Изменения не применяются автоматически. Нужен commit:
nic-dns commit example.runic-dns rollback example.ru| Метод | Endpoint | Описание |
|---|---|---|
| GET | /services/ |
Список DNS-услуг |
| GET | /services/{service}/zones/{zone}/records |
Записи зоны |
| PUT | /services/{service}/zones/{zone}/records |
Добавить запись |
| DELETE | /services/{service}/zones/{zone}/records/{id} |
Удалить запись |
| POST | /services/{service}/zones/{zone}/commit |
Применить изменения |
| POST | /services/{service}/zones/{zone}/rollback |
Откатить изменения |
A— IPv4 адресAAAA— IPv6 адресCNAME— каноническое имя (алиас)MX— почтовый серверTXT— текстовая запись (SPF, DKIM, верификация)NS— сервер имёнSRV— сервис
API возвращает XML. Скрипт парсит и выводит в удобном формате.
# A-записи для домена
nic-dns add mysite.ru A @ 203.0.113.50
nic-dns add mysite.ru A www 203.0.113.50
nic-dns commit mysite.runic-dns add mysite.ru MX @ "10 mx.yandex.net"
nic-dns add mysite.ru TXT @ "v=spf1 redirect=_spf.yandex.net"
nic-dns commit mysite.ru# Добавь challenge
nic-dns add mysite.ru TXT _acme-challenge "challenge_token_here"
nic-dns commit mysite.ru
# После верификации — удали
nic-dns records mysite.ru | grep _acme-challenge
nic-dns delete mysite.ru <record-id>
nic-dns commit mysite.runic-dns add mysite.ru TXT "_acme-challenge" "dns_challenge_token"
nic-dns commit mysite.runic-dns authПроверьте что у OAuth приложения есть scope для DNS API.
nic-dns zones # Посмотрите доступные зоны# Проверьте файл credentials
cat ~/.openclaw/workspace/.secrets/nic-ru-credentials
# Пересоздайте
./auth.sh setup- Credentials хранятся в
~/.openclaw/workspace/.secrets/с правами600 - Токен автоматически обновляется при истечении
- Не коммитьте credentials в git
MIT