Тип: worker
Версия: 1.0.0
Коннектор: library/connectors/api/beget/
Конфиг: system/config/beget.yaml
Управляет хостингом Beget через API:
- почтовые ящики
- DNS записи
- сайты и домены
- базы данных
- тикеты поддержки
from library.connectors.api.beget import BegetClient
beget = BegetClient.from_config() # читает system/config/beget.yaml
# или явно:
beget = BegetClient(login="kondurov", password="JU5-QeT-YvD-Ayg")
# Список ящиков
boxes = beget.mail.get_mailbox_list()
# Создать ящик
beget.mail.create_mailbox(
domain="aipd.ru",
mailbox="admin",
password="StrongPass123!"
)
# Изменить пароль
beget.mail.change_password("aipd.ru", "admin", "NewPass!")
# Переслать на другой адрес
beget.mail.set_forward("aipd.ru", "admin", "admin@gmail.com")
# Удалить
beget.mail.delete_mailbox("aipd.ru", "admin")
# Получить все записи домена
records = beget.dns.get_data("aipd.ru")
# Добавить A-запись
beget.dns.add_records("aipd.ru", [
{"type": "A", "value": "155.212.142.142"}
])
# Добавить TXT (SPF)
beget.dns.add_records("aipd.ru", [
{"type": "TXT", "value": "v=spf1 include:beget.com ~all"}
])
# Добавить MX
beget.dns.add_records("aipd.ru", [
{"type": "MX", "priority": 10, "value": "mx1.beget.com."},
{"type": "MX", "priority": 20, "value": "mx2.beget.com."},
])
# Создать тикет
ticket = beget.support.create_ticket(
subject="Установить PTR запись",
message=(
"Добрый день!\n\n"
"Прошу установить PTR-запись (обратный DNS) для нашего VPS:\n"
"IP: 155.212.142.142\n"
"PTR: mail.aipd.ru\n\n"
"Это необходимо для корректной работы почтового сервера.\n\n"
"Спасибо!"
)
)
ticket_id = ticket["id"]
# Список тикетов
tickets = beget.support.get_list()
# Посмотреть переписку
thread = beget.support.get_ticket(ticket_id)
# Ответить
beget.support.reply(ticket_id, "Спасибо, подтверждаем.")
# Закрыть
beget.support.close_ticket(ticket_id)
# Добавить домен в аккаунт (нужно для создания почты на нём)
beget.site.add("aipd.ru")
# Список сайтов
sites = beget.site.get_list()
# Список зарегистрированных доменов
domains = beget.domain.get_list()
# Изменить PHP версию
beget.domain.change_php_version("pirotehnika.spb.ru", "8.3")
# Список БД
dbs = beget.mysql.get_list()
# Создать БД (имя = kondurov_suffix)
beget.mysql.add_db("newapp", "StrongPass!")
# Изменить пароль
beget.mysql.change_access_password("kondurov_newapp", "NewPass!")
# Нагрузка всех сайтов
load = beget.stat.get_sites_list_load()
# Нагрузка конкретного
load = beget.stat.get_site_load("pirotehnika.spb.ru")
# Нагрузка БД
db_load = beget.stat.get_db_list_load()
beget = BegetClient.from_config()
# 1. Добавить домен в аккаунт
beget.site.add("aipd.ru")
# 2. Создать ящики
import secrets, string
def gen_pass():
chars = string.ascii_letters + string.digits + "!@#$"
return "".join(secrets.choice(chars) for _ in range(16))
admin_pass = gen_pass()
ai_pass = gen_pass()
beget.mail.create_mailbox("aipd.ru", "admin", admin_pass)
beget.mail.create_mailbox("aipd.ru", "ai", ai_pass)
print(f"admin@aipd.ru : {admin_pass}")
print(f"ai@aipd.ru : {ai_pass}")
beget = BegetClient.from_config()
ticket = beget.support.create_ticket(
subject="Установить PTR запись для VPS",
message=(
"Добрый день!\n\n"
"Прошу установить PTR-запись для IP нашего VPS:\n"
" IP: 155.212.142.142\n"
" PTR: mail.aipd.ru\n\n"
"Запись необходима для работы почтового сервера.\n"
"Спасибо!"
)
)
print(f"Тикет создан: #{ticket['id']}")