Compare commits

..

No commits in common. "b8c33054032a49bf1d683be7113b86a8a147c4fd" and "f35b32e3aa1e89e370e2cfb24b6dbe14d9fac8fe" have entirely different histories.

2 changed files with 33 additions and 53 deletions

View File

@ -4,7 +4,6 @@
(define-module (rosenthal services monitoring) (define-module (rosenthal services monitoring)
#:use-module (guix gexp) #:use-module (guix gexp)
#:use-module (guix modules)
#:use-module (guix records) #:use-module (guix records)
#:use-module (rosenthal utils serializers ini) #:use-module (rosenthal utils serializers ini)
#:use-module (rosenthal utils serializers yaml) #:use-module (rosenthal utils serializers yaml)
@ -138,12 +137,7 @@
(match-record-lambda <grafana-configuration> (match-record-lambda <grafana-configuration>
(grafana config shepherd-provision shepherd-requirement auto-start?) (grafana config shepherd-provision shepherd-requirement auto-start?)
(let ((config-file (let ((config-file
(computed-file "grafana.ini" (apply mixed-text-file "grafana.ini" (ini-serialize config))))
(with-extensions (list guile-ini guile-lib guile-smc)
#~(begin
(use-modules (srfi srfi-26) (ini))
(call-with-output-file #$output
(cut scm->ini '#$config #:port <>)))))))
(list (shepherd-service (list (shepherd-service
(provision shepherd-provision) (provision shepherd-provision)
(requirement `(loopback postgresql user-processes (requirement `(loopback postgresql user-processes

View File

@ -7,7 +7,6 @@
#:use-module (guix modules) #:use-module (guix modules)
#:use-module (guix records) #:use-module (guix records)
#:use-module (gnu packages admin) #:use-module (gnu packages admin)
#:use-module (gnu packages guile-xyz)
#:use-module (gnu packages version-control) #:use-module (gnu packages version-control)
#:use-module (gnu packages video) #:use-module (gnu packages video)
#:use-module (rosenthal packages binaries) #:use-module (rosenthal packages binaries)
@ -20,7 +19,6 @@
#:use-module (gnu services shepherd) #:use-module (gnu services shepherd)
#:use-module (gnu system privilege) #:use-module (gnu system privilege)
#:use-module (gnu system shadow) #:use-module (gnu system shadow)
#:use-module (rosenthal utils serializers ini)
#:use-module (rosenthal utils serializers yaml) #:use-module (rosenthal utils serializers yaml)
#:export (caddy-configuration #:export (caddy-configuration
caddy-service-type caddy-service-type
@ -173,9 +171,10 @@ reload its configuration file."))
(git-packages (git-packages
(list-of-file-likes (list git git-lfs)) (list-of-file-likes (list git git-lfs))
"@code{git} and extension packages to install.") "@code{git} and extension packages to install.")
(config (config-file
ini-config (file-object "/var/lib/forgejo/app.ini")
"") "Filesystem path or file-like object of Forgejo configuration,
@file{app.ini}.")
(no-serialization)) (no-serialization))
(define %forgejo-accounts (define %forgejo-accounts
@ -205,37 +204,30 @@ reload its configuration file."))
(define forgejo-shepherd-service (define forgejo-shepherd-service
(match-record-lambda <forgejo-configuration> (match-record-lambda <forgejo-configuration>
(forgejo config) (forgejo config-file)
(let ((config-file (list (shepherd-service
(computed-file "forgejo.ini" (documentation "Run Forgejo.")
(with-extensions (list guile-ini guile-lib guile-smc) (provision '(forgejo))
#~(begin (requirement '(loopback postgresql))
(use-modules (srfi srfi-26) (ini)) (start
(call-with-output-file #$output #~(make-forkexec-constructor
(cut scm->ini '#$config #:port <>))))))) (list #$(file-append forgejo "/bin/forgejo")
(list (shepherd-service "--config" #$config-file)
(documentation "Run Forgejo.") #:user "forgejo"
(provision '(forgejo)) #:group "forgejo"
(requirement '(loopback postgresql)) #:log-file "/var/log/forgejo.log"
(start #:environment-variables
#~(make-forkexec-constructor '("GIT_EXEC_PATH=/run/current-system/profile/libexec/git-core"
(list #$(file-append forgejo "/bin/forgejo") "GIT_SSL_CAINFO=/run/current-system/profile/etc/ssl/certs/ca-certificates.crt"
"--config" #$config-file) "HOME=/var/lib/forgejo"
#:user "forgejo" "PATH=/run/current-system/profile/bin"
#:group "forgejo" "SSL_CERT_DIR=/run/current-system/profile/etc/ssl/certs"
#:log-file "/var/log/forgejo.log" "SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt")
#:environment-variables #:resource-limits '((nofile 524288 524288))))
'("GIT_EXEC_PATH=/run/current-system/profile/libexec/git-core" (stop
"GIT_SSL_CAINFO=/run/current-system/profile/etc/ssl/certs/ca-certificates.crt" #~(make-kill-destructor))
"HOME=/var/lib/forgejo" (actions
"PATH=/run/current-system/profile/bin" (list (shepherd-configuration-action config-file)))))))
"SSL_CERT_DIR=/run/current-system/profile/etc/ssl/certs"
"SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt")
#:resource-limits '((nofile 524288 524288))))
(stop
#~(make-kill-destructor))
(actions
(list (shepherd-configuration-action config-file))))))))
(define forgejo-service-type (define forgejo-service-type
(service-type (service-type
@ -251,6 +243,7 @@ reload its configuration file."))
(const forgejo-activation)) (const forgejo-activation))
(service-extension shepherd-root-service-type (service-extension shepherd-root-service-type
forgejo-shepherd-service))) forgejo-shepherd-service)))
(default-value (forgejo-configuration))
(description "Run Forgejo."))) (description "Run Forgejo.")))
@ -493,7 +486,7 @@ test its configuration file."))
(string "misskey/misskey:latest") (string "misskey/misskey:latest")
"Misskey docker image to use.") "Misskey docker image to use.")
(config (config
yaml-config (yaml-config '())
"Alist of Misskey configuration, to be serialized to YAML format.") "Alist of Misskey configuration, to be serialized to YAML format.")
(data-directory (data-directory
(string "/var/lib/misskey") (string "/var/lib/misskey")
@ -530,15 +523,7 @@ test its configuration file."))
(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
(computed-file "misskey.yaml" (mixed-text-file "misskey.yaml" (yaml-serialize config))))
(with-extensions (list guile-yamlpp)
#~(begin
(use-modules (yamlpp))
(call-with-output-file #$output
(lambda (port)
(let ((emitter (make-yaml-emitter)))
(yaml-emit! emitter '#$config)
(display (yaml-emitter-string emitter) port)))))))))
(list (oci-container-configuration (list (oci-container-configuration
(user "misskey") (user "misskey")
(group "docker") (group "docker")
@ -566,6 +551,7 @@ test its configuration file."))
misskey-activation) misskey-activation)
(service-extension oci-container-service-type (service-extension oci-container-service-type
misskey-oci-containers))) misskey-oci-containers)))
(default-value (misskey-configuration))
(description "Run Misskey, an interplanetary microblogging platform."))) (description "Run Misskey, an interplanetary microblogging platform.")))