;;; SPDX-License-Identifier: GPL-3.0-or-later ;;; SPDX-FileCopyrightText: 2026 Marek Paśnikowski ;;; COPYRIGHT NOTICE ;;; ;;; Copyright 2026, Marek Paśnikowski ;;; LICENSE NOTICE ;;; ;;; This library is free software: you can redistribute it and/or modify it under the terms of ;;; the GNU General Public License as published by the Free Software Foundation, ;;; either version 3 of the License, or (at your option) any later version. ;;; ;;; This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; ;;; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ;;; See the GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License along with this library. ;;; If not, see . (define-module (deployment services dns) #:export (aisaka-knot-service) #:use-module (gnu services) #:use-module (gnu services dns)) (define ip-multimedia "81.190.248.246") (define ip-otvarta "95.171.119.109") (define ttl "3600") (define spf-value (string-append "\"v=spf1 ip4:" ip-otvarta " -all\"")) (define-zone-entries marekpasnikowski.pl-entries ("@" ttl "IN" "A" ip-otvarta) ("1" ttl "IN" "A" ip-otvarta) ("ns1" ttl "IN" "A" ip-otvarta) ("@" ttl "IN" "NS" "ns1.marekpasnikowski.pl.") ("@" ttl "IN" "A" ip-multimedia) ("2" ttl "IN" "A" ip-multimedia) ("ns2" ttl "IN" "A" ip-multimedia) ("@" ttl "IN" "NS" "ns2.marekpasnikowski.pl.") ("@" ttl "IN" "MX" "10 1.marekpasnikowski.pl.") ("@" ttl "IN" "TXT" spf-value) ("_caldavs._tcp" ttl "IN" "SRV" "10 0 443 radicale.marekpasnikowski.pl") ("_carddavs._tcp" ttl "IN" "SRV" "10 0 443 radicale.marekpasnikowski.pl") ("_dmarc" ttl "IN" "TXT" "\"adkim=s; aspf=s; p=reject; pct=100; sp=reject; v=DMARC1\"") ("dkim._domainkey" ttl "IN" "TXT" "\"v=DKIM1; d=marekpasnikowski.pl; t=s; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAo/b/WV5EUxqAhBgJ4v5K3sP8QI+IwziRJ/F9SDO3p3QOMjZd9AGVt2/AztZ4EmcOJnTlbQnLE/DKCOq4HAdxSZjIqj5AXyMddvWiO78+ugdame/flV0tjdDGNflx65Twap3qgJ9jzhvJfZ1BDuh2WC06fn2pyFl1TCETEGp6ZDkI41FW5GH8l9Jk7hhCmr+Mau0EpE7V42lBdireItOA1e7jQcub50584QATme4rYxA7WR4AeIsknOkUo4q8vkVrssoP11nSg/sNM9RGn1QDfVMJRX0twtgGnJ8N5QE4Ia9DvXL4Y0PNMC0/frp13pB6m1VQP/Z4jfDy+TQzEdSRaQIDAQAB\"") ("git" ttl "IN" "CNAME" "2") ("guix" ttl "IN" "CNAME" "2") ("matrix" ttl "IN" "CNAME" "2") ("radicale" ttl "IN" "CNAME" "2") ("www" ttl "IN" "CNAME" "2")) (define marekpasnikowski.pl-zone (zone-file (entries marekpasnikowski.pl-entries) (origin "marekpasnikowski.pl") (ns "ns1.marekpasnikowski.pl.") (mail "marek.marekpasnikowski.pl.") (serial 2026042801))) (define aisaka-master-zone (knot-zone-configuration (domain "marekpasnikowski.pl") (zone marekpasnikowski.pl-zone))) (define aisaka-knot-configuration (knot-configuration (listen-v4 "0.0.0.0") (zones (list aisaka-master-zone)))) (define aisaka-knot-service (service knot-service-type aisaka-knot-configuration))