chore: init

This commit is contained in:
2026-04-24 09:10:36 +03:00
commit 3b1c6843d6
13 changed files with 562 additions and 0 deletions

44
script/setup/dns.sh Executable file
View File

@@ -0,0 +1,44 @@
#!/usr/bin/env bash
cloudflare_api_token=$(cat ~/.cloudflare/lair.cafe | cut -d ' ' -f 3)
cloudflare_dns_zone_name=lair.cafe
cloudflare_dns_record_name=rpm.${cloudflare_dns_zone_name}
cloudflare_dns_record_type=CNAME
cloudflare_dns_record_content=bl.thgttg.com
cloudflare_dns_zone_id=$(curl \
--silent \
--request GET \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${cloudflare_api_token}" \
--url "https://api.cloudflare.com/client/v4/zones?name=${cloudflare_dns_zone_name}&status=active" \
| jq -r '.result[0].id//empty')
if [ -z ${cloudflare_dns_zone_id} ]; then
echo "cloudflare dns zone not found"
exit 1
else
echo "cloudflare dns zone found: ${cloudflare_dns_zone_name} (${cloudflare_dns_zone_id})"
fi
cloudflare_dns_record_id=$(curl \
--silent \
--request GET \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${cloudflare_api_token}" \
--url "https://api.cloudflare.com/client/v4/zones/${cloudflare_dns_zone_id}/dns_records?type=${cloudflare_dns_record_type}&name=${cloudflare_dns_record_name}" \
| jq -r '.result[0].id//empty')
if [ -z ${cloudflare_dns_record_id} ] && curl \
--silent \
--request POST \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${cloudflare_api_token}" \
--data "{\"type\":\"${cloudflare_dns_record_type}\",\"name\":\"${cloudflare_dns_record_name}\",\"content\":\"${cloudflare_dns_record_content}\",\"ttl\":1,\"proxied\":false}" \
--url "https://api.cloudflare.com/client/v4/zones/${cloudflare_dns_zone_id}/dns_records"; then
echo "${cloudflare_dns_record_name} ${cloudflare_dns_record_type} record created with content: ${cloudflare_dns_record_content} in zone: ${cloudflare_dns_zone_name} (${cloudflare_dns_zone_id}), record: ${cloudflare_dns_record_name} (${cloudflare_dns_record_id})"
elif curl \
--silent \
--request PUT \
--header "Content-Type: application/json" \
--header "Authorization: Bearer ${cloudflare_api_token}" \
--data "{\"type\":\"${cloudflare_dns_record_type}\",\"name\":\"${cloudflare_dns_record_name}\",\"content\":\"${cloudflare_dns_record_content}\",\"ttl\":1,\"proxied\":false}" \
--url "https://api.cloudflare.com/client/v4/zones/${cloudflare_dns_zone_id}/dns_records/${cloudflare_dns_record_id}"; then
echo "${cloudflare_dns_record_name} ${cloudflare_dns_record_type} record updated with content: ${cloudflare_dns_record_content} in zone: ${cloudflare_dns_zone_name} (${cloudflare_dns_zone_id}), record: ${cloudflare_dns_record_name} (${cloudflare_dns_record_id})"
fi