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.
docker compose exec agent wg-flow-agent plugin install regru
# or
wg-flow-agent plugin install regruThen the local UI → Connections → regru, or YAML.
What lands in inventory
| REG.RU object | resource_type | Notes |
|---|---|---|
| Domain | domain | provider_resource_id is the lowercased name. A → active, N → pending, S / D / O → stopped |
| Hostname from A / AAAA / CNAME | domain | child FQDNs such as docs.example.ru. Apex, * and _label are not duplicated as subdomains |
| DNS record | dns | Stable id from the zone, type, name, and value. REG.RU records have no id |
Hosting srv_hosting_* | hosting | hosting:{service_id}. The plan is metadata.plan |
VPS srv_vps* and dedicated srv_dedicated* | server | server:{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
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: trueSeveral accounts are several sources.
Source fields
| Field | Required | Description |
|---|---|---|
id | yes | Log key (regru/account) |
provider_account | yes | Account label in inventory |
url | no | Default https://api.reg.ru/api/regru2 |
username / password | yes | Account login and API password; password is masked in the UI |
collect_domains / collect_dns / collect_hosting / collect_servers | no | Default true |
sync_interval_seconds | no | Minimum 300 |
Check
wg-flow-agent status
wg-flow-agent dry-runJSON uses provider: regru. Health calls nop (the login is not written to inventory).
Common errors
| Symptom | What to check |
|---|---|
PASSWORD_AUTH_FAILED | account login and the API password |
ACCESS_DENIED_FROM_IP | agent IP on the API allow list |
| Empty DNS for a domain | the zone is not hosted at REG.RU — the domain resource is still collected |
| Duplicates with Cloudflare / SpaceWeb | different provider values are expected; merge in the console |