https://github.com/jb3/infra
Ansible + Jinja files for deploying the web & DNS servers for jb3.dev
https://github.com/jb3/infra
ansible bind dns dns-server
Last synced: about 2 months ago
JSON representation
Ansible + Jinja files for deploying the web & DNS servers for jb3.dev
- Host: GitHub
- URL: https://github.com/jb3/infra
- Owner: jb3
- Created: 2021-12-01T03:37:00.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2025-09-23T05:17:37.000Z (6 months ago)
- Last Synced: 2025-09-23T06:23:17.410Z (6 months ago)
- Topics: ansible, bind, dns, dns-server
- Language: Jinja
- Homepage: https://jb3.dev/projects/diy-dns
- Size: 142 KB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.org
Awesome Lists containing this project
README
#+TITLE: Infra
** Components
*** DNS
DNS is provided by the ~nameserver~ group and role. It manages two authoritative DNS servers located at ~core.host.jb3.dev~ and ~rt1.host.jb3.dev~.
DNS servers are authoritative for the following zones:
- jb3.dev
Zones are signed using DNSSEC and keys are automatically generated if not present on the local machine. After DNS has been deployed the necessary DS records are downloaded from core.host.jb3.dev, it is only required to put the SHA256 hash at the registrar, not the shorter SHA1 hash.
Eventually I'll write a blog post on this.
*** NGINX
NGINX is installed and deployed to a single server using the ~nginx~ role. Configuration is automatically generated according to role variables defining static sites and reverse proxies.
See the NGINX role for configuration and active sites. TLS certificates are currently generated using the HTTP-01 ACME challenge, though I hope to migrate this to DNS-01 with the above custom DNS system soon.
*** Blog
My blog ([[https://jb3.dev][jb3.dev]]) is hosted by the above NGINX instance. It is deployed via ~rsync~ over the Tailscale network that all hosts are a member of.
You can find that workflow [[https://github.com/jb3/blog/blob/main/.github/workflows/deploy.yaml][here]].