summaryrefslogtreecommitdiff
path: root/tw/system/lud.scm
diff options
context:
space:
mode:
Diffstat (limited to 'tw/system/lud.scm')
-rw-r--r--tw/system/lud.scm37
1 files changed, 36 insertions, 1 deletions
diff --git a/tw/system/lud.scm b/tw/system/lud.scm
index a7fe67db..b4fa7729 100644
--- a/tw/system/lud.scm
+++ b/tw/system/lud.scm
@@ -1,6 +1,12 @@
(define-module (tw system lud)
#:use-module (gnu)
#:use-module (gnu bootloader grub)
+ #:use-module ((gnu services dbus)
+ #:select (dbus-root-service-type))
+ #:use-module ((gnu services desktop)
+ #:select (elogind-service-type))
+ #:use-module ((gnu services docker)
+ #:select (docker-service-type))
#:use-module (gnu system locale)
#:use-module (gnu system nss)
#:use-module (guix gexp)
@@ -28,6 +34,11 @@
(define data-partition ; /dev/sdc1
(uuid "4715ae0e-5cef-48f2-a59e-025321153888" 'btrfs))
+(define matrix-config
+ (matrix-configuration
+ (server-name "twilken.net")
+ (domain "matrix.twilken.net")))
+
(define-public %lud-system
(operating-system
(host-name "lud.twilken.net")
@@ -232,6 +243,31 @@ innodb_buffer_pool_size = 1G
innodb_io_capacity = 4000
")))
+ (service docker-service-type)
+ (service dbus-root-service-type) ; required by `docker-service-type'
+ (service elogind-service-type) ; required by `docker-service-type'
+
+ (service matrix-service-type matrix-config)
+
+ (simple-service 'homepage/matrix-well-known nginx-service-type
+ (list (nginx-server-configuration
+ (listen '("443 ssl http2"))
+ (server-name '("twilken.net"))
+ (ssl-certificate "/etc/letsencrypt/live/twilken.net/fullchain.pem")
+ (ssl-certificate-key "/etc/letsencrypt/live/twilken.net/privkey.pem")
+ (server-tokens? #f)
+ (locations
+ ;; Handle /.well-known URLs, so that I can use @*:twilken.net usernames.
+ (cons* (nginx-location-configuration
+ (uri "/")
+ (body '("return 301 https://www.twilken.net$request_uri;")))
+ (matrix-well-known-nginx-locations matrix-config))))))
+
+ (simple-service 'homepage-certificate certbot-service-type
+ (list (certificate-configuration
+ (domains '("twilken.net"))
+ (deploy-hook %nginx-cert-deploy-hook))))
+
;; TODO: JSON exporter (Nextcloud)
;; TODO: Syncthing exporter
;; TODO: Transmission exporter
@@ -257,7 +293,6 @@ innodb_io_capacity = 4000
" --fstab --verbose")))))
%nextcloud-services
- %matrix-services
(server-base-services host-name)))
;; The list of user accounts ('root' is implicit).