* gnu/services/web.scm (<mumi-configuration>)[rsync-and-index-event]: New
field.
* gnu/services/web.scm (mumi-shepherd-services): Use it.
* doc/guix.texi (Web Services)[Mumi]: Document it.
Change-Id: I5910c4a93106b44eaf3900d6a72fb501c01b8773
Since gunicorn is run in its own Linux namespace, where $HOME is
read-only, creating that control-socket fails and prevents gunicorn
from starting by default. Therefore, this patch disables it by
default but allows supplying a custom path via a newly added
configuration field.
* gnu/services/web.scm (gunicorn-app): Add gunicorn-app-control-socket.
(gunicorn-shepherd-services): Respect gunicorn-app-control-socket.
* doc/guix.texi (gunicorn-app): Document it.
Change-Id: I648079b630293a47801713425728a4d602c8088c
If the provided unix-socket? parameter is not an URI uri->string returns
to be raised. For example, on inputs such as "0.0.0.0:8080". This is
fixed in this commit by first checking if the input parameter is a valid
URI, before calling uri-scheme.
* gnu/tests/web.scm (unix-socket?): Check URI before calling uri-scheme.
Change-Id: Icd9cb1e215a09b1f5dcbec4630e7df3256cde4aa
* gnu/services/dns.scm (<dnsmasq-configuration>)
[authoritative-servers, authoritative-zones, host-records]: New fields.
(dnsmasq-shepherd-service): Use them.
* doc/guix.texi (DNS Services): Add a new example and document the new fields.
Change-Id: Ib26c3f59e90b2a9997ecdac03c5564ae02b6754e
Reviewed-by: Nguyễn Gia Phong <cnx@loang.net>
* gnu/services/dns.scm (<dnsmasq-configuration>)
[locals]: New field.
(dnsmasq-shepherd-service): Use it.
* doc/guix.texi (DNS Services): Document it.
Change-Id: I1c2bc86c1636aa82451d1a38959380c3791fd8d4
* gnu/services/web.scm (nginx-service-type): Extend the profile-service-type
with the nginx package.
Change-Id: I72b592c603a971bf9fbb64fe5ce02420010ac363
* gnu/services/linux.scm (btrfs-scrub-configuration): New configuration
record.
(btrfs-scrub-service-type): New service type with custom actions.
(fstrim-/shepherd-calendar-event?): Refactor to avoid name collisions.
* doc/guix.texi: Add service documentation.
Change-Id: I04747914591a80cd535d2f79d35e08f68081b2fc
Signed-off-by: Joan Vilardaga Castro <codeberg-hn80@joanvc.cat>
Signed-off-by: Efraim Flashner <efraim@flashner.co.il>
Without this change, the mode is not at all configurable meaning
that—depending on the umask(1)—it may allow access to others. Further,
in many scenarios the owner/group of the Unix domain socket should
differ from the owner/group of the gunicorn process. For example,
we might want to grant the nginx group access to the socket but not
use that as the GID for the gunicorn process.
* gnu/services/web.scm (<gunicorn-app>): Add socket-user, socket-group
and socket-mode.
* gnu/services/web.scm (gunicorn-activation): Respect
gunicorn-app-socket-user, gunicorn-socket-app-group, and
gunicorn-app-socket-mode.
* doc/guix.texi (Guix Services): Document new record fields.
Change-Id: I1fe5b77deb791c38c1642753a52098d304124049
This partially reverts commit 3b53789393 .
* gnu/services/guix.scm (bffe-shepherd-services): Use the package,
not the variable name.
Change-Id: I3bd34b369528e72f08ee3d5833b30bf073b585d2
* gnu/services/firmware.scm: New file.
(fwupd-configuration): New configuration record.
(fwupd-service-type): New service type.
* gnu/local.mk: Add it.
* doc/guix.texi: Document it.
Change-Id: Ibea27566d6ae64ccfdfdd2750be006df1ffde22d
Signed-off-by: Sughosha <sughosha@disroot.org>
Merges: guix/guix!5409
Alternative syslogd implementations use a different pid file.
* gnu/services/base.scm: Export all syslog-configuration accessors.
(syslog-configuration): Add pid-file field.
(syslog-shepherd-service-type): Use it.
* doc/guix.texi (syslog-configuration): Document it.
Change-Id: I9be9fc741d98d4f49a37fbcbb2c644db859cadc1
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #6096
Instead, run it as the created go-webdav user. Since go-webdav doesn't
drop privileges by itself this requires explicitly passing the users and
group via make-forkexec-constructor, which was overlooked here.
Without this patch, the account created by go-webdav-account-service
is just not used at all, which is not what was intended here.
* gnu/services/web.scm (go-webdav-shepherd-service): Pass #:user as well
as #:group to make-forkexec-constructor.
Change-Id: Ib48aa7884aca84c488133a035a76a7edfaaf0aab
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
Instead, run it as the created sogogi user. Since sogogi doesn't drop
privileges by itself this requires explicitly passing the users and
group via make-forkexec-constructor, which was overlooked here.
Without this patch, the account created by sogogi-account-service
is just not used at all, which is not what was intended here.
* gnu/services/web.scm (sogogi-shepherd-service): Pass #:user as well
as #:group to make-forkexec-constructor.
Change-Id: Ifcb4291090e1aa6a43502c9ed581b0b0ff68a1b4
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
Also export guix-data-service-extra-options and
guix-data-service-extra-process-jobs-options since this was missed previously.
* gnu/services/guix.scm (<guix-data-service-configuration>): Add
extra-environment-variables and extra-process-jobs-environment-variables.
(guix-data-service-shepherd-services): Use them.
* doc/guix.texi (Guix Services): Document them.
Change-Id: I60f1371a86a01c4fb3dbde204dba84b9a8657ace
* gnu/services/databases.scm (%default-postgres-hba):
Change the authentification method from the deprecated md5
to the recommended scram-sha-256.
Change-Id: I4ae06bf2f77daa7a9339964182153c5f02897e4f
Merges: https://codeberg.org/guix/guix/pulls/7780
Reviewed-by: jgart <jgart@dismail.de>
Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
A previous commit (c7cb771cf4) fixed an issue with the nginx service to
ensure it can be stopped when started from a custom config file.
The stop command, which should have been `nginx -s stop`, was mistakenly
written as `nginx stop`, which means that `herd stop nginx` still fails
in the given case. This commit corrects that typo.
* gnu/services/web.scm (nginx-shepherd-service): In ‘stop’, correctly
call “nginx -s stop” when ‘value’ is not a process.
Fixes: guix/guix#7061
Reported-by: Dan Littlewood
Change-Id: I3055fc24084d30da969afd508861d2423a396ced
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #8128
For the output ports, as this can cause problems with fibers.
* gnu/services/guix.scm (bffe-shepherd-services): Don't use line buffered
output.
Change-Id: I93a24ea2bad2d7beac795caf515ffd7a259247a7
For the output ports, as this can cause problems with fibers.
* gnu/services/guix.scm (make-guix-build-coordinator-start-script): Don't use
line buffered output.
Change-Id: I7b26ef252b6f6999e8a39b5d872a780a99f3852c
Handling of non-NFS/SMB mounts was buggy and did not work at all.
* gnu/services/nfs.scm (autofs-configuration->requirements): Add an `else' to
prevent losing the accumulator in the fold.
(autofs-configuration->requirements): Call `delete-duplicates' on the input,
not the output.
Fixes#7927.
Change-Id: I0cccde431d0bd19dc63be8754fb6dfa35a6f8a49
This patch implements a general API to serialize configuration records
to list of pairs representing environment variables. The car of each
pair represents the variable name and the cdr the variable value.
* gnu/services/configuration/environment-variables.scm: New file.
(serialize-string-environment-variable)
(serialize-maybe-string-environment-variable)
(serialize-boolean-environment-variable)
(serialize-maybe-boolean-environment-variable)
(serialize-number-environment-variable)
(serialize-maybe-number-environment-variable): New variables.
(serialize-environment-variables): New variable.
* gnu/services/configuration/utils.scm: New file.
(uglify-snake-case): New variable.
* tests/services/configuration.scm: Add tests for environment serializer.
(wrong type for a field): Adjust error location.
* doc/guix.texi: Document it.
Change-Id: I81a166576f94d3c8f5bf78c82a02183689a3091c
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
Previously, when the ‘file’ field of ‘nginx-configuration’ was true, the PID
file would be unknown; thus, the ‘start’ method would return #t and the ‘stop’
method would eventually fail with a type error because it would receive #t
instead of a process.
This fixes it by changing ‘stop’ to invoke “nginx -s stop” when the service’s
value is not a process.
* gnu/services/web.scm (nginx-shepherd-service): In ‘stop’, change to invoke
“nginx -s stop” when ‘value’ is not a process.
Fixes: guix/guix#7061
Reported-by: Dan Littlewood
Change-Id: I20ff065ecd2c64e5fc98f59c25d91b300bc7b4cd
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Merges: #7543
When you want to invoke wg-quick yourself, for example from a script,
this procedure is useful to produce the configuration file for it.
* gnu/services/vpn.scm (define-module)<#:export>:
Add wireguard-configuration-file.
Change-Id: Ifab8a9d731de19d2943517bf18c156a56fea4cca
Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
* gnu/services/web.scm (sogogi-service-type): New services.
(sogogi-serialize-section, sogogi-serialize-field)
(sogogi-serialize-string, sogogi-serialize-list-of-strings)
(sogogi-serialize-sogogi-user, sogogi-serialize-sogogi-location)
(sogogi-serialize-list-of-sogogi-user): New procedures.
(sogogi-user, sogogi-location)
(sogogi-configuration): New record types.
(sogogi-account-service): New variable.
(sogogi-config-file, sogogi-shepherd-service): New procedures.
* gnu/tests/web.scm (%test-sogogi): Add tests for the service.
* doc/guix.texi (Web Services): Document it.
Change-Id: I5cc6dd84d6c7c8d5d13b685853b19c5d433ed7e5
* gnu/services/dbus.scm (rtkit-service-type): New variable.
(rtkit-configuration): New record.
Change-Id: I5078cb5032824c7799e7d26962911bbc67527562
Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
There was one level of parentheses too much, leading to errors when the script
was invoked due to trying to apply e.g., 0 or #t. So either use begin, or
strip one level, as appropriate.
* gnu/services/power.scm (apcupsd-event-handlers): Fix all G-expressions.
Signed-off-by: Andreas Enge <andreas@enge.fr>
* gnu/services/desktop.scm (plasma-udev-configurations): New variable.
(plasma-desktop-service-type): Extend udev-service-type with it.
Change-Id: Ifcf08c731b1173c9c811b22744072538e4df7e36
* gnu/services/messaging.scm (%default-soju-shepherd-requirement): New
variable.
(soju-ssl-certificate): New configuration record.
(soju-database): New configuration record.
(soju-configuration): New configuration record.
(serialize-soju-configuration,soju-activation,soju-accounts,
soju-shepherd-services): New procedures.
(soju-service-type): New service.
(serialize-ngircd-configuration): Reformat.
(pounce-configuration): Reformat.
* doc/guix.texi: Document the new soju service.
* gnu/tests/messaging.scm: Test the new soju service.
Change-Id: I6223ecac1aaaab76bd75461851ffe4cec0678118
* gnu/services/linux.scm
(tuned-configuration,tuned-settings,tuned-ppd-settings): New
configuration records.
(tuned-file-systems,tuned-activation,tuned-shepherd-services,
tuned-kernel-modules): New procedures.
(tuned-service-type): New service type.
* doc/guix.texi: Add service documentation.
Change-Id: I6c8d54c23175c2ea133d99965641c548fb1d6452