Skip to content

REG.RU ​

Status: available · package wg-flow-plugin-regru 0.1.0 · provider regru · category cloud.

The plugin calls REG.API2 and sends domains, DNS, virtual hosting, and VPS/dedicated servers from a REG.RU account into inventory. The login and password stay in the agent YAML.

Enable the API in the REG.RU account and allow the agent IP. Otherwise health returns ACCESS_DENIED_FROM_IP.

The plugin only reads: nop, service/get_list, zone/get_resource_records. It does not call service/get_details: hosting replies include the panel password, and domain replies include contact data.

Cloud servers on cloud.reg.ru use the separate REG.RU Cloud plugin (CloudVPS API). SSL, parking, web forwarding, and licences are not collected in 0.1.0.

Install ​

The agent must be connected to the API.

bash
docker compose exec agent wg-flow-agent plugin install regru
# or
wg-flow-agent plugin install regru

Then the local UI → Connections → regru, or YAML.

What lands in inventory ​

REG.RU objectresource_typeNotes
Domaindomainprovider_resource_id is the lowercased name. A → active, N → pending, S / D / O → stopped
Hostname from A / AAAA / CNAMEdomainchild FQDNs such as docs.example.ru. Apex, * and _label are not duplicated as subdomains
DNS recorddnsStable id from the zone, type, name, and value. REG.RU records have no id
Hosting srv_hosting_*hostinghosting:{service_id}. The plan is metadata.plan
VPS srv_vps* and dedicated srv_dedicated*serverserver:{service_id}

A zone REG.RU does not manage is skipped. The other domains of that source are still collected. A failed get_list or a failed zone request drops the whole source: a partial snapshot is not sent, so reconcile does not retire the account.

In the console, domains group by apex, as with SpaceWeb.

Each collect slice can be turned off. A disabled slice is absent from the next successful sync, and inventory marks those rows inactive.

Expiry ​

expiration_date is stored as metadata.expires_at (YYYY-MM-DD). 0000-00-00 is omitted. get_list has no renewal price, so the plugin does not set billing_amount. It does not create alerts or cost rates.

YAML ​

yaml
plugins:
  regru:
    enabled: true
    sources:
      - id: account
        provider_account: "regru-main"
        sync_interval_seconds: 300
        url: "https://api.reg.ru/api/regru2"
        username: "account@example.com"
        password: "…"
        collect_domains: true
        collect_dns: true
        collect_hosting: true
        collect_servers: true

Several accounts are several sources.

Source fields ​

FieldRequiredDescription
idyesLog key (regru/account)
provider_accountyesAccount label in inventory
urlnoDefault https://api.reg.ru/api/regru2
username / passwordyesAccount login and API password; password is masked in the UI
collect_domains / collect_dns / collect_hosting / collect_serversnoDefault true
sync_interval_secondsnoMinimum 300

Check ​

bash
wg-flow-agent status
wg-flow-agent dry-run

JSON uses provider: regru. Health calls nop (the login is not written to inventory).

Common errors ​

SymptomWhat to check
PASSWORD_AUTH_FAILEDaccount login and the API password
ACCESS_DENIED_FROM_IPagent IP on the API allow list
Empty DNS for a domainthe zone is not hosted at REG.RU — the domain resource is still collected
Duplicates with Cloudflare / SpaceWebdifferent provider values are expected; merge in the console