DNS Providers
Connect a DNS provider to manage zones and records from Skitflow, and let Skitflow create the A or CNAME record when you bind a domain.
DNS Providers connect Skitflow to the account where your domains are hosted. Once a provider is connected you can browse its zones, create, edit and delete records from the dashboard, and optionally let Skitflow point a domain at your server for you when you save it on an application or Compose service.
Ten provider setups are supported: Cloudflare, Amazon Route 53, Porkbun, Infomaniak, OVHcloud, Yandex Cloud DNS, Timeweb Cloud, Timeweb Hosting, REG.RU and NIC.RU (RU-CENTER).
Managing providers (add, edit, delete, test) is available to organization Owner and Admin roles. Browsing zones and records, and creating, editing or deleting records, follow the domains permissions (read, create, update, delete) from Custom Roles. DNS Providers have no plan or license gate.
Add a provider
- Open Settings → DNS Providers and click Add provider.
- Enter a name (up to 64 characters, for example
Production DNS) and pick the Provider. - Fill in the Credentials for that provider — see the provider reference below. The form description says it plainly: credentials are encrypted and are never returned to the browser after saving.
- Save. The provider appears in the list with its creation date, whether it uses per-record or zone-level TTL, and whether it supports proxying.
To edit a provider, use the edit action on its row. Saved credentials are masked (•••••••• (unchanged)); leave every credential field blank to keep them. If you switch a provider to a different type, or switch Timeweb between Cloud and Hosting, you must enter credentials for the new setup.
To delete a provider, use the delete action and confirm. This cannot be undone. Domains that were bound to the provider keep existing but lose the provider binding and have Create DNS record automatically turned off. Records already written at the DNS provider are not touched.
Test the connection
Save the provider first, then click Test connection. Skitflow makes the cheapest authenticated call the provider offers and reports Connection successful or Connection test failed. When the provider rejects the request, its reason is shown. The UI asks you to save credential or provider changes before testing, because the test uses the stored credentials.
You can run the same check through the API:
curl -X POST 'https://your-skitflow-host/api/dnsProvider.testConnection' \
-H 'accept: application/json' \
-H 'content-type: application/json' \
-H 'x-api-key: YOUR-GENERATED-API-KEY' \
-d '{"dnsProviderId": "YOUR-DNS-PROVIDER-ID"}'See Skitflow API for how to generate an API key. A successful call returns {"ok": true}.
If a provider's stored credentials can no longer be decrypted (for example after the instance secret key was changed), testing and record management report that the credentials cannot be read. Edit the provider and enter the credentials again, or delete it.
Provider reference
All credential fields are required unless marked optional. Field labels are the ones shown in the dashboard.
Cloudflare
| Field | Notes |
|---|---|
| API token | Use a scoped token with the Zone → DNS → Edit permission. |
Cloudflare is the only provider with Proxy support: A, AAAA and CNAME records can be switched between DNS only and Proxied. Proxied records always use automatic TTL. TTL is per record; Auto is Cloudflare's value 1.
Amazon Route 53
| Field | Notes |
|---|---|
| Access key ID | IAM access key. |
| Secret access key | Use IAM credentials with permission to list hosted zones and manage Route 53 records. |
The form has no region field; Skitflow uses us-east-1. Route 53 keeps multiple values of a record as one record set; the records table shows them one per line.
Porkbun
| Field | Notes |
|---|---|
| API key | Starts with pk1_. |
| Secret API key | Starts with sk1_. Create the key pair in Porkbun API Access and enable API access for the domains you want to manage. |
Infomaniak
| Field | Notes |
|---|---|
| API token | A token with permission to read and update DNS zones. |
Infomaniak accepts TTL values from 60 to 86400 seconds.
OVHcloud
| Field | Notes |
|---|---|
| API endpoint | The fixed endpoint where the OVHcloud application was created: OVHcloud Europe, OVHcloud Canada, OVHcloud US, Kimsufi Europe, Kimsufi Canada, So you Start Europe or So you Start Canada. Defaults to OVHcloud Europe. |
| Application key | From your OVHcloud API application. |
| Application secret | From your OVHcloud API application. |
| Consumer key | Must grant read and write access to the DNS zones you want to manage. |
| DNS zone (optional) | Restricts the provider to one delegated zone. Leave empty to discover all accessible zones. |
Set DNS zone when your consumer key only covers a delegated subdomain zone, for example eu.example.com: the provider then lists exactly that zone instead of discovering zones, and the connection test checks that zone.
Yandex Cloud DNS
| Field | Notes |
|---|---|
| Folder ID | The Yandex Cloud folder holding the DNS zones. Cloud DNS lists zones per folder, not per account. |
| Service account authorized key | Paste the authorized key JSON of a service account with the dns.editor role. |
Cloud DNS accepts IAM tokens only, so Skitflow exchanges the key for a short-lived token on every request. The pasted value must be valid JSON containing id, service_account_id and private_key.
Timeweb Cloud and Timeweb Hosting
Timeweb is one provider with two Account mode choices. Pick the one that matches where your domains live.
Cloud (timeweb.cloud)
| Field | Notes |
|---|---|
| API token | Create it in the Timeweb Cloud control panel under API and tokens; it must allow managing domains and DNS records. |
TTL is per record and must be at least 1 second. The record types NS and CAA are not supported.
Hosting (timeweb.ru)
| Field | Notes |
|---|---|
| Hosting account login | Your Timeweb Hosting login. |
| Hosting account password | Your Timeweb Hosting password. |
| Hosting API key | The appkey. Request it from Timeweb Hosting support. SMS login confirmation must be disabled for API access. |
Hosting zones are discovered from your sites only: add the domain in the Timeweb panel first if it is not listed. TTL is managed by Timeweb Hosting, so a record's TTL cannot be edited here. CAA records are not supported. Hosting has no update call, so editing a record deletes and recreates it; if recreation fails the old record is already gone.
REG.RU
| Field | Notes |
|---|---|
| Account login | Your REG.RU account login. |
| API password | The separate API password from the REG.RU account settings, not the sign-in password. Enable API access and allow your server's IP address there first. |
Zones are the domains delegated to the REG.RU name servers. REG.RU keeps one TTL per zone, so a record's TTL cannot be edited here. CAA records are not supported.
NIC.RU (RU-CENTER)
| Field | Notes |
|---|---|
| Application login | Register an application on the RU-CENTER OAuth server; its login and secret are what mint access tokens. |
| Application secret | The application's secret. |
| Contract number | The NIC.RU contract the application acts for, as shown in the control panel, for example 123/NIC-D. |
| Contract password | The administrative or technical password of that contract. |
This covers the DNS-hosting API only; the registrar API is a separate contract. NIC.RU issues no standing API key, so Skitflow exchanges these credentials for a short-lived token on every operation. CAA records are not supported.
At a glance
| Provider | TTL | Proxy | Record types not supported |
|---|---|---|---|
| Cloudflare | Per record (Auto = 1) | Yes | — |
| Amazon Route 53 | Per record | No | — |
| Porkbun | Per record | No | — |
| Infomaniak | Per record, 60–86400 s | No | — |
| OVHcloud | Per record | No | — |
| Yandex Cloud DNS | Per record | No | — |
| Timeweb Cloud | Per record, 1 s or more | No | NS, CAA |
| Timeweb Hosting | Zone level | No | CAA |
| REG.RU | Zone level | No | CAA |
| NIC.RU | Per record | No | CAA |
Manage zones and records
On a provider's row, click Manage domains. The Managed domains page lists the zones the credentials can access. If none appear, the message These credentials cannot access any DNS zones. means the token, key or folder does not cover any zone.
Pick a zone to open its records. The table has the columns Type, Name, Value, TTL, Proxy and Actions, with search, a record type filter and paging (10, 20 or 50 records per page). Changes are written directly to the DNS provider.
Click New record (or the edit action on a row) to open the record panel:
- Type — A, AAAA, CNAME, MX, TXT, NS, SRV or CAA, subject to the provider table above.
- Name — use
@for the zone root. - Value — one value per line when a record has several values. MX is
priority host(for example10 mail.example.com), SRV ispriority weight port target, CAA isflags tag "value". A needs an IPv4 address, AAAA an IPv6 address, CNAME and NS need a DNS name, and a CNAME takes exactly one value. - Fill from server — for A records, choose one of your connected servers to fill in its IP address.
- TTL — shown only for providers with per-record TTL; leave it empty to use the provider default. The panel validates the range the provider accepts.
- Proxy — Cloudflare only.
Deleting a record asks for confirmation and removes it at the DNS provider.
Create DNS records automatically for a domain
Binding a domain to a DNS provider lets Skitflow create the record for you. This is opt-in and off by default.
- Open the application or Compose service and add or edit a domain.
- Turn on Create DNS record automatically ("Create or update an A or CNAME record when this domain is saved").
- Select a DNS provider. Saving without one is rejected.
- Save the domain.
When the domain is saved, Skitflow:
- picks the zone whose name is the longest match for the domain's host (a domain such as
app.eu.example.comuses theeu.example.comzone when both zones exist); - uses the server's address as the target: an IPv4 address becomes an A record, a DNS hostname becomes a CNAME record. An IPv6 address is not supported for automatic DNS. If the server has no address, the instance's configured web server IP is used as a fallback;
- updates the existing A or CNAME record for that host if there is exactly one, keeping its TTL and Cloudflare proxy status, and otherwise creates a new record. If it finds several A/CNAME records for the host, it leaves them alone and asks you to update them manually.
Automatic DNS never blocks saving the domain. If the DNS step fails, you see the warning Domain saved, but DNS was not updated with the reason (for example no matching zone, unreadable credentials, or a missing permission). Automatic writes need the same domains.create or domains.update permission as manual record changes.
Changing the DNS provider on a domain does not remove records created at the previous provider, and turning the option off does not delete anything. Clean up old records in the provider's records table.
Related
- Domains — adding domains to applications and Compose services.
- Certificates — HTTPS for your domains.
- Custom Roles — the
domainspermission group. - Audit Logs — provider and record changes are recorded.