summaryrefslogtreecommitdiff
path: root/gnu/services/vpn.scm
AgeCommit message (Collapse)Author
2026-04-03services: wireguard: Export wireguard-configuration-file.Tomas Volf
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>
2025-09-18Reapply "Update Maxim's email address."Maxim Cournoyer
This reverts commit a7db92d9b389cbe565395523882c34c6eff2c21a, this time with the more careful command, to avoid a world rebuild: grep -rl --exclude-dir=build --exclude-dir=patches --exclude=ld-wrapper.in \ --exclude=sitecustomize.py --exclude=guix-emacs.el maxim.cournoyer@gmail.com | xargs sed -i 's/maxim.cournoyer@gmail.com/maxim@guixotic.coop/g' Change-Id: I0871f5cf9ace79e34e78e24154d0da6ea95a3a91
2025-09-18Revert "Update Maxim's email address."Maxim Cournoyer
This reverts commit d0d87a744d724b7e7d5ac013c586039652087bb3. Oops! This caused a world rebuild. Change-Id: I25fff644b2b61d0ee93d69b457b04c72b5b74d15
2025-09-18Update Maxim's email address.Maxim Cournoyer
The change was automated via: git grep -l maxim.cournoyer@gmail.com | xargs sed -i 's/maxim.cournoyer@gmail.com/maxim@guixotic.coop/g' * .mailmap: New entry. Change-Id: Iaa88b1e51c94159c49138fb43910badb990eb169
2025-06-05services: configuration: Add define-enumerated-field-type helper.Sergey Trofimov
* gnu/services/cups.scm (define-enumerated-field-type): Move... * gnu/services/configuration.scm (define-enumerated-field-type): ...here. * gnu/services/vpn.scm (define-enumerated-field-type): Remove. * gnu/services/power.scm (define-enum): Replace with define-enumerated-field-type. Change-Id: I89ec40f479e3f800268e714f1f88d638be017c7e Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-03-23services: wireguard: Turn monitoring into a Shepherd timer.Ludovic Courtès
* gnu/services/vpn.scm (<wireguard-configuration>)[schedule]: Change default value. (wireguard-monitoring-program): New procedure, with code taken from… (wireguard-monitoring-jobs): … here. Remove. (wireguard-shepherd-services): New procedure, with code taken from… (wireguard-shepherd-service): … here. Remove. * doc/guix.texi (VPN Services): Update. Reviewed-by: Maxim Cournoyer <maxim.cournoyer@gmail.com> Change-Id: I6851ddf1eb9480bdc9e6c6c6b88958ab2e6225d7
2025-03-19services: wireguard: Add the shepherd-requirement field.Sergey Trofimov
* gnu/services/vpn.scm (<wireguard-configuration>): Add shepherd-requirement. (wireguard-shepherd-service): Pass shepherd-requirement. Add user-processes to requirements. * doc/guix.texi (VPN Services):[wireguard]: Document it. Change-Id: Ia85add5067f6f9e023b8d65d6ce067b98eeb111e Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2025-03-03services: wireguard: Add the auto-start? field.Carlo Zancanaro
* gnu/services/vpn.scm (<wireguard-configuration>): Add auto-start?. (wireguard-shepherd-service): Pass auto-start? to Shepherd service. * doc/guix.texi (VPN Services)[wireguard]: Document it. Change-Id: I7880a8c8e9860250f875e845e94eb118a4b852fa Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
2025-02-23services: Add missing Shepherd dependency on ‘user-processes’.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/76368>. * gnu/services/auditd.scm (auditd-shepherd-service): * gnu/services/base.scm (rngd-service-type): (gpm-shepherd-service): * gnu/services/ci.scm (laminar-shepherd-service): * gnu/services/containers.scm (rootless-podman-cgroups-fs-owner-service): (rootless-podman-cgroups-limits-service): * gnu/services/cups.scm (cups-shepherd-service): * gnu/services/databases.scm (postgresql-role-shepherd-service): * gnu/services/desktop.scm (upower-shepherd-service): (bluetooth-shepherd-service): (elogind-shepherd-service): (inputattach-shepherd-service): (seatd-shepherd-service): * gnu/services/dns.scm (knot-resolver-shepherd-services): (dnsmasq-shepherd-service): * gnu/services/docker.scm (containerd-shepherd-service): (docker-shepherd-service): * gnu/services/file-sharing.scm (transmission-daemon-shepherd-service): * gnu/services/games.scm (joycond-shepherd-service): (wesnothd-shepherd-service): * gnu/services/guix.scm (guix-build-coordinator-shepherd-services): (guix-data-service-shepherd-services): (nar-herder-shepherd-services): (bffe-shepherd-services): * gnu/services/ldap.scm (directory-server-shepherd-service): * gnu/services/linux.scm (cachefilesd-shepherd-service): (rasdaemon-shepherd-service): * gnu/services/mail.scm (dovecot-shepherd-service): (imap4d-shepherd-service): (radicale-shepherd-service): (rspamd-configuration): * gnu/services/monitoring.scm (prometheus-node-exporter-shepherd-service): (vnstat-shepherd-service): * gnu/services/networking.scm (opendht-shepherd-service): (openvswitch-shepherd-service): (pagekite-shepherd-service): (ipfs-shepherd-service): * gnu/services/nfs.scm (rpcbind-service-type): (gss-service-type): (idmap-service-type): * gnu/services/pm.scm (thermald-shepherd-service): * gnu/services/rsync.scm (rsync-shepherd-service): * gnu/services/samba.scm (samba-samba-shepherd-service): (samba-nmbd-shepherd-service): (samba-smbd-shepherd-service): (samba-winbindd-shepherd-service): (wsdd-shepherd-service): * gnu/services/security-token.scm (pcscd-shepherd-service): * gnu/services/sound.scm (speakersafetyd-shepherd-service): * gnu/services/spice.scm (spice-vdagent-shepherd-service): * gnu/services/ssh.scm (lsh-shepherd-service): (openssh-shepherd-service): (dropbear-shepherd-service): (autossh-shepherd-service): * gnu/services/telephony.scm (jami-shepherd-services): (mumble-server-shepherd-service): * gnu/services/version-control.scm (git-daemon-shepherd-service): * gnu/services/virtualization.scm (virtlogd-shepherd-service): * gnu/services/vnc.scm (xvnc-shepherd-service): * gnu/services/vpn.scm (openvpn-shepherd-service): (strongswan-shepherd-service): * gnu/services/web.scm (httpd-shepherd-services): (fcgiwrap-shepherd-service): (php-fpm-shepherd-service): (hpcguix-web-shepherd-service): (tailon-shepherd-service): (varnish-shepherd-service): (whoogle-shepherd-service): (mumi-shepherd-services): (gmnisrv-shepherd-service): (agate-shepherd-service): Add ‘user-processes’ requirement. * doc/guix.texi (Mail Services): Update accordingly. Reported-by: Dariqq <dariqq@posteo.net> Change-Id: I947bd2afc83b786cb17c555cfe73ab586b806618
2024-12-06services: wireguard: Support lists of gexps for most fields.Richard Sent
In order to support more flexibility in Wireguard configuration, ungexp the configuration fields directly instead of ungexp-splicing a sexp calculator. This allows for the fields to take arbitrary gexps instead of only strings which is particularly helpful for the Pre/Post Up/Down commands. * gnu/services/vpn.scm (wireguard-configuration-file): Ungexp configuration lists instead of ungexp-splicing the code surrounding them. * doc/guix.texi (VPN Services)[wireguard]: Document it. Change-Id: If074cbb78473b6fd34e0e4e990d2ed268001d6c7 Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2024-12-06services: wireguard: Add the bootstrap-private-key? field.Richard Sent
The syntax from using the private-key field is more convenient than writing a custom PreUp command (more formatting and preshared keys). Instead of trying to guess if private-key is/is not a file path, add an option to disable bootstrapping while still using private-key. * gnu/services/vpn.scm (<wireguard-configuration>): Add bootstrap-private-key?. (wireguard-activation): Check bootstrap-private-key? before bootstrapping. * doc/guix.texi (VPN Services)[wireguard]: Document it. Change-Id: I6ba71ad58b26743057a221a54a246369022f83a5 Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2024-12-06services: wireguard: Make the private-key field optional.Richard Sent
Users who retrieve the private-key via a PreUp field need to be able to disable the default retrieval mechanism. * gnu/services/vpn.scm (<wireguard-configuration>)[private-key]: Change comment. (wireguard-configuration-file): Conditionally serialize private-key. * gnu/services/vpn.scm (wireguard-activation): Do not create private-key if the field is #f. * doc/guix.texi (VPN Services)[wireguard-configuration]: Document it. Change-Id: Iac419809ae94eb76e97ff1f1749e2f4b3e65bb04 Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2023-09-09services: vpn: Fix broken format string for wireguard dns.Reily Siegel
* gnu/services/vpn.scm (wireguard-configuration-file): Fix broken format string. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
2023-07-21services: wireguard: Add a 'configuration' action.Maxim Cournoyer
* gnu/services/vpn.scm (wireguard-shepherd-service) [actions]: New field.
2023-07-21services: wireguard: Clean-up configuration file serializer.Maxim Cournoyer
Previously, the generated config file would contain arbitrary whitespace that made it look ugly. * gnu/services/vpn.scm (<wireguard-configuration>) [dns]: Change default value from #f to '(). (wireguard-configuration-file): Use match-record. Format each line individually, assembling the lines at the end to avoid extraneous white space. * doc/guix.texi (VPN Services): Update doc.
2023-07-21services: wireguard: Implement a dynamic IP monitoring feature.Maxim Cournoyer
* gnu/services/vpn.scm (<wireguard-configuration>) [monitor-ips?, monitor-ips-internal]: New fields. * gnu/services/vpn.scm (define-with-source): New syntax. (wireguard-service-name, strip-port/maybe) (ipv4-address?, ipv6-address?, host-name?) (endpoint-host-names): New procedure. (wireguard-monitoring-jobs): Likewise. (wireguard-service-type): Register it. * tests/services/vpn.scm: New file. * Makefile.am (SCM_TESTS): Register it. * doc/guix.texi (VPN Services): Update doc. Reviewed-by: Bruno Victal <mirai@makinata.eu>
2023-03-03services: vpn: Deprecate 'openvpn-client-service' & 'openvpn-server-service' ↵Bruno Victal
procedures. * doc/guix.texi (VPN Services): Replace 'openvpn-client-service' & 'openvpn-server-service' procedures with their service-type counterparts. * gnu/services/vpn.scm (openvpn-client-service, openvpn-server-service): Deprecate procedure. (openvpn-server-service-type, openvpn-client-service-type): Set default value. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-12-25services: wireguard: Allow specifying pre-shared keys.Timo Wilken
* gnu/services/vpn.scm (<wireguard-peer>)[preshared-key]: New field. * doc/guix.texi (VPN Services): Document it. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-12-09services: wireguard: Use the parameterized wireguard package.EuAndreh
* gnu/services/vpn.scm (wireguard-activation): Use the "wg" binary from the package given to <wireguard-configuration>. Signed-off-by: 宋文武 <iyzsong@member.fsf.org>
2022-11-13services: vpn: Fix the profile wireguard package.EuAndreh
This is a follow-up of: fb35b7cedd48a47820b0c250677b7ec6ac78fdc1. * gnu/services/vpn.scm (wireguard-service-type): Add the wireguard package from the configuration to the profile. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-11-12services: vpn: Add wireguard-tools to profile-service-type.EuAndreh
* gnu/services/vpn.scm (wireguard-service-type): Include the "wireguard-tools" package as an extension to profile-service-type, so that users that enable the wireguard service can interact with it via the command-line without having to manually install wireguard-tools. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2022-10-20services: wireguard: Add more configuration fields.Mathieu Othacehe
* gnu/services/vpn.scm (<wireguard-configuration>)[pre-up, post-up, pre-down, post-down, table]: New fields. (wireguard-configuration-file): Take them into account. * doc/guix.texi (Wireguard): Update it.
2022-06-24services: configuration: Remove 'validate-configuration'.Ludovic Courtès
Now that configuration records use the 'sanitize' property for each field, 'validate-configuration' has become useless because it's impossible to construct an invalid configuration record. * gnu/services/configuration.scm (validate-configuration): Remove. * gnu/services/mail.scm (dovecot-service): Remove call. * gnu/services/vpn.scm (openvpn-client-service) (openvpn-server-service): Likewise. * doc/guix.texi (Complex Configurations): Remove documentation.
2022-06-22services: wireguard: Shepherd 'stop' method really stops.Ludovic Courtès
Until now the 'stop' method would return #t, which shepherd would interpret as "services could not be stopped". * gnu/services/vpn.scm (wireguard-shepherd-service): Have 'stop' return #f.
2022-06-15services: configuration: Use *unspecified* instead of 'disabled.Attila Lendvai
Use *unspecified* as a marker for field values that have not been set. Rationale: 'disabled may easily clash with user values for boolean fields, is confusing (i.e. its meaning is *not* boolean false, but unspecified) and it also passes silently through the symbol? predicate of a field of type symbol. * gnu/services/configuration.scm (configuration-missing-default-value): Renamed from configuration-no-default-value. (define-maybe-helper): Use *unspecified* instead of 'disabled, and make the default value optional. * gnu/home/services/desktop.scm (home-redshift-configuration): Change (maybe-xyz 'disabled) to maybe-xyz. * gnu/services/authentication.scm (nslcd-configuration): Likewise. * gnu/services/cgit.scm (repository-cgit-configuration): Likewise. * gnu/services/file-sharing.scm (serialize-maybe-string) (serialize-maybe-file-object): Use 'unspecified?' instead of (eq? val 'disabled). * gnu/services/messaging.scm (raw-content?): Likewise. (ssl-configuration): Change (maybe-xyz 'disabled) to maybe-xyz. (prosody-configuration): Likewise. * gnu/services/file-sharing.scm (transmission-daemon-configuration): Likewise. * gnu/services/messaging.scm (define-all-configurations): Use *unspecified* instead of 'disabled'. * gnu/services/networking.scm (opendht-configuration): Likewise. * gnu/services/pm.scm (tlp-configuration): Likewise. * gnu/services/telephony.scm (jami-account): Likewise. (jami-configuration): Likewise. * gnu/services/vpn.scm (openvpn-client-configuration): Likewise. * tests/services/configuration.scm ("maybe type, no default") ("maybe type, with default"): New tests. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2022-04-29services: Add missing 'description' fields.Ludovic Courtès
* gnu/services/databases.scm (postgresql-service-type)[description]: New field. (memcached-service-type)[description]: New field. (mysql-service-type)[description]: New field. (redis-service-type)[description]: New field. * gnu/services/desktop.scm (geoclue-service-type)[description]: New field. (udisks-service-type)[description]: New field. (elogind-service-type)[description]: New field. (account-service-type)[description]: New field. * gnu/services/kerberos.scm (krb5-service-type)[description]: New field. (pam-krb5-service-type)[description]: New field. * gnu/services/lirc.scm (lirc-service-type)[description]: New field. * gnu/services/mail.scm (dovecot-service-type)[description]: New field. (opensmtpd-service-type)[description]: New field. (mail-aliases-service-type)[description]: New field. (exim-service-type)[description]: New field. * gnu/services/monitoring.scm (zabbix-server-service-type)[description]: New field. (zabbix-agent-service-type)[description]: New field. * gnu/services/nfs.scm (rpcbind-service-type)[description]: New field. (pipefs-service-type)[description]: New field. (gss-service-type)[description]: New field. (idmap-service-type)[description]: New field. * gnu/services/spice.scm (spice-vdagent-service-type)[description]: New field. * gnu/services/sysctl.scm (sysctl-service-type)[description]: New field. * gnu/services/virtualization.scm (libvirt-service-type)[description]: New field. (virtlog-service-type)[description]: New field. * gnu/services/vpn.scm (openvpn-server-service-type)[description]: New field. (openvpn-client-service-type)[description]: New field. (wireguard-service-type)[description]: New field. * gnu/services/web.scm (httpd-service-type)[description]: New field. (fcgiwrap-service-type)[description]: New field. (agate-service-type)[description]: New field. [name]: Fix.
2022-03-03services: openvpn: Actually save log file.Cameron Chaparro
* gnu/services/vpn.scm (openvpn-shepherd-service): Pass #:log-file to 'make-forkexec-constructor'. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-12-22services: wireguard: Add DNS config field.Nathan Dehnel
* gnu/services/vpn.scm (wireguard-configuration)[dns]: New field. (wireguard-configuration-file): Honor it. * doc/guix.texi: Document it. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-11-30services: Accept <inferior-package>s in lieu of <package>s.Tobias Geerinckx-Rice
* gnu/services/authentication.scm (fprintd-configuration) (nslcd-configuration): Substitute file-like objects for package ones. * gnu/services/cgit.scm (cgit-configuration, opaque-cgit-configuration): Likewise. * gnu/services/cups.scm (package-list?, cups-configuration): Likewise. * gnu/services/dns.scm (verify-knot-configuration) (ddclient-configuration): Likewise. * gnu/services/docker.scm (docker-configuration): Likewise. * gnu/services/file-sharing.scm (transmission-daemon-configuration): Likewise. * gnu/services/getmail.scm (getmail-configuration): Likewise. * gnu/services/mail.scm (dovecot-configuration) (opaque-dovecot-configuration): Likewise. * gnu/services/messaging.scm (prosody-configuration) (opaque-prosody-configuration): Likewise. * gnu/services/monitoring.scm (zabbix-server-configuration) (zabbix-agent-configuration): Likewise. * gnu/services/networking.scm (opendht-configuration): Likewise. * gnu/services/pm.scm (tlp-configuration): Likewise. * gnu/services/telephony.scm (jami-configuration): Likewise. * gnu/services/virtualization.scm (libvirt-configuration) (qemu-guest-agent-configuration): Likewise. * gnu/services/vpn.scm (openvpn-client-configuration): Likewise.
2021-07-07services: Add bitmask-service-type.Raghav Gururajan
* gnu/services/vpn.scm (bitmask-service-type): New variable. * doc/guix.texi: Document it. Co-authored-by: jgart <jgart@dismail.de>
2021-06-25Remove unused module imports from (gnu services vpn).Tobias Geerinckx-Rice
* gnu/services/vpn.scm: Remove (gnu packages networking) and (guix utils) imports.
2021-06-25gnu: Add strongswan service.Domagoj Stolfa
* gnu/services/vpn.scm (<strongswan-configuration>): New record type. (charon-plugins, strongswan-configuration-file) (strongswan-shepherd-service, strongswan-service-type): New variables. * doc/guix.tex (VPN Services): Document them all.
2021-05-24gnu: services: Add missing wireguard related exports.Solene Rapenne
* gnu/services/vpn.scm: Export 'wireguard-peer-public-key' and 'wireguard-peer-keep-alive'. Signed-off-by: Guillaume Le Vaillant <glv@posteo.net>
2021-04-20services: wireguard: Add keep-alive support.Guillaume Le Vaillant
* gnu/services/vpn.scm (<wireguard-peer>): Add 'keep-alive' field. (wireguard-configuration-file): Use it. * doc/guix.texi (VPN Services): Document it.
2021-02-17services: wireguard: New service.Mathieu Othacehe
* gnu/services/vpn.scm (wireguard-peer, wireguard-configuration): New records. (wireguard-service-type): New variable. * doc/guix.texi (VPN Services): Document it.
2020-11-18gnu: vpn: Make ca, key and cert optional.Julien Lepiller
* gnu/services/vpn.scm (openvpn-client-configuration) (openvpn-server-configuration): Make ca, key an cert fields optional. * doc/guix.texi (VPN Services): Document the change.
2020-02-19gnu: services: Add openvpn options.Julien Lepiller
* gnu/services/vpn.scm (openvpn-client-configuration) (openvpn-server-configuration): Add fast-io? and auth-user-pass options.
2020-02-19gnu: services: Fix openvpn boolean fields.Julien Lepiller
* gnu/services/vpn.scm (serialize-boolean): Do not print #t to the file.
2017-10-10services: vpn: Fix default tls-auth configuration.Julien Lepiller
* gnu/services/vpn.scm (serialize-tls-auth): Fix serialization error when tls-auth is disabled.
2017-03-31doc: Fix typos.Eric Bavier
* doc/guix.texi (Build Systems)[ocaml-build-system]: Fix typo. (Log Rotation)[periodic-rotations]: ditto. (Database Services)[redis-service-type]: ditto. (OpenSMTPD Service)[opensmtpd-configuration]: ditto. (VPN Services)[OpenVPN]: ditto. (Power management Services)[tlp-configuration]: ditto. (Git daemon service)[git-daemon-service]: ditto. (Running GuixSD in a VM): ditto. * gnu/services/pm.scm (tlp-configuration)[runtime-pm-blacklist]: Fix typo. * gnu/services/vpn.scm (openvpn-client-configuration)[status]: ditto.
2017-03-24services: openvpn: Fix a typo which was corrected in generated doc.Mathieu Othacehe
* gnu/services/vpn.scm (define-split-configuration): Fix typo. Signed-off-by: Clément Lassieur <clement@lassieur.org>
2017-01-25services: Fix 'mkdir-p' in activation scripts.Clément Lassieur
* gnu/services/cups.scm (%cups-activation): Import (guix build utils). * gnu/services/mail.scm (opensmtpd-activation): Idem. * gnu/services/networking.scm (ntp-service-activation): Idem. * gnu/services/spice.scm (spice-vdagent-activation): Idem. * gnu/services/ssh.scm (openssh-activation): Idem. (dropbear-activation): Idem. * gnu/services/vpn.scm (%openvpn-activation): Idem. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2017-01-20services: Reindent vpn.scm.Ludovic Courtès
This fixes indentation of 'match' forms. * gnu/services/vpn.scm: Pass through 'indent-code.el'.
2017-01-15gnu: Add openvpn service.Julien Lepiller
* gnu/services/vpn.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * doc/guix.texi (VPN Services): New section.