#!/usr/bin/env bash clear # ====== CONFIG (edit here once) ====== DOMAIN="domain.com" API_KEY="YOUR_API_KEY" SECRET_API_KEY="YOUR_SECRET_API_KEY" TTL="600" TYPE="A" API_BASE="https://api.porkbun.com/api/json/v3/dns" echo "====== Porkbun DNS Manager ======" echo "Domain: $DOMAIN" echo "" echo "Choose an action:" echo "1) Update subdomain IP" echo "2) Create new subdomain" echo "" read -p "Enter choice (1 or 2): " ACTION case $ACTION in # Update existing record 1) read -p "Enter subdomain to update: " SUBDOMAIN read -p "Enter new IP address: " IP echo "" echo "Updating ${SUBDOMAIN}.${DOMAIN} -> ${IP}" read -p "Proceed? (y/n): " CONFIRM [[ "$CONFIRM" != "y" ]] && echo "Cancelled." && exit 1 RESPONSE=$(curl -s -X POST \ "$API_BASE/editByNameType/${DOMAIN}/${TYPE}/${SUBDOMAIN}" \ -H "Content-Type: application/json" \ -d "{ \"secretapikey\": \"${SECRET_API_KEY}\", \"apikey\": \"${API_KEY}\", \"content\": \"${IP}\", \"ttl\": \"${TTL}\" }") echo "" echo "API Response:" echo "$RESPONSE" ;; # Create new subdomain 2) read -p "Enter new subdomain name: " SUBDOMAIN read -p "Enter IP address: " IP echo "" echo "Creating ${SUBDOMAIN}.${DOMAIN} -> ${IP}" RESPONSE=$(curl -s -X POST \ "$API_BASE/create/${DOMAIN}" \ -H "Content-Type: application/json" \ -d "{ \"secretapikey\": \"${SECRET_API_KEY}\", \"apikey\": \"${API_KEY}\", \"name\": \"${SUBDOMAIN}\", \"type\": \"${TYPE}\", \"content\": \"${IP}\", \"ttl\": \"${TTL}\" }") echo "" echo "API Response:" echo "$RESPONSE" ;; *) echo "Invalid choice." exit 1 ;; esac