john

john / DNSControl

Last active 5 months ago

Like 0

Files for managing public DNS records with DNSControl + Forgejo Actions

Revision 654e6b3dcfa5cdd36fa55d5a7e15a55a887ed2ae

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": {
12 "TYPE": "NONE"
13 }
14}
dnsconfig.js Raw
1// dnsconfig.js: dnscontrol configuration file
2
3// Providers:
4var DSP_BUNNY_DNS = NewDnsProvider("bunny_dns");
5var DSP_PORKBUN = NewDnsProvider("porkbun");
6var REG_PORKBUN = NewRegistrar("porkbun");
7var REG_NONE = NewRegistrar("none");
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
1name: Check and Preview
2
3on:
4 pull_request:
5
6permissions:
7 contents: read
8 issues: write
9 pull-requests: write
10
11jobs:
12 preview:
13 runs-on: docker
14 steps:
15 - uses: actions/checkout@v4
16
17 - name: DNSControl check
18 uses: https://git.vim.wtf/actions/dnscontrol-action@v4.13.0
19 with:
20 args: check
21
22 - name: DNSControl preview
23 uses: https://git.vim.wtf/actions/dnscontrol-action@v4.13.0
24 id: dnscontrol_preview
25 env:
26 BUNNY_API_KEY: ${{ secrets.BUNNY_API_KEY }}
27 CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
28 CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
29 PORKBUN_API_KEY: ${{ secrets.PORKBUN_API_KEY }}
30 PORKBUN_SECRET_KEY: ${{ secrets.PORKBUN_SECRET_KEY }}
31 NO_COLOR: true
32 with:
33 args: preview
34
35 # - name: Preview pull request comment
36 # uses: https://git.vim.wtf/actions/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
45
push.yaml Raw
1name: Push
2
3on:
4 push:
5 branches:
6 - main
7
8jobs:
9 push:
10 runs-on: docker
11 steps:
12 - uses: actions/checkout@v4
13
14 - name: DNSControl push
15 uses: https://git.vim.wtf/actions/dnscontrol-action@v4.13.0
16 env:
17 BUNNY_API_KEY: ${{ secrets.BUNNY_API_KEY }}
18 CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
19 CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
20 PORKBUN_API_KEY: ${{ secrets.PORKBUN_API_KEY }}
21 PORKBUN_SECRET_KEY: ${{ secrets.PORKBUN_SECRET_KEY }}
22 with:
23 args: push
24