- Shell 100%
| dns | ||
| install.sh | ||
| README.md | ||
DNS Manager - grandedata.no
Et selvhostet verktøy som automatisk holder DNS-records oppdatert hos Domeneshop når ekstern IP endrer seg (DDNS), og lar deg administrere subdomener direkte fra terminalen.
Hvordan det fungerer
Alt ligger i én enkelt fil (dns) som gjør to ting:
-
DDNS — Kjøres automatisk av cron hvert 5. minutt. Henter ekstern IP via
ipify.orgog sammenligner med sist kjente IP. Hvis IP har endret seg, oppdateres alle A-records på kontoen automatisk via Domeneshop sitt API. -
DNS-administrasjon — Lar deg opprette, slette og liste A-records direkte fra terminalen uten å måtte logge inn i Domeneshop-panelet. Nye subdomener opprettes med nåværende ekstern IP med én gang, og holdes automatisk oppdatert videre av DDNS-jobben.
Kommandoer
dns list # List alle A-records
dns opprett <subdomene> # Opprett nytt subdomene med nåværende ekstern IP
dns slett <subdomene> # Slett subdomene
Krav
- Debian 13 (Trixie) LXC
curlogpython3(installeres automatisk av install.sh)- API-token og secret fra Domeneshop (
domeneshop.no/admin?view=api)
Installasjon
- Klon repoet på LXC-en:
git clone https://git.grandedata.no/GrandeData/domeneshopdns
cd domeneshopdns
- Fyll inn
TOKENogSECRETøverst idns-filen:
nano dns
- Kjør install-scriptet som root:
bash install.sh
Dette installerer dns i /usr/local/bin/, setter opp cron-jobben, konfigurerer MOTD og kjører en første test.
Filer
| Fil | Beskrivelse |
|---|---|
dns |
Hovedscriptet — håndterer både DDNS og DNS-administrasjon |
install.sh |
Installasjonsscript for fersk Debian 13 LXC |
Logging
Alle hendelser logges til /var/log/ddns-update.log:
tail -f /var/log/ddns-update.log
Infrastruktur
Kjører som en minimal LXC-container på Proxmox (pve1) med 1 kjerne, 512 MB RAM og 2 GB disk på VLAN40. Veldig lite ressursbruk — scriptet gjør kun noen enkle API-kall hvert 5. minutt.
Sikkerhet
dns-filen harchmod 700så bare root kan lese token og secret- Credentials ligger kun lokalt på LXC-en og sendes aldri videre