[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
01/06: services: Add whoogle-service-type.
From: |
guix-commits |
Subject: |
01/06: services: Add whoogle-service-type. |
Date: |
Tue, 20 Feb 2024 05:05:37 -0500 (EST) |
civodul pushed a commit to branch master
in repository guix.
commit 0a7bf792c88ebaf0ec6c55e03a4f587bd5597796
Author: Miguel Ángel Moreno <mail@migalmoreno.com>
AuthorDate: Sun Aug 13 12:37:04 2023 +0200
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>
---
doc/guix.texi | 32 ++++++++++++++++++++++++++++++
gnu/services/web.scm | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 88 insertions(+)
diff --git a/doc/guix.texi b/doc/guix.texi
index fe6f82d4a5..31e4869117 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -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
diff --git a/gnu/services/web.scm b/gnu/services/web.scm
index 05fd71f994..406117c457 100644
--- a/gnu/services/web.scm
+++ b/gnu/services/web.scm
@@ -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
@@ -1604,6 +1614,52 @@ files.")
(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
;;;
- branch master updated (0497b1696f -> ffcce77ec4), guix-commits, 2024/02/20
- 04/06: syscalls: ‘processes’ really omits kernel threads., guix-commits, 2024/02/20
- 02/06: doc: Augment ‘whoogle-service-type’ intro., guix-commits, 2024/02/20
- 03/06: gnu: alsa-scarlett-gui: Wrap with GSETTINGS_SCHEMA_DIR., guix-commits, 2024/02/20
- 01/06: services: Add whoogle-service-type.,
guix-commits <=
- 06/06: gnu: Add rdfind., guix-commits, 2024/02/20
- 05/06: gnu: Add font-libre-franklin., guix-commits, 2024/02/20