nongnu: Add grafana-service-type.
* nongnu/services/grafana.scm: New file. (<grafana-configuration>): New data type. (grafana-shepherd-service, grafana-service-type): New variables.
This commit is contained in:
parent
af134d0215
commit
e3035acca2
43
nongnu/services/grafana.scm
Normal file
43
nongnu/services/grafana.scm
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
;;; SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
;;; Copyright © 2023 Petr Hodina <phodina@protonmail.com>
|
||||||
|
|
||||||
|
(define-module (nongnu services grafana)
|
||||||
|
#:use-module (gnu packages)
|
||||||
|
#:use-module (nongnu packages grafana)
|
||||||
|
#:use-module (gnu services)
|
||||||
|
#:use-module (gnu services base)
|
||||||
|
#:use-module (gnu services shepherd)
|
||||||
|
#:use-module (guix gexp)
|
||||||
|
#:use-module (guix records)
|
||||||
|
#:export (grafana-configuration
|
||||||
|
grafana-configuration?
|
||||||
|
grafana-configuration-record?
|
||||||
|
grafana-service-type))
|
||||||
|
|
||||||
|
(define-record-type* <grafana-configuration>
|
||||||
|
grafana-configuration make-grafana-configuration
|
||||||
|
grafana-configuration?
|
||||||
|
;; TODO: Port, HTTPS, plugins?
|
||||||
|
(grafana grafana-configuration-package
|
||||||
|
(default (list grafana-bin)))) ; package
|
||||||
|
|
||||||
|
;; Add config file
|
||||||
|
(define (grafana-shepherd-service config)
|
||||||
|
(list (shepherd-service
|
||||||
|
(documentation "Run Grafana server.")
|
||||||
|
(provision '(grafana))
|
||||||
|
(requirement '(user-processes))
|
||||||
|
(start #~(make-forkexec-constructor
|
||||||
|
(list (string-append grafana
|
||||||
|
"/bin/grafana-server")
|
||||||
|
"-homepath" grafana)))
|
||||||
|
(stop #~(make-kill-destructor)))))
|
||||||
|
|
||||||
|
(define grafana-service-type
|
||||||
|
(service-type
|
||||||
|
(name 'grafana)
|
||||||
|
(extensions
|
||||||
|
(list (service-extension shepherd-root-service-type
|
||||||
|
grafana-shepherd-service)))
|
||||||
|
(default-value (grafana-configuration))
|
||||||
|
(description "Run Grafana server.")))
|
Loading…
Reference in New Issue
Block a user