Skip to content

jscraftcamp/DNS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DNS

DNS-as-code for jscraftcamp.org using OctoDNS with the Hetzner provider.

Prerequisites

Local Setup

python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Copy the environment template and fill in your token:

cp .env.example .env
# edit .env with your actual token

Usage

Dry-run (preview changes without applying):

source .env
octodns-sync --config-file=octodns.yaml

Apply (push changes to Hetzner DNS):

source .env
octodns-sync --config-file=octodns.yaml --doit

Importing Existing Records

If the zone already has records in Hetzner, dump them first to avoid deleting anything on the initial sync:

octodns-dump --config-file=octodns.yaml --output-dir=zones/ jscraftcamp.org. hetzner

Review zones/jscraftcamp.org.yaml, then commit the result.

CI/CD

GitHub Actions runs automatically:

Trigger Behaviour
Pull request octodns-sync dry-run (plan only)
Push to main octodns-sync --doit (apply)

The workflow requires a repository secret named HETZNER_TOKEN.

Structure

.
├── octodns.yaml                  # OctoDNS configuration
├── zones/
│   └── jscraftcamp.org.yaml      # DNS records for jscraftcamp.org
├── requirements.txt              # Python dependencies
└── .github/workflows/
    └── octodns.yaml              # CI/CD workflow

About

DNS-as-code for JSCraftcamp domains — managed declaratively with OctoDNS for versioned, reviewable changes.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors