mirror of
https://github.com/partofmyid/register.git
synced 2026-06-05 10:36:50 +07:00
remove subdomain without root sub
This commit is contained in:
parent
b29b801190
commit
1c473875f1
4 changed files with 134 additions and 9 deletions
|
|
@ -1,9 +0,0 @@
|
||||||
{
|
|
||||||
"owner": {
|
|
||||||
"username": "hanmetaforce",
|
|
||||||
"discord": "917913229668274186"
|
|
||||||
},
|
|
||||||
"record": {
|
|
||||||
"TXT": ["dh=8c752ee2abcc39a26557a464a8a2401c635c374a"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
60
flake.lock
generated
Normal file
60
flake.lock
generated
Normal file
|
|
@ -0,0 +1,60 @@
|
||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"dns": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1768143854,
|
||||||
|
"narHash": "sha256-E5/kyPz4zAZn/lZdvqlF83jMgCWNxmqYjjWuadngCbk=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "dns.nix",
|
||||||
|
"rev": "a97cf4156e9f044fe4bed5be531061000dfabb07",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "dns.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1614513358,
|
||||||
|
"narHash": "sha256-LakhOx3S1dRjnh0b5Dg3mbZyH0ToC9I8Y2wKSkBaTzU=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "5466c5bbece17adaab2d82fae80b46e807611bf3",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1774086600,
|
||||||
|
"narHash": "sha256-zjWIPOLpA2yU1PvqaqZ99BP5IRuhTcMpHhw2uDT7lS8=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "6de7809357a63167ebc0cb96d1200fa135f2df8b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"dns": "dns"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
32
flake.nix
Normal file
32
flake.nix
Normal file
|
|
@ -0,0 +1,32 @@
|
||||||
|
{
|
||||||
|
description = "Zone File Generator For part-of.my.id";
|
||||||
|
inputs.dns.url = "github:nix-community/dns.nix";
|
||||||
|
|
||||||
|
outputs = { dns, ... }: let
|
||||||
|
email = "admin@satr14.my.id";
|
||||||
|
domains."0" = {
|
||||||
|
domain = "part-of.my.id";
|
||||||
|
nameservers = [
|
||||||
|
"adele.ns.cloudflare.com"
|
||||||
|
"fattouche.ns.cloudflare.com"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
packages.x86_64-linux = builtins.mapAttrs (_: domain:
|
||||||
|
dns.util.x86_64-linux.writeZone domain.domain (
|
||||||
|
with dns.lib.combinators; {
|
||||||
|
SOA = {
|
||||||
|
adminEmail = email;
|
||||||
|
nameServer = builtins.head domain.nameservers;
|
||||||
|
serial = builtins.currentTime;
|
||||||
|
};
|
||||||
|
NS = domain.nameservers;
|
||||||
|
|
||||||
|
# note: Cloudflare ignores SOA and NS records uploaded via Zone File, they are just so that dns.nix builds a valid zone file.
|
||||||
|
|
||||||
|
A = [ "1.1.1.1" ];
|
||||||
|
}
|
||||||
|
)
|
||||||
|
) domains;
|
||||||
|
};
|
||||||
|
}
|
||||||
42
scripts/deploy-apex.sh
Normal file
42
scripts/deploy-apex.sh
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# script to deploy the APEX domain to Cloudflare with CNAME flattening
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
ZONE_ID="${CF_ZONE_ID:?}"
|
||||||
|
TOKEN="${CF_API_TOKEN:?}"
|
||||||
|
TARGET="website-e7n.pages.dev"
|
||||||
|
|
||||||
|
EXISTING=$(curl -s \
|
||||||
|
"https://api.cloudflare.com/client/v4/zones/${ZONE_ID}/dns_records?type=CNAME&name=@" \
|
||||||
|
-H "Authorization: Bearer ${TOKEN}" \
|
||||||
|
| jq -r '.result[0] // empty')
|
||||||
|
|
||||||
|
EXISTING_CONTENT=$(echo "$EXISTING" | jq -r '.content // empty')
|
||||||
|
EXISTING_ID=$(echo "$EXISTING" | jq -r '.id // empty')
|
||||||
|
|
||||||
|
if [[ "$EXISTING_CONTENT" == "$TARGET" ]]; then
|
||||||
|
echo "Apex CNAME unchanged, skipping."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ -z "$EXISTING_ID" ]]; then
|
||||||
|
echo "No apex CNAME found, creating..."
|
||||||
|
METHOD="POST"
|
||||||
|
URL="https://api.cloudflare.com/client/v4/zones/${ZONE_ID}/dns_records"
|
||||||
|
else
|
||||||
|
echo "Apex CNAME changed ($EXISTING_CONTENT → $TARGET), updating..."
|
||||||
|
METHOD="PUT"
|
||||||
|
URL="https://api.cloudflare.com/client/v4/zones/${ZONE_ID}/dns_records/${EXISTING_ID}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
curl -s -X "$METHOD" "$URL" \
|
||||||
|
-H "Authorization: Bearer ${TOKEN}" \
|
||||||
|
-H "Content-Type: application/json" \
|
||||||
|
--data "{
|
||||||
|
\"type\": \"CNAME\",
|
||||||
|
\"name\": \"@\",
|
||||||
|
\"content\": \"${TARGET}\",
|
||||||
|
\"proxied\": true
|
||||||
|
}" | jq -e '.success'
|
||||||
Loading…
Add table
Add a link
Reference in a new issue