services: Add whoogle-service-type.
* gnu/services/web.scm (whoogle-service-type): New variable. * doc/guix.texi (Web Services): Document it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>master
parent
0497b1696f
commit
0a7bf792c8
|
@ -31863,6 +31863,38 @@ Additional arguments to pass to the @command{varnishd} process.
|
|||
@end table
|
||||
@end deftp
|
||||
|
||||
@subheading Whoogle Search
|
||||
@cindex Whoogle Search
|
||||
@uref{https://github.com/benbusby/whoogle-search, Whoogle Search} is a
|
||||
self-hosted, ad-free, privacy-respecting metasearch engine that collects
|
||||
and displays Google search results.
|
||||
|
||||
@defvar whoogle-service-type
|
||||
Service type for Whoogle Search.
|
||||
@end defvar
|
||||
|
||||
@deftp {Data Type} whoogle-configuration
|
||||
Data type representing Whoogle Search service configuration.
|
||||
|
||||
@table @asis
|
||||
@item @code{package} (default: @code{whoogle-search})
|
||||
The Whoogle Search package to use.
|
||||
|
||||
@item @code{host} (default: @code{"127.0.0.1"})
|
||||
The host address to run Whoogle on.
|
||||
|
||||
@item @code{port} (default: @code{5000})
|
||||
The port where Whoogle will be exposed.
|
||||
|
||||
@item @code{environment-variables} (default: @code{'()})
|
||||
A list of strings with the environment variables to configure Whoogle.
|
||||
You can consult
|
||||
@uref{https://github.com/benbusby/whoogle-search/blob/main/whoogle.template.env,
|
||||
its environment variables template} for the list of available options.
|
||||
|
||||
@end table
|
||||
@end deftp
|
||||
|
||||
@subsubheading Patchwork
|
||||
@cindex Patchwork
|
||||
Patchwork is a patch tracking system. It can collect patches sent to a
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
;;; Copyright © 2020, 2021 Alexandru-Sergiu Marton <brown121407@posteo.ro>
|
||||
;;; Copyright © 2022 Simen Endsjø <simendsjo@gmail.com>
|
||||
;;; Copyright © 2023 Bruno Victal <mirai@makinata.eu>
|
||||
;;; Copyright © 2023 Miguel Ángel Moreno <mail@migalmoreno.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
|
@ -36,6 +37,7 @@
|
|||
#:use-module (gnu services)
|
||||
#:use-module (gnu services shepherd)
|
||||
#:use-module (gnu services admin)
|
||||
#:use-module (gnu services configuration)
|
||||
#:use-module (gnu services getmail)
|
||||
#:use-module (gnu services mail)
|
||||
#:use-module (gnu system pam)
|
||||
|
@ -47,6 +49,7 @@
|
|||
#:use-module (gnu packages patchutils)
|
||||
#:use-module (gnu packages php)
|
||||
#:use-module (gnu packages python)
|
||||
#:use-module (gnu packages python-web)
|
||||
#:use-module (gnu packages gnupg)
|
||||
#:use-module (gnu packages guile)
|
||||
#:use-module (gnu packages logging)
|
||||
|
@ -240,6 +243,13 @@
|
|||
|
||||
varnish-service-type
|
||||
|
||||
whoogle-service-type
|
||||
whoogle-configuration
|
||||
whoogle-configuration-package
|
||||
whoogle-configuration-host
|
||||
whoogle-configuration-port
|
||||
whoogle-configuration-environment-variables
|
||||
|
||||
patchwork-database-configuration
|
||||
patchwork-database-configuration?
|
||||
patchwork-database-configuration-engine
|
||||
|
@ -1603,6 +1613,52 @@ files.")
|
|||
(default-value
|
||||
(varnish-configuration))))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Whoogle
|
||||
;;;
|
||||
|
||||
(define-configuration/no-serialization whoogle-configuration
|
||||
(package
|
||||
(package whoogle-search)
|
||||
"The @code{whoogle-search} package to use.")
|
||||
(host
|
||||
(string "127.0.0.1")
|
||||
"The host address to run Whoogle on.")
|
||||
(port
|
||||
(integer 5000)
|
||||
"The port to run Whoogle on.")
|
||||
(environment-variables
|
||||
(list-of-strings '())
|
||||
"A list of strings specifying environment variables used to configure
|
||||
Whoogle."))
|
||||
|
||||
(define (whoogle-shepherd-service config)
|
||||
(match-record config <whoogle-configuration>
|
||||
(package host port environment-variables)
|
||||
(list
|
||||
(shepherd-service
|
||||
(provision '(whoogle-search))
|
||||
(start #~(make-forkexec-constructor
|
||||
(list (string-append #$package "/bin/whoogle-search")
|
||||
"--host" #$host "--port" #$(number->string port))
|
||||
#:environment-variables
|
||||
(append (list "CONFIG_VOLUME=/var/cache/whoogle-search")
|
||||
'#$environment-variables)))
|
||||
(stop #~(make-kill-destructor))
|
||||
(documentation "Run a @code{whoogle-search} instance.")))))
|
||||
|
||||
(define whoogle-service-type
|
||||
(service-type
|
||||
(name 'whoogle-search)
|
||||
(extensions
|
||||
(list (service-extension shepherd-root-service-type
|
||||
whoogle-shepherd-service)
|
||||
(service-extension profile-service-type
|
||||
(compose list whoogle-configuration-package))))
|
||||
(default-value (whoogle-configuration))
|
||||
(description "Set up the @code{whoogle-search} metasearch engine.")))
|
||||
|
||||
|
||||
;;;
|
||||
;;; Patchwork
|
||||
|
|
Reference in New Issue