mirror of
https://codeberg.org/hako/Rosenthal.git
synced 2026-03-05 01:15:14 +00:00
services: Migrate for oci-container-service-type deprecation.
* modules/rosenthal/services/mail.scm (docker-mailserver-service-type) [extensions]: Use oci-service-type. * modules/rosenthal/services/web.scm (jellyfin-service-type) (misskey-service-type, vaultwarden-service-type) [extensions]: Likewise.
This commit is contained in:
parent
2e8fd96f92
commit
eaa1d09454
@ -3,18 +3,19 @@
|
|||||||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
(define-module (rosenthal services mail)
|
(define-module (rosenthal services mail)
|
||||||
#:use-module (srfi srfi-26)
|
#:use-module (gnu home services shepherd)
|
||||||
|
#:use-module (gnu home services)
|
||||||
|
#:use-module (gnu packages mail)
|
||||||
|
#:use-module (gnu services admin)
|
||||||
|
#:use-module (gnu services configuration)
|
||||||
|
#:use-module (gnu services containers)
|
||||||
|
#:use-module (gnu services docker)
|
||||||
|
#:use-module (gnu services shepherd)
|
||||||
|
#:use-module (gnu services)
|
||||||
#:use-module (guix gexp)
|
#:use-module (guix gexp)
|
||||||
#:use-module (guix records)
|
#:use-module (guix records)
|
||||||
#:use-module (rosenthal utils serializers yaml)
|
#:use-module (rosenthal utils serializers yaml)
|
||||||
#:use-module (gnu services)
|
#:use-module (srfi srfi-26)
|
||||||
#:use-module (gnu services admin)
|
|
||||||
#:use-module (gnu services configuration)
|
|
||||||
#:use-module (gnu services docker)
|
|
||||||
#:use-module (gnu services shepherd)
|
|
||||||
#:use-module (gnu home services)
|
|
||||||
#:use-module (gnu home services shepherd)
|
|
||||||
#:use-module (gnu packages mail)
|
|
||||||
#:export (docker-mailserver-configuration
|
#:export (docker-mailserver-configuration
|
||||||
docker-mailserver-service-type
|
docker-mailserver-service-type
|
||||||
|
|
||||||
@ -45,11 +46,13 @@
|
|||||||
"List of extra Docker arguments.")
|
"List of extra Docker arguments.")
|
||||||
(no-serialization))
|
(no-serialization))
|
||||||
|
|
||||||
(define docker-mailserver-oci-containers
|
(define docker-mailserver-oci
|
||||||
(match-record-lambda <docker-mailserver-configuration>
|
(match-record-lambda <docker-mailserver-configuration>
|
||||||
(data-directory log-file shepherd-requirement options extra-arguments)
|
(data-directory log-file shepherd-requirement options extra-arguments)
|
||||||
(let ((docker-mailserver-path
|
(let ((docker-mailserver-path
|
||||||
(cut string-append data-directory <>)))
|
(cut string-append data-directory <>)))
|
||||||
|
(oci-extension
|
||||||
|
(containers
|
||||||
(list (oci-container-configuration
|
(list (oci-container-configuration
|
||||||
(environment options)
|
(environment options)
|
||||||
(image "ghcr.io/docker-mailserver/docker-mailserver:latest")
|
(image "ghcr.io/docker-mailserver/docker-mailserver:latest")
|
||||||
@ -63,14 +66,14 @@
|
|||||||
(,(docker-mailserver-path "/logs") . "/var/log/mail")
|
(,(docker-mailserver-path "/logs") . "/var/log/mail")
|
||||||
(,(docker-mailserver-path "/config") . "/tmp/docker-mailserver")
|
(,(docker-mailserver-path "/config") . "/tmp/docker-mailserver")
|
||||||
("/etc/localtime" . "/etc/localtime:ro")))
|
("/etc/localtime" . "/etc/localtime:ro")))
|
||||||
(extra-arguments extra-arguments))))))
|
(extra-arguments extra-arguments))))))))
|
||||||
|
|
||||||
(define docker-mailserver-service-type
|
(define docker-mailserver-service-type
|
||||||
(service-type
|
(service-type
|
||||||
(name 'docker-mailserver)
|
(name 'docker-mailserver)
|
||||||
(extensions
|
(extensions
|
||||||
(list (service-extension oci-container-service-type
|
(list (service-extension oci-service-type
|
||||||
docker-mailserver-oci-containers)
|
docker-mailserver-oci)
|
||||||
(service-extension log-rotation-service-type
|
(service-extension log-rotation-service-type
|
||||||
(compose list docker-mailserver-configuration-log-file))))
|
(compose list docker-mailserver-configuration-log-file))))
|
||||||
(default-value (docker-mailserver-configuration))
|
(default-value (docker-mailserver-configuration))
|
||||||
|
|||||||
@ -10,6 +10,7 @@
|
|||||||
#:use-module (gnu packages web)
|
#:use-module (gnu packages web)
|
||||||
#:use-module (gnu services admin)
|
#:use-module (gnu services admin)
|
||||||
#:use-module (gnu services configuration)
|
#:use-module (gnu services configuration)
|
||||||
|
#:use-module (gnu services containers)
|
||||||
#:use-module (gnu services databases)
|
#:use-module (gnu services databases)
|
||||||
#:use-module (gnu services docker)
|
#:use-module (gnu services docker)
|
||||||
#:use-module (gnu services shepherd)
|
#:use-module (gnu services shepherd)
|
||||||
@ -394,10 +395,12 @@ test its configuration file."))
|
|||||||
(chown directory (passwd:uid user) (passwd:gid user))))
|
(chown directory (passwd:uid user) (passwd:gid user))))
|
||||||
'#$(list cache-directory config-directory)))))
|
'#$(list cache-directory config-directory)))))
|
||||||
|
|
||||||
(define jellyfin-oci-containers
|
(define jellyfin-oci
|
||||||
(match-record-lambda <jellyfin-configuration>
|
(match-record-lambda <jellyfin-configuration>
|
||||||
(cache-directory config-directory
|
(cache-directory config-directory
|
||||||
proxy-url log-file auto-start? extra-options)
|
proxy-url log-file auto-start? extra-options)
|
||||||
|
(oci-extension
|
||||||
|
(containers
|
||||||
(list (oci-container-configuration
|
(list (oci-container-configuration
|
||||||
(user "jellyfin")
|
(user "jellyfin")
|
||||||
(group "docker")
|
(group "docker")
|
||||||
@ -415,7 +418,7 @@ test its configuration file."))
|
|||||||
(volumes
|
(volumes
|
||||||
`((,cache-directory . "/cache")
|
`((,cache-directory . "/cache")
|
||||||
(,config-directory . "/config")))
|
(,config-directory . "/config")))
|
||||||
(extra-arguments extra-options)))))
|
(extra-arguments extra-options)))))))
|
||||||
|
|
||||||
(define jellyfin-service-type
|
(define jellyfin-service-type
|
||||||
(service-type
|
(service-type
|
||||||
@ -427,8 +430,8 @@ test its configuration file."))
|
|||||||
jellyfin-activation)
|
jellyfin-activation)
|
||||||
(service-extension log-rotation-service-type
|
(service-extension log-rotation-service-type
|
||||||
(compose list jellyfin-configuration-log-file))
|
(compose list jellyfin-configuration-log-file))
|
||||||
(service-extension oci-container-service-type
|
(service-extension oci-service-type
|
||||||
jellyfin-oci-containers)))
|
jellyfin-oci)))
|
||||||
(default-value (jellyfin-configuration))
|
(default-value (jellyfin-configuration))
|
||||||
(description "Run Jellyfin, a media system.")))
|
(description "Run Jellyfin, a media system.")))
|
||||||
|
|
||||||
@ -540,7 +543,7 @@ test its configuration file."))
|
|||||||
(mkdir-p #$data-directory)
|
(mkdir-p #$data-directory)
|
||||||
(chown #$data-directory (passwd:uid user) (passwd:gid user)))))))
|
(chown #$data-directory (passwd:uid user) (passwd:gid user)))))))
|
||||||
|
|
||||||
(define misskey-oci-containers
|
(define misskey-oci
|
||||||
(match-record-lambda <misskey-configuration>
|
(match-record-lambda <misskey-configuration>
|
||||||
(image config data-directory log-file )
|
(image config data-directory log-file )
|
||||||
(let ((config-file
|
(let ((config-file
|
||||||
@ -553,6 +556,8 @@ test its configuration file."))
|
|||||||
(let ((emitter (make-yaml-emitter)))
|
(let ((emitter (make-yaml-emitter)))
|
||||||
(yaml-emit! emitter '#$config)
|
(yaml-emit! emitter '#$config)
|
||||||
(display (yaml-emitter-string emitter) port)))))))))
|
(display (yaml-emitter-string emitter) port)))))))))
|
||||||
|
(oci-extension
|
||||||
|
(containers
|
||||||
(list (oci-container-configuration
|
(list (oci-container-configuration
|
||||||
(user "misskey")
|
(user "misskey")
|
||||||
(group "docker")
|
(group "docker")
|
||||||
@ -564,7 +569,7 @@ test its configuration file."))
|
|||||||
(network "host")
|
(network "host")
|
||||||
(volumes
|
(volumes
|
||||||
`((,(string-append data-directory "/files") . "/misskey/files")
|
`((,(string-append data-directory "/files") . "/misskey/files")
|
||||||
(,config-file . "/misskey/.config/default.yml"))))))))
|
(,config-file . "/misskey/.config/default.yml"))))))))))
|
||||||
|
|
||||||
(define misskey-service-type
|
(define misskey-service-type
|
||||||
(service-type
|
(service-type
|
||||||
@ -578,8 +583,8 @@ test its configuration file."))
|
|||||||
(compose list misskey-configuration-log-file))
|
(compose list misskey-configuration-log-file))
|
||||||
(service-extension activation-service-type
|
(service-extension activation-service-type
|
||||||
misskey-activation)
|
misskey-activation)
|
||||||
(service-extension oci-container-service-type
|
(service-extension oci-service-type
|
||||||
misskey-oci-containers)))
|
misskey-oci)))
|
||||||
(description "Run Misskey, an interplanetary microblogging platform.")))
|
(description "Run Misskey, an interplanetary microblogging platform.")))
|
||||||
|
|
||||||
|
|
||||||
@ -718,9 +723,11 @@ test its configuration file."))
|
|||||||
(write-char #\newline port)))
|
(write-char #\newline port)))
|
||||||
(chown #$log-file (passwd:uid user) (passwd:gid user)))))))
|
(chown #$log-file (passwd:uid user) (passwd:gid user)))))))
|
||||||
|
|
||||||
(define vaultwarden-oci-containers
|
(define vaultwarden-oci
|
||||||
(match-record-lambda <vaultwarden-configuration>
|
(match-record-lambda <vaultwarden-configuration>
|
||||||
(admin-token database-url port data-directory log-file proxy-url extra-options)
|
(admin-token database-url port data-directory log-file proxy-url extra-options)
|
||||||
|
(oci-extension
|
||||||
|
(containers
|
||||||
(list (oci-container-configuration
|
(list (oci-container-configuration
|
||||||
(user "vaultwarden")
|
(user "vaultwarden")
|
||||||
(group "docker")
|
(group "docker")
|
||||||
@ -749,7 +756,7 @@ test its configuration file."))
|
|||||||
`(,@(if (maybe-value-set? admin-token)
|
`(,@(if (maybe-value-set? admin-token)
|
||||||
'("--env" "ADMIN_TOKEN")
|
'("--env" "ADMIN_TOKEN")
|
||||||
'())
|
'())
|
||||||
"--env" "DATABASE_URL"))))))
|
"--env" "DATABASE_URL"))))))))
|
||||||
|
|
||||||
(define vaultwarden-service-type
|
(define vaultwarden-service-type
|
||||||
(service-type
|
(service-type
|
||||||
@ -763,6 +770,6 @@ test its configuration file."))
|
|||||||
vaultwarden-activation)
|
vaultwarden-activation)
|
||||||
(service-extension log-rotation-service-type
|
(service-extension log-rotation-service-type
|
||||||
(compose list vaultwarden-configuration-log-file))
|
(compose list vaultwarden-configuration-log-file))
|
||||||
(service-extension oci-container-service-type
|
(service-extension oci-service-type
|
||||||
vaultwarden-oci-containers)))
|
vaultwarden-oci)))
|
||||||
(description "Run Vaultwarden, a Bitwarden compatible server.")))
|
(description "Run Vaultwarden, a Bitwarden compatible server.")))
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user