mirror of
https://codeberg.org/hako/Rosenthal.git
synced 2025-11-16 01:14:45 +00:00
Compare commits
2 Commits
a3e553fc65
...
eaa1d09454
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
eaa1d09454 | ||
|
|
2e8fd96f92 |
File diff suppressed because it is too large
Load Diff
@ -290,17 +290,3 @@ looking for a reliable platform to manage their software projects.")
|
||||
(license license:gpl3+)
|
||||
(properties
|
||||
'((disable-updater? . #t)))))
|
||||
|
||||
(define-public iocaine/dolly
|
||||
(package
|
||||
(inherit iocaine)
|
||||
(name "iocaine-dolly")
|
||||
(version "2.5.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (crate-uri "iocaine" version))
|
||||
(file-name (string-append name "-" version ".tar.gz"))
|
||||
(sha256
|
||||
(base32 "1x445vnalm323qphxfbfrdzmv9q83h2kybimwm2j39j9p9hj188s"))))
|
||||
(inputs (cons* jemalloc (rosenthal-cargo-inputs 'iocaine)))))
|
||||
|
||||
@ -3,18 +3,19 @@
|
||||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
(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 records)
|
||||
#:use-module (rosenthal utils serializers yaml)
|
||||
#:use-module (gnu services)
|
||||
#: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)
|
||||
#:use-module (srfi srfi-26)
|
||||
#:export (docker-mailserver-configuration
|
||||
docker-mailserver-service-type
|
||||
|
||||
@ -45,32 +46,34 @@
|
||||
"List of extra Docker arguments.")
|
||||
(no-serialization))
|
||||
|
||||
(define docker-mailserver-oci-containers
|
||||
(define docker-mailserver-oci
|
||||
(match-record-lambda <docker-mailserver-configuration>
|
||||
(data-directory log-file shepherd-requirement options extra-arguments)
|
||||
(let ((docker-mailserver-path
|
||||
(cut string-append data-directory <>)))
|
||||
(list (oci-container-configuration
|
||||
(environment options)
|
||||
(image "ghcr.io/docker-mailserver/docker-mailserver:latest")
|
||||
(provision "docker-mailserver")
|
||||
(requirement shepherd-requirement)
|
||||
(log-file log-file)
|
||||
(network "host")
|
||||
(volumes
|
||||
`((,(docker-mailserver-path "/data") . "/var/mail")
|
||||
(,(docker-mailserver-path "/state") . "/var/mail-state")
|
||||
(,(docker-mailserver-path "/logs") . "/var/log/mail")
|
||||
(,(docker-mailserver-path "/config") . "/tmp/docker-mailserver")
|
||||
("/etc/localtime" . "/etc/localtime:ro")))
|
||||
(extra-arguments extra-arguments))))))
|
||||
(oci-extension
|
||||
(containers
|
||||
(list (oci-container-configuration
|
||||
(environment options)
|
||||
(image "ghcr.io/docker-mailserver/docker-mailserver:latest")
|
||||
(provision "docker-mailserver")
|
||||
(requirement shepherd-requirement)
|
||||
(log-file log-file)
|
||||
(network "host")
|
||||
(volumes
|
||||
`((,(docker-mailserver-path "/data") . "/var/mail")
|
||||
(,(docker-mailserver-path "/state") . "/var/mail-state")
|
||||
(,(docker-mailserver-path "/logs") . "/var/log/mail")
|
||||
(,(docker-mailserver-path "/config") . "/tmp/docker-mailserver")
|
||||
("/etc/localtime" . "/etc/localtime:ro")))
|
||||
(extra-arguments extra-arguments))))))))
|
||||
|
||||
(define docker-mailserver-service-type
|
||||
(service-type
|
||||
(name 'docker-mailserver)
|
||||
(extensions
|
||||
(list (service-extension oci-container-service-type
|
||||
docker-mailserver-oci-containers)
|
||||
(list (service-extension oci-service-type
|
||||
docker-mailserver-oci)
|
||||
(service-extension log-rotation-service-type
|
||||
(compose list docker-mailserver-configuration-log-file))))
|
||||
(default-value (docker-mailserver-configuration))
|
||||
|
||||
@ -3,23 +3,25 @@
|
||||
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||
|
||||
(define-module (rosenthal services web)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix modules)
|
||||
#:use-module (guix records)
|
||||
#:use-module (gnu packages admin)
|
||||
#:use-module (gnu packages guile-xyz)
|
||||
#:use-module (gnu packages version-control)
|
||||
#:use-module (gnu packages video)
|
||||
#:use-module (rosenthal packages binaries)
|
||||
#:use-module (rosenthal packages web)
|
||||
#:use-module (gnu services)
|
||||
#:use-module (gnu packages web)
|
||||
#:use-module (gnu services admin)
|
||||
#:use-module (gnu services configuration)
|
||||
#:use-module (gnu services containers)
|
||||
#:use-module (gnu services databases)
|
||||
#:use-module (gnu services docker)
|
||||
#:use-module (gnu services shepherd)
|
||||
#:use-module (gnu services)
|
||||
#:use-module (gnu system privilege)
|
||||
#:use-module (gnu system shadow)
|
||||
#:use-module (guix gexp)
|
||||
#:use-module (guix modules)
|
||||
#:use-module (guix records)
|
||||
#:use-module (rosenthal packages binaries)
|
||||
#:use-module (rosenthal packages web)
|
||||
#:use-module (rosenthal utils serializers ini)
|
||||
#:use-module (rosenthal utils serializers yaml)
|
||||
#:export (caddy-configuration
|
||||
@ -268,7 +270,7 @@ reload its configuration file."))
|
||||
|
||||
(define-configuration/no-serialization iocaine-configuration
|
||||
(iocaine
|
||||
(file-like iocaine/dolly)
|
||||
(file-like iocaine)
|
||||
"")
|
||||
(config
|
||||
file-object
|
||||
@ -393,28 +395,30 @@ test its configuration file."))
|
||||
(chown directory (passwd:uid user) (passwd:gid user))))
|
||||
'#$(list cache-directory config-directory)))))
|
||||
|
||||
(define jellyfin-oci-containers
|
||||
(define jellyfin-oci
|
||||
(match-record-lambda <jellyfin-configuration>
|
||||
(cache-directory config-directory
|
||||
proxy-url log-file auto-start? extra-options)
|
||||
(list (oci-container-configuration
|
||||
(user "jellyfin")
|
||||
(group "docker")
|
||||
(environment
|
||||
(if (maybe-value-set? proxy-url)
|
||||
`(("http_proxy" . ,proxy-url)
|
||||
("https_proxy" . ,proxy-url))
|
||||
'()))
|
||||
(image "jellyfin/jellyfin:latest")
|
||||
(provision "jellyfin")
|
||||
(log-file log-file)
|
||||
(auto-start? auto-start?)
|
||||
(respawn? #t)
|
||||
(network "host")
|
||||
(volumes
|
||||
`((,cache-directory . "/cache")
|
||||
(,config-directory . "/config")))
|
||||
(extra-arguments extra-options)))))
|
||||
(oci-extension
|
||||
(containers
|
||||
(list (oci-container-configuration
|
||||
(user "jellyfin")
|
||||
(group "docker")
|
||||
(environment
|
||||
(if (maybe-value-set? proxy-url)
|
||||
`(("http_proxy" . ,proxy-url)
|
||||
("https_proxy" . ,proxy-url))
|
||||
'()))
|
||||
(image "jellyfin/jellyfin:latest")
|
||||
(provision "jellyfin")
|
||||
(log-file log-file)
|
||||
(auto-start? auto-start?)
|
||||
(respawn? #t)
|
||||
(network "host")
|
||||
(volumes
|
||||
`((,cache-directory . "/cache")
|
||||
(,config-directory . "/config")))
|
||||
(extra-arguments extra-options)))))))
|
||||
|
||||
(define jellyfin-service-type
|
||||
(service-type
|
||||
@ -426,8 +430,8 @@ test its configuration file."))
|
||||
jellyfin-activation)
|
||||
(service-extension log-rotation-service-type
|
||||
(compose list jellyfin-configuration-log-file))
|
||||
(service-extension oci-container-service-type
|
||||
jellyfin-oci-containers)))
|
||||
(service-extension oci-service-type
|
||||
jellyfin-oci)))
|
||||
(default-value (jellyfin-configuration))
|
||||
(description "Run Jellyfin, a media system.")))
|
||||
|
||||
@ -539,7 +543,7 @@ test its configuration file."))
|
||||
(mkdir-p #$data-directory)
|
||||
(chown #$data-directory (passwd:uid user) (passwd:gid user)))))))
|
||||
|
||||
(define misskey-oci-containers
|
||||
(define misskey-oci
|
||||
(match-record-lambda <misskey-configuration>
|
||||
(image config data-directory log-file )
|
||||
(let ((config-file
|
||||
@ -552,18 +556,20 @@ test its configuration file."))
|
||||
(let ((emitter (make-yaml-emitter)))
|
||||
(yaml-emit! emitter '#$config)
|
||||
(display (yaml-emitter-string emitter) port)))))))))
|
||||
(list (oci-container-configuration
|
||||
(user "misskey")
|
||||
(group "docker")
|
||||
(image image)
|
||||
(provision "misskey")
|
||||
(requirement '(postgresql redis))
|
||||
(log-file log-file)
|
||||
(respawn? #t)
|
||||
(network "host")
|
||||
(volumes
|
||||
`((,(string-append data-directory "/files") . "/misskey/files")
|
||||
(,config-file . "/misskey/.config/default.yml"))))))))
|
||||
(oci-extension
|
||||
(containers
|
||||
(list (oci-container-configuration
|
||||
(user "misskey")
|
||||
(group "docker")
|
||||
(image image)
|
||||
(provision "misskey")
|
||||
(requirement '(postgresql redis))
|
||||
(log-file log-file)
|
||||
(respawn? #t)
|
||||
(network "host")
|
||||
(volumes
|
||||
`((,(string-append data-directory "/files") . "/misskey/files")
|
||||
(,config-file . "/misskey/.config/default.yml"))))))))))
|
||||
|
||||
(define misskey-service-type
|
||||
(service-type
|
||||
@ -577,8 +583,8 @@ test its configuration file."))
|
||||
(compose list misskey-configuration-log-file))
|
||||
(service-extension activation-service-type
|
||||
misskey-activation)
|
||||
(service-extension oci-container-service-type
|
||||
misskey-oci-containers)))
|
||||
(service-extension oci-service-type
|
||||
misskey-oci)))
|
||||
(description "Run Misskey, an interplanetary microblogging platform.")))
|
||||
|
||||
|
||||
@ -717,38 +723,40 @@ test its configuration file."))
|
||||
(write-char #\newline port)))
|
||||
(chown #$log-file (passwd:uid user) (passwd:gid user)))))))
|
||||
|
||||
(define vaultwarden-oci-containers
|
||||
(define vaultwarden-oci
|
||||
(match-record-lambda <vaultwarden-configuration>
|
||||
(admin-token database-url port data-directory log-file proxy-url extra-options)
|
||||
(list (oci-container-configuration
|
||||
(user "vaultwarden")
|
||||
(group "docker")
|
||||
(host-environment
|
||||
`(,@(if (maybe-value-set? admin-token)
|
||||
`(("ADMIN_TOKEN" . ,admin-token))
|
||||
'())
|
||||
("DATABASE_URL" . ,database-url)))
|
||||
(environment
|
||||
`(,@(if (maybe-value-set? proxy-url)
|
||||
`(("HTTP_PROXY" . ,proxy-url))
|
||||
'())
|
||||
("LOG_FILE" . "vaultwarden.log")
|
||||
("ROCKET_PORT" . ,(number->string port))
|
||||
("USE_SYSLOG" . "True")
|
||||
,@extra-options))
|
||||
(image "vaultwarden/server:latest-alpine")
|
||||
(provision "vaultwarden")
|
||||
(requirement '(postgresql))
|
||||
(respawn? #t)
|
||||
(network "host")
|
||||
(volumes
|
||||
`((,data-directory . "/data")
|
||||
(,log-file . "/vaultwarden.log")))
|
||||
(extra-arguments
|
||||
`(,@(if (maybe-value-set? admin-token)
|
||||
'("--env" "ADMIN_TOKEN")
|
||||
'())
|
||||
"--env" "DATABASE_URL"))))))
|
||||
(oci-extension
|
||||
(containers
|
||||
(list (oci-container-configuration
|
||||
(user "vaultwarden")
|
||||
(group "docker")
|
||||
(host-environment
|
||||
`(,@(if (maybe-value-set? admin-token)
|
||||
`(("ADMIN_TOKEN" . ,admin-token))
|
||||
'())
|
||||
("DATABASE_URL" . ,database-url)))
|
||||
(environment
|
||||
`(,@(if (maybe-value-set? proxy-url)
|
||||
`(("HTTP_PROXY" . ,proxy-url))
|
||||
'())
|
||||
("LOG_FILE" . "vaultwarden.log")
|
||||
("ROCKET_PORT" . ,(number->string port))
|
||||
("USE_SYSLOG" . "True")
|
||||
,@extra-options))
|
||||
(image "vaultwarden/server:latest-alpine")
|
||||
(provision "vaultwarden")
|
||||
(requirement '(postgresql))
|
||||
(respawn? #t)
|
||||
(network "host")
|
||||
(volumes
|
||||
`((,data-directory . "/data")
|
||||
(,log-file . "/vaultwarden.log")))
|
||||
(extra-arguments
|
||||
`(,@(if (maybe-value-set? admin-token)
|
||||
'("--env" "ADMIN_TOKEN")
|
||||
'())
|
||||
"--env" "DATABASE_URL"))))))))
|
||||
|
||||
(define vaultwarden-service-type
|
||||
(service-type
|
||||
@ -762,6 +770,6 @@ test its configuration file."))
|
||||
vaultwarden-activation)
|
||||
(service-extension log-rotation-service-type
|
||||
(compose list vaultwarden-configuration-log-file))
|
||||
(service-extension oci-container-service-type
|
||||
vaultwarden-oci-containers)))
|
||||
(service-extension oci-service-type
|
||||
vaultwarden-oci)))
|
||||
(description "Run Vaultwarden, a Bitwarden compatible server.")))
|
||||
|
||||
Loading…
Reference in New Issue
Block a user