john

john / DNSControl

Last active 5 months ago

Like 0

Files for managing public DNS records with DNSControl + Forgejo Actions

Revision 8c75063c83be38c0cf03088d130204288e467f40

creds.json Raw
1{
2 "porkbun": {
3 "TYPE": "PORKBUN",
4 "api_key": "$PORKBUN_API_KEY",
5 "secret_key": "$PORKBUN_SECRET_KEY"
6 },
7 "bunny_dns": {
8 "TYPE": "BUNNY_DNS",
9 "api_key": "$BUNNY_API_KEY"
10 },
11 "none": { "TYPE": "NONE" }
12}
dnsconfig.js Raw
1// dnsconfig.js: dnscontrol configuration file
2
3// Providers:
4var DSP_BUNNY_DNS = NewDnsProvider("bunny_dns");
5var REG_PORKBUN = NewRegistrar("porkbun");
6var REG_NONE = NewRegistrar("none");
7
8
9// Domains:
10D("example.com", REG_NONE
11 , DnsProvider(DSP_BUNNY_DNS)
12 , DefaultTTL("1h")
13 , NAMESERVER("kiki.bunny.net.")
14 , NAMESERVER("coco.bunny.net.")
15 , A("@", "192.0.2.1")
16 , CNAME("cdn", "resources.example.net.")
17 , TXT("hi_there", "how are ya?")
18 , TXT("@", "example-verification=hunter2")
19 , MX("@", 10, "mail.example.org.")
20)
21
preview.yaml Raw
1# .github/workflows/preview.yaml
2# Validates and previews changes in a PR
3
4name: Check and Preview
5
6on:
7 pull_request:
8
9permissions:
10 contents: read
11 issues: write
12 pull-requests: write
13
14jobs:
15 preview:
16 runs-on: ubuntu-latest
17 steps:
18 - uses: actions/checkout@v4
19
20 - name: DNSControl check
21 uses: is-cool-me/dnscontrol-action@v4.13.0
22 with:
23 args: check
24
25 - name: DNSControl preview
26 uses: is-cool-me/dnscontrol-action@v4.13.0
27 id: dnscontrol_preview
28 env:
29 BUNNY_API_KEY: ${{ secrets.BUNNY_API_KEY }}
30 PORKBUN_API_KEY: ${{ secrets.PORKBUN_API_KEY }}
31 PORKBUN_SECRET_KEY: ${{ secrets.PORKBUN_SECRET_KEY }}
32 with:
33 args: preview
34
35 - name: Preview pull request comment
36 uses: unsplash/comment-on-pr@v1.3.0
37 env:
38 GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
39 with:
40 msg: |
41 ```
42 ${{ steps.dnscontrol_preview.outputs.preview_comment }}
43 ```
44 check_for_duplicate_msg: true
push.yaml Raw
1# .github/workflows/push.yaml
2# Implements DNS changes when pushed to main
3
4name: Push
5
6on:
7 push:
8 branches:
9 - main
10
11jobs:
12 push:
13 runs-on: ubuntu-latest
14 steps:
15 - uses: actions/checkout@v4
16
17 - name: DNSControl push
18 uses: is-cool-me/dnscontrol-action@v4.13.0
19 env:
20 BUNNY_API_KEY: ${{ secrets.BUNNY_API_KEY }}
21 PORKBUN_API_KEY: ${{ secrets.PORKBUN_API_KEY }}
22 PORKBUN_SECRET_KEY: ${{ secrets.PORKBUN_SECRET_KEY }}
23 with:
24 args: push