mirror of
https://codeberg.org/hako/Rosenthal.git
synced 2025-10-14 01:14:35 +00:00
services: forgejo, grafana: Use serializer from guile-ini.
This commit is contained in:
parent
f35b32e3aa
commit
ae9586b909
@ -4,6 +4,7 @@
|
|||||||
|
|
||||||
(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)
|
||||||
@ -137,7 +138,12 @@
|
|||||||
(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
|
||||||
(apply mixed-text-file "grafana.ini" (ini-serialize config))))
|
(computed-file "grafana.ini"
|
||||||
|
(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
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
#: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)
|
||||||
@ -19,6 +20,7 @@
|
|||||||
#: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
|
||||||
@ -171,10 +173,9 @@ 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-file
|
(config
|
||||||
(file-object "/var/lib/forgejo/app.ini")
|
ini-config
|
||||||
"Filesystem path or file-like object of Forgejo configuration,
|
"")
|
||||||
@file{app.ini}.")
|
|
||||||
(no-serialization))
|
(no-serialization))
|
||||||
|
|
||||||
(define %forgejo-accounts
|
(define %forgejo-accounts
|
||||||
@ -204,30 +205,37 @@ reload its configuration file."))
|
|||||||
|
|
||||||
(define forgejo-shepherd-service
|
(define forgejo-shepherd-service
|
||||||
(match-record-lambda <forgejo-configuration>
|
(match-record-lambda <forgejo-configuration>
|
||||||
(forgejo config-file)
|
(forgejo config)
|
||||||
(list (shepherd-service
|
(let ((config-file
|
||||||
(documentation "Run Forgejo.")
|
(computed-file "forgejo.ini"
|
||||||
(provision '(forgejo))
|
(with-extensions (list guile-ini guile-lib guile-smc)
|
||||||
(requirement '(loopback postgresql))
|
#~(begin
|
||||||
(start
|
(use-modules (srfi srfi-26) (ini))
|
||||||
#~(make-forkexec-constructor
|
(call-with-output-file #$output
|
||||||
(list #$(file-append forgejo "/bin/forgejo")
|
(cut scm->ini '#$config #:port <>)))))))
|
||||||
"--config" #$config-file)
|
(list (shepherd-service
|
||||||
#:user "forgejo"
|
(documentation "Run Forgejo.")
|
||||||
#:group "forgejo"
|
(provision '(forgejo))
|
||||||
#:log-file "/var/log/forgejo.log"
|
(requirement '(loopback postgresql))
|
||||||
#:environment-variables
|
(start
|
||||||
'("GIT_EXEC_PATH=/run/current-system/profile/libexec/git-core"
|
#~(make-forkexec-constructor
|
||||||
"GIT_SSL_CAINFO=/run/current-system/profile/etc/ssl/certs/ca-certificates.crt"
|
(list #$(file-append forgejo "/bin/forgejo")
|
||||||
"HOME=/var/lib/forgejo"
|
"--config" #$config-file)
|
||||||
"PATH=/run/current-system/profile/bin"
|
#:user "forgejo"
|
||||||
"SSL_CERT_DIR=/run/current-system/profile/etc/ssl/certs"
|
#:group "forgejo"
|
||||||
"SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt")
|
#:log-file "/var/log/forgejo.log"
|
||||||
#:resource-limits '((nofile 524288 524288))))
|
#:environment-variables
|
||||||
(stop
|
'("GIT_EXEC_PATH=/run/current-system/profile/libexec/git-core"
|
||||||
#~(make-kill-destructor))
|
"GIT_SSL_CAINFO=/run/current-system/profile/etc/ssl/certs/ca-certificates.crt"
|
||||||
(actions
|
"HOME=/var/lib/forgejo"
|
||||||
(list (shepherd-configuration-action config-file)))))))
|
"PATH=/run/current-system/profile/bin"
|
||||||
|
"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
|
||||||
@ -243,7 +251,6 @@ 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.")))
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user