summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--deployment/systems/aisaka.scm128
-rw-r--r--users/id1000.scm4
2 files changed, 126 insertions, 6 deletions
diff --git a/deployment/systems/aisaka.scm b/deployment/systems/aisaka.scm
index 2f91765..eaba797 100644
--- a/deployment/systems/aisaka.scm
+++ b/deployment/systems/aisaka.scm
@@ -6,10 +6,13 @@
#:use-module ((deployment keys) #:prefix deployment:keys:)
#:use-module ((gnu bootloader) #:prefix gnu:bootloader:)
#:use-module ((gnu bootloader grub) #:prefix gnu:bootloader:grub:)
+ #:use-module ((gnu packages linux) #:prefix gnu:packages:linux:)
#:use-module ((gnu packages tls) #:prefix gnu:packages:tls:)
#:use-module ((gnu services) #:prefix gnu:services:)
#:use-module ((gnu services base) #:prefix gnu:services:base:)
#:use-module ((gnu services dns) #:prefix gnu:services:dns:)
+ #:use-module ((gnu services networking) #:prefix gnu:services:networking:)
+ #:use-module ((gnu services shepherd) #:prefix gnu:services:shepherd:)
#:use-module ((gnu services version-control) #:prefix gnu:services:version-control:)
#:use-module ((gnu services web) #:prefix gnu:services:web:)
#:use-module ((gnu system) #:prefix gnu:system:)
@@ -33,7 +36,7 @@
ip-otvarta
" -all\""))
-(define ttl "60")
+(define ttl "3600")
(gnu:services:dns:define-zone-entries marekpasnikowski.pl-entries
("@" ttl "IN" "A" ip-multimedia)
@@ -41,8 +44,10 @@
("@" ttl "IN" "NS" "ns.marekpasnikowski.pl.")
("ns1" ttl "IN" "A" ip-multimedia)
("@" ttl "IN" "NS" "ns1.marekpasnikowski.pl.")
+ ("mx" ttl "IN" "A" ip-otvarta)
("@" ttl "IN" "MX" "10 mx1.forwardemail.net.")
("@" ttl "IN" "MX" "10 mx2.forwardemail.net.")
+ ;("@" ttl "IN" "MX" "20 mx.marekpasnikowski.pl.")
("@" ttl "IN" "TXT" "\"forward-email-port=49152\"")
("@" ttl "IN" "TXT" "\"forward-email=marekpasnikowski.pl\"")
("@" ttl "IN" "TXT" spf-value)
@@ -63,7 +68,7 @@
(origin "marekpasnikowski.pl")
(ns "ns.marekpasnikowski.pl.")
(mail "marek.marekpasnikowski.pl.")
- (serial 2025122101)))
+ (serial 2026010903)))
(define master-zone
(gnu:services:dns:knot-zone-configuration
@@ -405,12 +410,125 @@
(storage ((@ (gnu services mail) radicale-storage-configuration)
(filesystem-folder "/data/radicale/collections"))))))
+(define enp1s0-address-4
+ (gnu:services:base:network-address
+ (device "enp1s0")
+ (value "192.168.10.2/24")
+ (ipv6? #f)))
+
+(define enp2s0-address-4
+ (gnu:services:base:network-address
+ (device "enp2s0")
+ (value "192.168.1.2/24")
+ (ipv6? #f)))
+
+(define enp1s0-route-4-default
+ (gnu:services:base:network-route
+ (destination "default")
+ (source #f)
+ (device #f)
+ (ipv6? #f)
+ (gateway "192.168.10.1")))
+
+(define network-hardware
+ (gnu:services:base:static-networking
+ (addresses (list enp1s0-address-4
+ enp2s0-address-4))
+ (links (list))
+ (routes (list enp1s0-route-4-default))
+ (name-servers (list "192.168.10.1"
+ "192.168.1.1"))
+ (provision (list 'network-hardware))
+ (requirement (list))))
+
+(define static-networking-configuration
+ (list network-hardware))
+
+(define static-networking
+ (gnu:services:service
+ gnu:services:networking:static-networking-service-type
+ static-networking-configuration))
+
+(define ip-command
+ (file-append gnu:packages:linux:iproute
+ "/sbin/ip"))
+
+(define network-enp2s0-route-default
+ (let
+ ( (route-default- #~(list #$ip-command
+ "route"
+ "add"
+ "default"
+ "via"
+ "192.168.1.1"
+ "table"
+ "1")))
+ (gnu:services:shepherd:shepherd-service
+ (provision (list 'network-enp2s0-route-default))
+ (requirement (list 'network-enp2s0-table))
+ (one-shot? #t)
+ (respawn? #f)
+ (start #~(make-forkexec-constructor #$route-default-))
+ (stop #~(const #f))
+ (actions (list))
+ (auto-start? #t)
+ (documentation "Sets up a default route for traffic from enp2s0.")
+ (modules gnu:services:shepherd:%default-modules))))
+
+(define network-enp2s0-table
+ (let
+ ( (table- #~(list #$ip-command
+ "rule"
+ "add"
+ "from"
+ "192.168.1.2"
+ "table"
+ "1"
+ "prio"
+ "1")))
+ (gnu:services:shepherd:shepherd-service
+ (provision (list 'network-enp2s0-table))
+ (requirement (list 'network-hardware))
+ (one-shot? #t)
+ (respawn? #f)
+ (start #~(make-forkexec-constructor #$table-))
+ (stop #~(const #f))
+ (actions (list))
+ (auto-start? #t)
+ (documentation "Defines a table of rules number 1 for routes through enp2s0.")
+ (modules gnu:services:shepherd:%default-modules))))
+
+(define networking
+ (gnu:services:shepherd:shepherd-service
+ (provision (list 'networking))
+ (requirement (list 'network-enp2s0-table
+ 'network-enp2s0-route-default))
+ (one-shot? #t)
+ (respawn? #f)
+ (start #~(const #t))
+ (stop #~(const #f))
+ (actions (list))
+ (auto-start? #t)
+ (documentation "Defines a graph root of one-shot services to invoke various ip commands.")
+ (modules gnu:services:shepherd:%default-modules)))
+
+(define iproute2-networking
+ (gnu:services:simple-service 'networking
+ gnu:services:shepherd:shepherd-root-service-type
+ (list network-enp2s0-table
+ network-enp2s0-route-default
+ networking)))
+
(define swap-device-izumi-1-label
((@ (gnu system file-systems) file-system-label)
"izumi-swap-f"))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+(define %sovereign-services*
+ (gnu:services:modify-services sovereign:systems:%sovereign-services
+ (delete gnu:services:networking:network-manager-service-type)))
+
(define system-bootloader
(gnu:bootloader:bootloader-configuration
(bootloader gnu:bootloader:grub:grub-efi-bootloader)
@@ -443,7 +561,9 @@
(nginx-izumi)
offload-rakan
(openssh)
- (radicale)))
+ (radicale)
+ static-networking
+ iproute2-networking))
(define system-users
(list users:id1000:uid1000-account
@@ -474,7 +594,7 @@
(locale sovereign:systems:pl-locale)
(locale-definitions sovereign:systems:%sovereign-locale-definitions)
(services (append system-services
- sovereign:systems:%sovereign-services))
+ %sovereign-services*))
(sudoers-file sovereign:systems:%sovereign-sudoers-specification)))
(define-public operating-system*
diff --git a/users/id1000.scm b/users/id1000.scm
index fa12195..06ca5f2 100644
--- a/users/id1000.scm
+++ b/users/id1000.scm
@@ -408,7 +408,7 @@
"# instead of /etc/passwd\n"
"table passwd file:" smtpd-keys "\n"
"\n"
- "table other-relays file:" relays-file "\n"
+ "# table other-relays file:" relays-file "\n"
"table blacklist file:" blacklist-file "\n"
"\n"
"# A simple spam filter\n"
@@ -445,7 +445,7 @@
"# We define some actions\n"
"action receive lmtp \"/var/run/dovecot/lmtp\" rcpt-to virtual <aliases>\n"
"action godkim relay host smtp://localhost:10027\n"
- "action outbound relay helo \"" domain "\"\n"
+ "action outbound relay src \"192.168.1.2\" helo \"" "user119-109.otvarta.pl" "\"\n"
"\n"
"# We accept to relay any mail from authenticated users\n"
"match for any from any auth action godkim\n"