Awesome
g0v.network domains
For automating management of some g0v-related domains via config files.
The following damains can be managed here:
g0v.network
g0v.ca
g0v.london
c4nada.ca
t0ronto.ca
g0teborg.se
newspeak.link
Changing or adding DNS records in main
branch of this repository will update
the actual domain records.
Inspired by g0v/domain
.
Future intention is to adopt g0v domain guidelines (English translation).
Table of Contents
:hammer_and_wrench: Technologies Used
-
YAML. A human-friendly configuration file format.
-
octoDNS. Command-line tool to update domain records from files -- infra-as-code!
-
GitHub Actions. Continuous integration platform to run automation in the cloud.
:balloon: Usage
The intended way to use this repository is directly via pull request on GitHub.
For support in making common DNS changes and adding new domains, see
docs/HOWTO.md
.
To learn to submit changes, see Contributing
<sub>(You should only need to clone this code locally if working on the automation itself. See <a href="#woman_technologist-development">Development section</a>.)</sub>
:woman_technologist: Development
To contribute changes to our automation, you'll likely want to be able to run it locally. Here's what you'll need:
<details> <summary>Prerequisites</summary>- Install Python 3
- Install
make
- Install
pipenv
. - Register a Cloudflare user account
- any non-special account will do
- Add each Cloudflare domain/zone/website (those mentioned above)
- you can "fake it" by initiating the import process, without activating (ie. no need to have access to the actual domain)
- Generate a properly scoped Cloudflare API token
- Documentation for creating tokens in your profile
- Permissions:
Zone | DNS | Edit
- Zone Resources:
Include | Specific zone | example.com
for each zone/domain- Alternatively:
Include | All zones from an account
- Alternatively:
To get started with this repo:
git clone https://github.com/g0v-network/domains
cd domains
For a list of all support commands available via make, type:
make
To run your first commands:
make setup
# Validate your config locally
make validate
# Copy and modify as needed with API token
cp sample.env .env
# Do a dry run against Cloudflare (no changes will be made)
make dry-run
# Do a REAL run (!!!)
#
# WARNING: this is destructive, and will delete any records on a domain that
# are not present in your configuration files.
make run
:muscle: Contributing
Please open an issue or pull request in order to create/update/delete any subdomains.
See docs/HOWTO.md
for detailed instructions.