Skip to main content
OctoDNS is an open-source tool that manages DNS zones across multiple providers — use it to synchronize records from a primary DNS provider to Gcore Managed DNS, keeping Gcore as a secondary DNS with an up-to-date copy of zone data. Before starting, verify that the primary DNS provider is supported by checking the providers table. If the provider is not listed, automatic record transfer is not supported.

Install OctoDNS

Steps 2–11 run in a terminal on the machine where OctoDNS will be installed — a local laptop or any Linux server works. The commands below are for Debian/Ubuntu; for other operating systems, install Python 3 and create a virtual environment using the method appropriate for that system.
1

Create a DNS zone for the domain to synchronize

In the Gcore Customer Portal, navigate to DNS and create a DNS zone for the domain to synchronize. If the zone already exists, skip this step.
All zones page in the Gcore Customer Portal
2

Update the local package index

3

Install Python 3 and the venv module

4

Create a working directory for OctoDNS

5

Navigate to the working directory

6

Create and activate a Python virtual environment

Keep the virtual environment active for all remaining steps.
7

(Optional) Install Git

8

Install OctoDNS and the provider packages

Replace octodns_yourprovider with the module name for the primary DNS provider found in the providers table:
Verify the installation:
Expected output (version number varies):
If the command is not found, the virtual environment is not active. Run source venv/bin/activate from the ~/octodns directory and retry.
9

Navigate to the config directory

10

Create config.yaml

This file specifies the providers and DNS zones for OctoDNS to manage. YAML indentation is required — use the template below as a starting point:
Gcore DNS provider configurationThe Gcore DNS provider requires authentication. An API token is recommended:
Alternatively, login and password authentication is supported:
Primary provider configurationEach provider has its own configuration format. In the providers table, find the primary provider, open its repository, and locate the Configuration section to copy the provider name, class name, and authentication fields.With Amazon Route 53 as the primary provider, the full config.yaml looks like this:
Save and close the file.
11

Verify with a dry-run sync, then apply

A dry-run shows the planned changes without applying them:
Example output:
If the output is correct, apply the changes:
Example output:
The synchronized records are visible in the Customer Portal under DNS → the zone name.
DNS zone records in the Gcore Customer Portal

Update records

To re-sync records after changes in the primary provider:
1

Navigate to the OctoDNS directory and activate the virtual environment

2

Run the sync command

To automate record updates, schedule this command with cron.