···166166167167- Deprecated `xlibsWrapper` transitional package has been removed in favour of direct use of its constitutents: `xorg.libX11`, `freetype` and others.
168168169169+- The latest available version of Nextcloud is v26 (available as `pkgs.nextcloud26`) which uses PHP 8.2 as interpreter by default. The installation logic is as follows:
170170+ - If `system.stateVersion` is >=23.05, `pkgs.nextcloud26` will be installed by default.
171171+ - If `system.stateVersion` is >=22.11, `pkgs.nextcloud25` will be installed by default.
172172+ - Please note that an upgrade from v24 (or older) to v26 directly is not possible. Please upgrade to `nextcloud25` (or earlier) first. Nextcloud prohibits skipping major versions while upgrading. You can upgrade by declaring [`services.nextcloud.package = pkgs.nextcloud25;`](options.html#opt-services.nextcloud.package).
173173+ - It's recommended to use the latest version available (i.e. v26) and to specify that using `services.nextcloud.package`.
174174+169175- .NET 5.0 was removed due to being end-of-life, use a newer, supported .NET version - https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core
170176171177- The iputils package, which is installed by default, no longer provides the
···1919 else if true == v then "yes"
2020 else if false == v then "no"
2121 else if isList v then concatStringsSep "," v
2222- else throw "unsupported type ${typeOf v}: ${(lib.generators.toPretty {}) v}";
2222+ else throw "unsupported type ${builtins.typeOf v}: ${(lib.generators.toPretty {}) v}";
23232424 # dont use the "=" operator
2525 settingsFormat = (pkgs.formats.keyValue {
+107-79
nixos/modules/services/networking/yggdrasil.nix
···88 configFileProvided = cfg.configFile != null;
991010 format = pkgs.formats.json { };
1111-in {
1111+in
1212+{
1213 imports = [
1314 (mkRenamedOptionModule
1415 [ "services" "yggdrasil" "config" ]
···21222223 settings = mkOption {
2324 type = format.type;
2424- default = {};
2525+ default = { };
2526 example = {
2627 Peers = [
2728 "tcp://aa.bb.cc.dd:eeeee"
···45464647 If no keys are specified then ephemeral keys are generated
4748 and the Yggdrasil interface will have a random IPv6 address
4848- each time the service is started, this is the default.
4949+ each time the service is started. This is the default.
49505051 If both {option}`configFile` and {option}`settings`
5152 are supplied, they will be combined, with values from
···6162 default = null;
6263 example = "/run/keys/yggdrasil.conf";
6364 description = lib.mdDoc ''
6464- A file which contains JSON configuration for yggdrasil.
6565- See the {option}`settings` option for more information.
6565+ A file which contains JSON or HJSON configuration for yggdrasil. See
6666+ the {option}`settings` option for more information.
6767+6868+ Note: This file must not be larger than 1 MB because it is passed to
6969+ the yggdrasil process via systemd‘s LoadCredential mechanism. For
7070+ details, see <https://systemd.io/CREDENTIALS/> and `man 5
7171+ systemd.exec`.
6672 '';
6773 };
6874···7783 type = bool;
7884 default = false;
7985 description = lib.mdDoc ''
8080- Whether to open the UDP port used for multicast peer
8181- discovery. The NixOS firewall blocks link-local
8282- communication, so in order to make local peering work you
8383- will also need to set `LinkLocalTCPPort` in your
8484- yggdrasil configuration ({option}`settings` or
8585- {option}`configFile`) to a port number other than 0,
8686- and then add that port to
8787- {option}`networking.firewall.allowedTCPPorts`.
8686+ Whether to open the UDP port used for multicast peer discovery. The
8787+ NixOS firewall blocks link-local communication, so in order to make
8888+ incoming local peering work you will also need to configure
8989+ `MulticastInterfaces` in your Yggdrasil configuration
9090+ ({option}`settings` or {option}`configFile`). You will then have to
9191+ add the ports that you configure there to your firewall configuration
9292+ ({option}`networking.firewall.allowedTCPPorts` or
9393+ {option}`networking.firewall.interfaces.<name>.allowedTCPPorts`).
8894 '';
8995 };
90969197 denyDhcpcdInterfaces = mkOption {
9298 type = listOf str;
9393- default = [];
9999+ default = [ ];
94100 example = [ "tap*" ];
95101 description = lib.mdDoc ''
96102 Disable the DHCP client for any interface whose name matches
···118124 };
119125 };
120126121121- config = mkIf cfg.enable (let binYggdrasil = cfg.package + "/bin/yggdrasil";
122122- in {
123123- assertions = [{
124124- assertion = config.networking.enableIPv6;
125125- message = "networking.enableIPv6 must be true for yggdrasil to work";
126126- }];
127127+ config = mkIf cfg.enable (
128128+ let
129129+ binYggdrasil = "${cfg.package}/bin/yggdrasil";
130130+ binHjson = "${pkgs.hjson-go}/bin/hjson-cli";
131131+ in
132132+ {
133133+ assertions = [{
134134+ assertion = config.networking.enableIPv6;
135135+ message = "networking.enableIPv6 must be true for yggdrasil to work";
136136+ }];
127137128128- system.activationScripts.yggdrasil = mkIf cfg.persistentKeys ''
129129- if [ ! -e ${keysPath} ]
130130- then
131131- mkdir --mode=700 -p ${builtins.dirOf keysPath}
132132- ${binYggdrasil} -genconf -json \
133133- | ${pkgs.jq}/bin/jq \
134134- 'to_entries|map(select(.key|endswith("Key")))|from_entries' \
135135- > ${keysPath}
136136- fi
137137- '';
138138+ system.activationScripts.yggdrasil = mkIf cfg.persistentKeys ''
139139+ if [ ! -e ${keysPath} ]
140140+ then
141141+ mkdir --mode=700 -p ${builtins.dirOf keysPath}
142142+ ${binYggdrasil} -genconf -json \
143143+ | ${pkgs.jq}/bin/jq \
144144+ 'to_entries|map(select(.key|endswith("Key")))|from_entries' \
145145+ > ${keysPath}
146146+ fi
147147+ '';
138148139139- systemd.services.yggdrasil = {
140140- description = "Yggdrasil Network Service";
141141- after = [ "network-pre.target" ];
142142- wants = [ "network.target" ];
143143- before = [ "network.target" ];
144144- wantedBy = [ "multi-user.target" ];
149149+ systemd.services.yggdrasil = {
150150+ description = "Yggdrasil Network Service";
151151+ after = [ "network-pre.target" ];
152152+ wants = [ "network.target" ];
153153+ before = [ "network.target" ];
154154+ wantedBy = [ "multi-user.target" ];
145155146146- preStart =
147147- (if settingsProvided || configFileProvided || cfg.persistentKeys then
148148- "echo "
156156+ # This script first prepares the config file, then it starts Yggdrasil.
157157+ # The preparation could also be done in ExecStartPre/preStart but only
158158+ # systemd versions >= v252 support reading credentials in ExecStartPre. As
159159+ # of February 2023, systemd v252 is not yet in the stable branch of NixOS.
160160+ #
161161+ # This could be changed in the future once systemd version v252 has
162162+ # reached NixOS but it does not have to be. Config file preparation is
163163+ # fast enough, it does not need elevated privileges, and `set -euo
164164+ # pipefail` should make sure that the service is not started if the
165165+ # preparation fails. Therefore, it is not necessary to move the
166166+ # preparation to ExecStartPre.
167167+ script = ''
168168+ set -euo pipefail
149169150150- + (lib.optionalString settingsProvided
151151- "'${builtins.toJSON cfg.settings}'")
152152- + (lib.optionalString configFileProvided "$(cat ${cfg.configFile})")
153153- + (lib.optionalString cfg.persistentKeys "$(cat ${keysPath})")
154154- + " | ${pkgs.jq}/bin/jq -s add | ${binYggdrasil} -normaliseconf -useconf"
155155- else
156156- "${binYggdrasil} -genconf") + " > /run/yggdrasil/yggdrasil.conf";
170170+ # prepare config file
171171+ ${(if settingsProvided || configFileProvided || cfg.persistentKeys then
172172+ "echo "
173173+174174+ + (lib.optionalString settingsProvided
175175+ "'${builtins.toJSON cfg.settings}'")
176176+ + (lib.optionalString configFileProvided
177177+ "$(${binHjson} -c \"$CREDENTIALS_DIRECTORY/yggdrasil.conf\")")
178178+ + (lib.optionalString cfg.persistentKeys "$(cat ${keysPath})")
179179+ + " | ${pkgs.jq}/bin/jq -s add | ${binYggdrasil} -normaliseconf -useconf"
180180+ else
181181+ "${binYggdrasil} -genconf") + " > /run/yggdrasil/yggdrasil.conf"}
182182+183183+ # start yggdrasil
184184+ ${binYggdrasil} -useconffile /run/yggdrasil/yggdrasil.conf
185185+ '';
157186158158- serviceConfig = {
159159- ExecStart =
160160- "${binYggdrasil} -useconffile /run/yggdrasil/yggdrasil.conf";
161161- ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
162162- Restart = "always";
187187+ serviceConfig = {
188188+ ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
189189+ Restart = "always";
163190164164- DynamicUser = true;
165165- StateDirectory = "yggdrasil";
166166- RuntimeDirectory = "yggdrasil";
167167- RuntimeDirectoryMode = "0750";
168168- BindReadOnlyPaths = lib.optional configFileProvided cfg.configFile
169169- ++ lib.optional cfg.persistentKeys keysPath;
170170- ReadWritePaths = "/run/yggdrasil";
191191+ DynamicUser = true;
192192+ StateDirectory = "yggdrasil";
193193+ RuntimeDirectory = "yggdrasil";
194194+ RuntimeDirectoryMode = "0750";
195195+ BindReadOnlyPaths = lib.optional cfg.persistentKeys keysPath;
196196+ LoadCredential =
197197+ mkIf configFileProvided "yggdrasil.conf:${cfg.configFile}";
171198172172- AmbientCapabilities = "CAP_NET_ADMIN CAP_NET_BIND_SERVICE";
173173- CapabilityBoundingSet = "CAP_NET_ADMIN CAP_NET_BIND_SERVICE";
174174- MemoryDenyWriteExecute = true;
175175- ProtectControlGroups = true;
176176- ProtectHome = "tmpfs";
177177- ProtectKernelModules = true;
178178- ProtectKernelTunables = true;
179179- RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6 AF_NETLINK";
180180- RestrictNamespaces = true;
181181- RestrictRealtime = true;
182182- SystemCallArchitectures = "native";
183183- SystemCallFilter = [ "@system-service" "~@privileged @keyring" ];
184184- } // (if (cfg.group != null) then {
185185- Group = cfg.group;
186186- } else {});
187187- };
199199+ AmbientCapabilities = "CAP_NET_ADMIN CAP_NET_BIND_SERVICE";
200200+ CapabilityBoundingSet = "CAP_NET_ADMIN CAP_NET_BIND_SERVICE";
201201+ MemoryDenyWriteExecute = true;
202202+ ProtectControlGroups = true;
203203+ ProtectHome = "tmpfs";
204204+ ProtectKernelModules = true;
205205+ ProtectKernelTunables = true;
206206+ RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6 AF_NETLINK";
207207+ RestrictNamespaces = true;
208208+ RestrictRealtime = true;
209209+ SystemCallArchitectures = "native";
210210+ SystemCallFilter = [ "@system-service" "~@privileged @keyring" ];
211211+ } // (if (cfg.group != null) then {
212212+ Group = cfg.group;
213213+ } else { });
214214+ };
188215189189- networking.dhcpcd.denyInterfaces = cfg.denyDhcpcdInterfaces;
190190- networking.firewall.allowedUDPPorts = mkIf cfg.openMulticastPort [ 9001 ];
216216+ networking.dhcpcd.denyInterfaces = cfg.denyDhcpcdInterfaces;
217217+ networking.firewall.allowedUDPPorts = mkIf cfg.openMulticastPort [ 9001 ];
191218192192- # Make yggdrasilctl available on the command line.
193193- environment.systemPackages = [ cfg.package ];
194194- });
219219+ # Make yggdrasilctl available on the command line.
220220+ environment.systemPackages = [ cfg.package ];
221221+ }
222222+ );
195223 meta = {
196224 doc = ./yggdrasil.md;
197225 maintainers = with lib.maintainers; [ gazally ehmry ];
+1-1
nixos/modules/services/web-apps/nextcloud.md
···55[services.nextcloud](#opt-services.nextcloud.enable). A
66desktop client is packaged at `pkgs.nextcloud-client`.
7788-The current default by NixOS is `nextcloud25` which is also the latest
88+The current default by NixOS is `nextcloud26` which is also the latest
99major version available.
10101111## Basic usage {#module-services-nextcloud-basic-usage}
+11-39
nixos/modules/services/web-apps/nextcloud.nix
···204204 package = mkOption {
205205 type = types.package;
206206 description = lib.mdDoc "Which package to use for the Nextcloud instance.";
207207- relatedPackages = [ "nextcloud24" "nextcloud25" ];
207207+ relatedPackages = [ "nextcloud24" "nextcloud25" "nextcloud26" ];
208208 };
209209 phpPackage = mkOption {
210210 type = types.package;
···673673674674 config = mkIf cfg.enable (mkMerge [
675675 { warnings = let
676676- latest = 25;
676676+ latest = 26;
677677 upgradeWarning = major: nixos:
678678 ''
679679 A legacy Nextcloud install (from before NixOS ${nixos}) may be installed.
···688688 `services.nextcloud.package`.
689689 '';
690690691691- # FIXME(@Ma27) remove as soon as nextcloud properly supports
692692- # mariadb >=10.6.
693693- isUnsupportedMariadb =
694694- # All currently supported Nextcloud versions are affected (https://github.com/nextcloud/server/issues/25436).
695695- (versionOlder cfg.package.version "24")
696696- # This module uses mysql
697697- && (cfg.config.dbtype == "mysql")
698698- # MySQL is managed via NixOS
699699- && config.services.mysql.enable
700700- # We're using MariaDB
701701- && (getName config.services.mysql.package) == "mariadb-server"
702702- # MariaDB is at least 10.6 and thus not supported
703703- && (versionAtLeast (getVersion config.services.mysql.package) "10.6");
704704-705691 in (optional (cfg.poolConfig != null) ''
706692 Using config.services.nextcloud.poolConfig is deprecated and will become unsupported in a future release.
707693 Please migrate your configuration to config.services.nextcloud.poolSettings.
···709695 ++ (optional (versionOlder cfg.package.version "23") (upgradeWarning 22 "22.05"))
710696 ++ (optional (versionOlder cfg.package.version "24") (upgradeWarning 23 "22.05"))
711697 ++ (optional (versionOlder cfg.package.version "25") (upgradeWarning 24 "22.11"))
698698+ ++ (optional (versionOlder cfg.package.version "26") (upgradeWarning 25 "23.05"))
712699 ++ (optional cfg.enableBrokenCiphersForSSE ''
713700 You're using PHP's openssl extension built against OpenSSL 1.1 for Nextcloud.
714701 This is only necessary if you're using Nextcloud's server-side encryption.
···725712 See <https://docs.nextcloud.com/server/latest/admin_manual/configuration_files/encryption_configuration.html#disabling-encryption> on how to achieve this.
726713727714 For more context, here is the implementing pull request: https://github.com/NixOS/nixpkgs/pull/198470
728728- '')
729729- ++ (optional isUnsupportedMariadb ''
730730- You seem to be using MariaDB at an unsupported version (i.e. at least 10.6)!
731731- Please note that this isn't supported officially by Nextcloud. You can either
732732-733733- * Switch to `pkgs.mysql`
734734- * Downgrade MariaDB to at least 10.5
735735- * Work around Nextcloud's problems by specifying `innodb_read_only_compressed=0`
736736-737737- For further context, please read
738738- https://help.nextcloud.com/t/update-to-next-cloud-21-0-2-has-get-an-error/117028/15
739739- '');
715715+ '');
740716741717 services.nextcloud.package = with pkgs;
742718 mkDefault (
···747723 `pkgs.nextcloud`.
748724 ''
749725 else if versionOlder stateVersion "22.11" then nextcloud24
750750- else nextcloud25
726726+ else if versionOlder stateVersion "23.05" then nextcloud25
727727+ else nextcloud26
751728 );
752729753730 services.nextcloud.phpPackage =
754754- if versionOlder cfg.package.version "24" then pkgs.php80
755755- else pkgs.php81;
731731+ if versionOlder cfg.package.version "26" then pkgs.php81
732732+ else pkgs.php82;
756733 }
757734758735 { assertions = [
···980957 '';
981958 serviceConfig.Type = "oneshot";
982959 serviceConfig.User = "nextcloud";
960960+ # On Nextcloud ≥ 26, it is not necessary to patch the database files to prevent
961961+ # an automatic creation of the database user.
962962+ environment.NC_setup_create_db_user = lib.mkIf (nextcloudGreaterOrEqualThan "26") "false";
983963 };
984964 nextcloud-cron = {
985965 after = [ "nextcloud-setup.service" ];
···10311011 name = cfg.config.dbuser;
10321012 ensurePermissions = { "${cfg.config.dbname}.*" = "ALL PRIVILEGES"; };
10331013 }];
10341034- # FIXME(@Ma27) Nextcloud isn't compatible with mariadb 10.6,
10351035- # this is a workaround.
10361036- # See https://help.nextcloud.com/t/update-to-next-cloud-21-0-2-has-get-an-error/117028/22
10371037- settings = mkIf (versionOlder cfg.package.version "24") {
10381038- mysqld = {
10391039- innodb_read_only_compressed = 0;
10401040- };
10411041- };
10421014 initialScript = pkgs.writeText "mysql-init" ''
10431015 CREATE USER '${cfg.config.dbname}'@'localhost' IDENTIFIED BY '${builtins.readFile( cfg.config.dbpassFile )}';
10441016 CREATE DATABASE IF NOT EXISTS ${cfg.config.dbname};
+1094
nixos/modules/system/boot/networkd.nix
···303303304304 sectionTap = checkUnitConfig "Tap" tunChecks;
305305306306+ sectionL2TP = checkUnitConfig "L2TP" [
307307+ (assertOnlyFields [
308308+ "TunnelId"
309309+ "PeerTunnelId"
310310+ "Remote"
311311+ "Local"
312312+ "EncapsulationType"
313313+ "UDPSourcePort"
314314+ "UDPDestinationPort"
315315+ "UDPChecksum"
316316+ "UDP6ZeroChecksumTx"
317317+ "UDP6ZeroChecksumRx"
318318+ ])
319319+ (assertInt "TunnelId")
320320+ (assertRange "TunnelId" 1 4294967295)
321321+ (assertInt "PeerTunnelId")
322322+ (assertRange "PeerTunnelId" 1 4294967295)
323323+ (assertValueOneOf "EncapsulationType" [ "ip" "udp" ])
324324+ (assertPort "UDPSourcePort")
325325+ (assertPort "UDPDestinationPort")
326326+ (assertValueOneOf "UDPChecksum" boolValues)
327327+ (assertValueOneOf "UDP6ZeroChecksumTx" boolValues)
328328+ (assertValueOneOf "UDP6ZeroChecksumRx" boolValues)
329329+ ];
330330+331331+ sectionL2TPSession = checkUnitConfig "L2TPSession" [
332332+ (assertOnlyFields [
333333+ "Name"
334334+ "SessionId"
335335+ "PeerSessionId"
336336+ "Layer2SpecificHeader"
337337+ ])
338338+ (assertHasField "Name")
339339+ (assertHasField "SessionId")
340340+ (assertInt "SessionId")
341341+ (assertRange "SessionId" 1 4294967295)
342342+ (assertHasField "PeerSessionId")
343343+ (assertInt "PeerSessionId")
344344+ (assertRange "PeerSessionId" 1 4294967295)
345345+ (assertValueOneOf "Layer2SpecificHeader" [ "none" "default" ])
346346+ ];
347347+306348 # NOTE The PrivateKey directive is missing on purpose here, please
307349 # do not add it to this list. The nix store is world-readable let's
308350 # refrain ourselves from providing a footgun.
···918960 (assertMacAddress "MACAddress")
919961 ];
920962963963+ sectionBridge = checkUnitConfig "Bridge" [
964964+ (assertOnlyFields [
965965+ "UnicastFlood"
966966+ "MulticastFlood"
967967+ "MulticastToUnicast"
968968+ "NeighborSuppression"
969969+ "Learning"
970970+ "Hairpin"
971971+ "Isolated"
972972+ "UseBPDU"
973973+ "FastLeave"
974974+ "AllowPortToBeRoot"
975975+ "ProxyARP"
976976+ "ProxyARPWiFi"
977977+ "MulticastRouter"
978978+ "Cost"
979979+ "Priority"
980980+ ])
981981+ (assertValueOneOf "UnicastFlood" boolValues)
982982+ (assertValueOneOf "MulticastFlood" boolValues)
983983+ (assertValueOneOf "MulticastToUnicast" boolValues)
984984+ (assertValueOneOf "NeighborSuppression" boolValues)
985985+ (assertValueOneOf "Learning" boolValues)
986986+ (assertValueOneOf "Hairpin" boolValues)
987987+ (assertValueOneOf "Isolated" boolValues)
988988+ (assertValueOneOf "UseBPDU" boolValues)
989989+ (assertValueOneOf "FastLeave" boolValues)
990990+ (assertValueOneOf "AllowPortToBeRoot" boolValues)
991991+ (assertValueOneOf "ProxyARP" boolValues)
992992+ (assertValueOneOf "ProxyARPWiFi" boolValues)
993993+ (assertValueOneOf "MulticastRouter" [ "no" "query" "permanent" "temporary" ])
994994+ (assertInt "Cost")
995995+ (assertRange "Cost" 1 65535)
996996+ (assertInt "Priority")
997997+ (assertRange "Priority" 0 63)
998998+ ];
999999+10001000+ sectionBridgeFDB = checkUnitConfig "BridgeFDB" [
10011001+ (assertOnlyFields [
10021002+ "MACAddress"
10031003+ "Destination"
10041004+ "VLANId"
10051005+ "VNI"
10061006+ "AssociatedWith"
10071007+ "OutgoingInterface"
10081008+ ])
10091009+ (assertHasField "MACAddress")
10101010+ (assertInt "VLANId")
10111011+ (assertRange "VLANId" 0 4094)
10121012+ (assertInt "VNI")
10131013+ (assertRange "VNI" 1 16777215)
10141014+ (assertValueOneOf "AssociatedWith" [ "use" "self" "master" "router" ])
10151015+ ];
10161016+10171017+ sectionBridgeMDB = checkUnitConfig "BridgeMDB" [
10181018+ (assertOnlyFields [
10191019+ "MulticastGroupAddress"
10201020+ "VLANId"
10211021+ ])
10221022+ (assertHasField "MulticastGroupAddress")
10231023+ (assertInt "VLANId")
10241024+ (assertRange "VLANId" 0 4094)
10251025+ ];
10261026+10271027+ sectionLLDP = checkUnitConfig "LLDP" [
10281028+ (assertOnlyFields [
10291029+ "MUDURL"
10301030+ ])
10311031+ ];
10321032+10331033+ sectionCAN = checkUnitConfig "CAN" [
10341034+ (assertOnlyFields [
10351035+ "BitRate"
10361036+ "SamplePoint"
10371037+ "TimeQuantaNSec"
10381038+ "PropagationSegment"
10391039+ "PhaseBufferSegment1"
10401040+ "PhaseBufferSegment2"
10411041+ "SyncJumpWidth"
10421042+ "DataBitRate"
10431043+ "DataSamplePoint"
10441044+ "DataTimeQuantaNSec"
10451045+ "DataPropagationSegment"
10461046+ "DataPhaseBufferSegment1"
10471047+ "DataPhaseBufferSegment2"
10481048+ "DataSyncJumpWidth"
10491049+ "FDMode"
10501050+ "FDNonISO"
10511051+ "RestartSec"
10521052+ "Termination"
10531053+ "TripleSampling"
10541054+ "BusErrorReporting"
10551055+ "ListenOnly"
10561056+ "Loopback"
10571057+ "OneShot"
10581058+ "PresumeAck"
10591059+ "ClassicDataLengthCode"
10601060+ ])
10611061+ (assertInt "TimeQuantaNSec" )
10621062+ (assertRange "TimeQuantaNSec" 0 4294967295 )
10631063+ (assertInt "PropagationSegment" )
10641064+ (assertRange "PropagationSegment" 0 4294967295 )
10651065+ (assertInt "PhaseBufferSegment1" )
10661066+ (assertRange "PhaseBufferSegment1" 0 4294967295 )
10671067+ (assertInt "PhaseBufferSegment2" )
10681068+ (assertRange "PhaseBufferSegment2" 0 4294967295 )
10691069+ (assertInt "SyncJumpWidth" )
10701070+ (assertRange "SyncJumpWidth" 0 4294967295 )
10711071+ (assertInt "DataTimeQuantaNSec" )
10721072+ (assertRange "DataTimeQuantaNSec" 0 4294967295 )
10731073+ (assertInt "DataPropagationSegment" )
10741074+ (assertRange "DataPropagationSegment" 0 4294967295 )
10751075+ (assertInt "DataPhaseBufferSegment1" )
10761076+ (assertRange "DataPhaseBufferSegment1" 0 4294967295 )
10771077+ (assertInt "DataPhaseBufferSegment2" )
10781078+ (assertRange "DataPhaseBufferSegment2" 0 4294967295 )
10791079+ (assertInt "DataSyncJumpWidth" )
10801080+ (assertRange "DataSyncJumpWidth" 0 4294967295 )
10811081+ (assertValueOneOf "FDMode" boolValues)
10821082+ (assertValueOneOf "FDNonISO" boolValues)
10831083+ (assertValueOneOf "TripleSampling" boolValues)
10841084+ (assertValueOneOf "BusErrorReporting" boolValues)
10851085+ (assertValueOneOf "ListenOnly" boolValues)
10861086+ (assertValueOneOf "Loopback" boolValues)
10871087+ (assertValueOneOf "OneShot" boolValues)
10881088+ (assertValueOneOf "PresumeAck" boolValues)
10891089+ (assertValueOneOf "ClassicDataLengthCode" boolValues)
10901090+ ];
10911091+10921092+ sectionIPoIB = checkUnitConfig "IPoIB" [
10931093+ (assertOnlyFields [
10941094+ "Mode"
10951095+ "IgnoreUserspaceMulticastGroup"
10961096+ ])
10971097+ (assertValueOneOf "Mode" [ "datagram" "connected" ])
10981098+ (assertValueOneOf "IgnoreUserspaceMulticastGroup" boolValues)
10991099+ ];
11001100+11011101+ sectionQDisc = checkUnitConfig "QDisc" [
11021102+ (assertOnlyFields [
11031103+ "Parent"
11041104+ "Handle"
11051105+ ])
11061106+ (assertValueOneOf "Parent" [ "clsact" "ingress" ])
11071107+ ];
11081108+11091109+ sectionNetworkEmulator = checkUnitConfig "NetworkEmulator" [
11101110+ (assertOnlyFields [
11111111+ "Parent"
11121112+ "Handle"
11131113+ "DelaySec"
11141114+ "DelayJitterSec"
11151115+ "PacketLimit"
11161116+ "LossRate"
11171117+ "DuplicateRate"
11181118+ ])
11191119+ (assertInt "PacketLimit")
11201120+ (assertRange "PacketLimit" 0 4294967294)
11211121+ ];
11221122+11231123+ sectionTokenBucketFilter = checkUnitConfig "TokenBucketFilter" [
11241124+ (assertOnlyFields [
11251125+ "Parent"
11261126+ "Handle"
11271127+ "LatencySec"
11281128+ "LimitBytes"
11291129+ "BurstBytes"
11301130+ "Rate"
11311131+ "MPUBytes"
11321132+ "PeakRate"
11331133+ "MTUBytes"
11341134+ ])
11351135+ ];
11361136+11371137+ sectionPIE = checkUnitConfig "PIE" [
11381138+ (assertOnlyFields [
11391139+ "Parent"
11401140+ "Handle"
11411141+ "PacketLimit"
11421142+ ])
11431143+ (assertInt "PacketLimit")
11441144+ (assertRange "PacketLimit" 1 4294967294)
11451145+ ];
11461146+11471147+ sectionFlowQueuePIE = checkUnitConfig "FlowQueuePIE" [
11481148+ (assertOnlyFields [
11491149+ "Parent"
11501150+ "Handle"
11511151+ "PacketLimit"
11521152+ ])
11531153+ (assertInt "PacketLimit")
11541154+ (assertRange "PacketLimit" 1 4294967294)
11551155+ ];
11561156+11571157+ sectionStochasticFairBlue = checkUnitConfig "StochasticFairBlue" [
11581158+ (assertOnlyFields [
11591159+ "Parent"
11601160+ "Handle"
11611161+ "PacketLimit"
11621162+ ])
11631163+ (assertInt "PacketLimit")
11641164+ (assertRange "PacketLimit" 1 4294967294)
11651165+ ];
11661166+11671167+ sectionStochasticFairnessQueueing = checkUnitConfig "StochasticFairnessQueueing" [
11681168+ (assertOnlyFields [
11691169+ "Parent"
11701170+ "Handle"
11711171+ "PerturbPeriodSec"
11721172+ ])
11731173+ (assertInt "PerturbPeriodSec")
11741174+ ];
11751175+11761176+ sectionBFIFO = checkUnitConfig "BFIFO" [
11771177+ (assertOnlyFields [
11781178+ "Parent"
11791179+ "Handle"
11801180+ "LimitBytes"
11811181+ ])
11821182+ ];
11831183+11841184+ sectionPFIFO = checkUnitConfig "PFIFO" [
11851185+ (assertOnlyFields [
11861186+ "Parent"
11871187+ "Handle"
11881188+ "PacketLimit"
11891189+ ])
11901190+ (assertInt "PacketLimit")
11911191+ (assertRange "PacketLimit" 0 4294967294)
11921192+ ];
11931193+11941194+ sectionPFIFOHeadDrop = checkUnitConfig "PFIFOHeadDrop" [
11951195+ (assertOnlyFields [
11961196+ "Parent"
11971197+ "Handle"
11981198+ "PacketLimit"
11991199+ ])
12001200+ (assertInt "PacketLimit")
12011201+ (assertRange "PacketLimit" 0 4294967294)
12021202+ ];
12031203+12041204+ sectionPFIFOFast = checkUnitConfig "PFIFOFast" [
12051205+ (assertOnlyFields [
12061206+ "Parent"
12071207+ "Handle"
12081208+ ])
12091209+ ];
12101210+12111211+ sectionCAKE = checkUnitConfig "CAKE" [
12121212+ (assertOnlyFields [
12131213+ "Parent"
12141214+ "Handle"
12151215+ "Bandwidth"
12161216+ "AutoRateIngress"
12171217+ "OverheadBytes"
12181218+ "MPUBytes"
12191219+ "CompensationMode"
12201220+ "UseRawPacketSize"
12211221+ "FlowIsolationMode"
12221222+ "NAT"
12231223+ "PriorityQueueingPreset"
12241224+ "FirewallMark"
12251225+ "Wash"
12261226+ "SplitGSO"
12271227+ ])
12281228+ (assertValueOneOf "AutoRateIngress" boolValues)
12291229+ (assertInt "OverheadBytes")
12301230+ (assertRange "OverheadBytes" (-64) 256)
12311231+ (assertInt "MPUBytes")
12321232+ (assertRange "MPUBytes" 1 256)
12331233+ (assertValueOneOf "CompensationMode" [ "none" "atm" "ptm" ])
12341234+ (assertValueOneOf "UseRawPacketSize" boolValues)
12351235+ (assertValueOneOf "FlowIsolationMode"
12361236+ [
12371237+ "none"
12381238+ "src-host"
12391239+ "dst-host"
12401240+ "hosts"
12411241+ "flows"
12421242+ "dual-src-host"
12431243+ "dual-dst-host"
12441244+ "triple"
12451245+ ])
12461246+ (assertValueOneOf "NAT" boolValues)
12471247+ (assertValueOneOf "PriorityQueueingPreset"
12481248+ [
12491249+ "besteffort"
12501250+ "precedence"
12511251+ "diffserv8"
12521252+ "diffserv4"
12531253+ "diffserv3"
12541254+ ])
12551255+ (assertInt "FirewallMark")
12561256+ (assertRange "FirewallMark" 1 4294967295)
12571257+ (assertValueOneOf "Wash" boolValues)
12581258+ (assertValueOneOf "SplitGSO" boolValues)
12591259+ ];
12601260+12611261+ sectionControlledDelay = checkUnitConfig "ControlledDelay" [
12621262+ (assertOnlyFields [
12631263+ "Parent"
12641264+ "Handle"
12651265+ "PacketLimit"
12661266+ "TargetSec"
12671267+ "IntervalSec"
12681268+ "ECN"
12691269+ "CEThresholdSec"
12701270+ ])
12711271+ (assertValueOneOf "ECN" boolValues)
12721272+ ];
12731273+12741274+ sectionDeficitRoundRobinScheduler = checkUnitConfig "DeficitRoundRobinScheduler" [
12751275+ (assertOnlyFields [
12761276+ "Parent"
12771277+ "Handle"
12781278+ ])
12791279+ ];
12801280+12811281+ sectionDeficitRoundRobinSchedulerClass = checkUnitConfig "DeficitRoundRobinSchedulerClass" [
12821282+ (assertOnlyFields [
12831283+ "Parent"
12841284+ "Handle"
12851285+ "QuantumBytes"
12861286+ ])
12871287+ ];
12881288+12891289+ sectionEnhancedTransmissionSelection = checkUnitConfig "EnhancedTransmissionSelection" [
12901290+ (assertOnlyFields [
12911291+ "Parent"
12921292+ "Handle"
12931293+ "Bands"
12941294+ "StrictBands"
12951295+ "QuantumBytes"
12961296+ "PriorityMap"
12971297+ ])
12981298+ (assertInt "Bands")
12991299+ (assertRange "Bands" 1 16)
13001300+ (assertInt "StrictBands")
13011301+ (assertRange "StrictBands" 1 16)
13021302+ ];
13031303+13041304+ sectionGenericRandomEarlyDetection = checkUnitConfig "GenericRandomEarlyDetection" [
13051305+ (assertOnlyFields [
13061306+ "Parent"
13071307+ "Handle"
13081308+ "VirtualQueues"
13091309+ "DefaultVirtualQueue"
13101310+ "GenericRIO"
13111311+ ])
13121312+ (assertInt "VirtualQueues")
13131313+ (assertRange "VirtualQueues" 1 16)
13141314+ (assertInt "DefaultVirtualQueue")
13151315+ (assertRange "DefaultVirtualQueue" 1 16)
13161316+ (assertValueOneOf "GenericRIO" boolValues)
13171317+ ];
13181318+13191319+ sectionFairQueueingControlledDelay = checkUnitConfig "FairQueueingControlledDelay" [
13201320+ (assertOnlyFields [
13211321+ "Parent"
13221322+ "Handle"
13231323+ "PacketLimit"
13241324+ "MemoryLimitBytes"
13251325+ "Flows"
13261326+ "TargetSec"
13271327+ "IntervalSec"
13281328+ "QuantumBytes"
13291329+ "ECN"
13301330+ "CEThresholdSec"
13311331+ ])
13321332+ (assertInt "PacketLimit")
13331333+ (assertInt "Flows")
13341334+ (assertValueOneOf "ECN" boolValues)
13351335+ ];
13361336+13371337+ sectionFairQueueing = checkUnitConfig "FairQueueing" [
13381338+ (assertOnlyFields [
13391339+ "Parent"
13401340+ "Handle"
13411341+ "PacketLimit"
13421342+ "FlowLimit"
13431343+ "QuantumBytes"
13441344+ "InitualQuantumBytes"
13451345+ "MaximumRate"
13461346+ "Buckets"
13471347+ "OrphanMask"
13481348+ "Pacing"
13491349+ "CEThresholdSec"
13501350+ ])
13511351+ (assertInt "PacketLimit")
13521352+ (assertInt "FlowLimit")
13531353+ (assertInt "OrphanMask")
13541354+ (assertValueOneOf "Pacing" boolValues)
13551355+ ];
13561356+13571357+ sectionTrivialLinkEqualizer = checkUnitConfig "TrivialLinkEqualizer" [
13581358+ (assertOnlyFields [
13591359+ "Parent"
13601360+ "Handle"
13611361+ "Id"
13621362+ ])
13631363+ ];
13641364+13651365+ sectionHierarchyTokenBucket = checkUnitConfig "HierarchyTokenBucket" [
13661366+ (assertOnlyFields [
13671367+ "Parent"
13681368+ "Handle"
13691369+ "DefaultClass"
13701370+ "RateToQuantum"
13711371+ ])
13721372+ (assertInt "RateToQuantum")
13731373+ ];
13741374+13751375+ sectionHierarchyTokenBucketClass = checkUnitConfig "HierarchyTokenBucketClass" [
13761376+ (assertOnlyFields [
13771377+ "Parent"
13781378+ "ClassId"
13791379+ "Priority"
13801380+ "QuantumBytes"
13811381+ "MTUBytes"
13821382+ "OverheadBytes"
13831383+ "Rate"
13841384+ "CeilRate"
13851385+ "BufferBytes"
13861386+ "CeilBufferBytes"
13871387+ ])
13881388+ ];
13891389+13901390+ sectionHeavyHitterFilter = checkUnitConfig "HeavyHitterFilter" [
13911391+ (assertOnlyFields [
13921392+ "Parent"
13931393+ "Handle"
13941394+ "PacketLimit"
13951395+ ])
13961396+ (assertInt "PacketLimit")
13971397+ (assertRange "PacketLimit" 0 4294967294)
13981398+ ];
13991399+14001400+ sectionQuickFairQueueing = checkUnitConfig "QuickFairQueueing" [
14011401+ (assertOnlyFields [
14021402+ "Parent"
14031403+ "Handle"
14041404+ ])
14051405+ ];
14061406+14071407+ sectionQuickFairQueueingClass = checkUnitConfig "QuickFairQueueingClass" [
14081408+ (assertOnlyFields [
14091409+ "Parent"
14101410+ "ClassId"
14111411+ "Weight"
14121412+ "MaxPacketBytes"
14131413+ ])
14141414+ (assertInt "Weight")
14151415+ (assertRange "Weight" 1 1023)
14161416+ ];
14171417+14181418+ sectionBridgeVLAN = checkUnitConfig "BridgeVLAN" [
14191419+ (assertOnlyFields [
14201420+ "VLAN"
14211421+ "EgressUntagged"
14221422+ "PVID"
14231423+ ])
14241424+ (assertInt "PVID")
14251425+ (assertRange "PVID" 0 4094)
14261426+ ];
9211427 };
9221428 };
9231429···1012151810131519 };
1014152015211521+15221522+ l2tpSessionOptions = {
15231523+ options = {
15241524+ l2tpSessionConfig = mkOption {
15251525+ default = {};
15261526+ type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionL2TPSession;
15271527+ description = lib.mdDoc ''
15281528+ Each attribute in this set specifies an option in the
15291529+ `[L2TPSession]` section of the unit. See
15301530+ {manpage}`systemd.netdev(5)` for details.
15311531+ '';
15321532+ };
15331533+ };
15341534+ };
15351535+10151536 wireguardPeerOptions = {
10161537 options = {
10171538 wireguardPeerConfig = mkOption {
···11251646 '';
11261647 };
1127164816491649+ l2tpConfig = mkOption {
16501650+ default = {};
16511651+ example = {
16521652+ TunnelId = 10;
16531653+ PeerTunnelId = 12;
16541654+ Local = "static";
16551655+ Remote = "192.168.30.101";
16561656+ EncapsulationType = "ip";
16571657+ };
16581658+ type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionL2TP;
16591659+ description = lib.mdDoc ''
16601660+ Each attribute in this set specifies an option in the
16611661+ `[L2TP]` section of the unit. See
16621662+ {manpage}`systemd.netdev(5)` for details.
16631663+ '';
16641664+ };
16651665+16661666+ l2tpSessions = mkOption {
16671667+ default = [];
16681668+ example = [ { l2tpSessionConfig={
16691669+ SessionId = 25;
16701670+ PeerSessionId = 26;
16711671+ Name = "l2tp-sess";
16721672+ };}];
16731673+ type = with types; listOf (submodule l2tpSessionOptions);
16741674+ description = lib.mdDoc ''
16751675+ Each item in this array specifies an option in the
16761676+ `[L2TPSession]` section of the unit. See
16771677+ {manpage}`systemd.netdev(5)` for details.
16781678+ '';
16791679+ };
16801680+11281681 wireguardConfig = mkOption {
11291682 default = {};
11301683 example = {
···13061859 };
13071860 };
1308186118621862+ bridgeFDBOptions = {
18631863+ options = {
18641864+ bridgeFDBConfig = mkOption {
18651865+ default = {};
18661866+ example = { MACAddress = "65:43:4a:5b:d8:5f"; Destination = "192.168.1.42"; VNI = 20; };
18671867+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionBridgeFDB;
18681868+ description = lib.mdDoc ''
18691869+ Each attribute in this set specifies an option in the
18701870+ `[BridgeFDB]` section of the unit. See
18711871+ {manpage}`systemd.network(5)` for details.
18721872+ '';
18731873+ };
18741874+ };
18751875+ };
18761876+18771877+ bridgeMDBOptions = {
18781878+ options = {
18791879+ bridgeMDBConfig = mkOption {
18801880+ default = {};
18811881+ example = { MulticastGroupAddress = "ff02::1:2:3:4"; VLANId = 10; };
18821882+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionBridgeMDB;
18831883+ description = lib.mdDoc ''
18841884+ Each attribute in this set specifies an option in the
18851885+ `[BridgeMDB]` section of the unit. See
18861886+ {manpage}`systemd.network(5)` for details.
18871887+ '';
18881888+ };
18891889+ };
18901890+ };
18911891+18921892+ bridgeVLANOptions = {
18931893+ options = {
18941894+ bridgeMDBConfig = mkOption {
18951895+ default = {};
18961896+ example = { VLAN = 20; };
18971897+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionBridgeVLAN;
18981898+ description = lib.mdDoc ''
18991899+ Each attribute in this set specifies an option in the
19001900+ `[BridgeVLAN]` section of the unit. See
19011901+ {manpage}`systemd.network(5)` for details.
19021902+ '';
19031903+ };
19041904+ };
19051905+ };
19061906+13091907 networkOptions = commonNetworkOptions // {
1310190813111909 linkConfig = mkOption {
···14452043 '';
14462044 };
1447204520462046+ bridgeConfig = mkOption {
20472047+ default = {};
20482048+ example = { MulticastFlood = false; Cost = 20; };
20492049+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionBridge;
20502050+ description = lib.mdDoc ''
20512051+ Each attribute in this set specifies an option in the
20522052+ `[Bridge]` section of the unit. See
20532053+ {manpage}`systemd.network(5)` for details.
20542054+ '';
20552055+ };
20562056+20572057+ bridgeFDBs = mkOption {
20582058+ default = [];
20592059+ example = [ { bridgeFDBConfig = { MACAddress = "90:e2:ba:43:fc:71"; Destination = "192.168.100.4"; VNI = 3600; }; } ];
20602060+ type = with types; listOf (submodule bridgeFDBOptions);
20612061+ description = lib.mdDoc ''
20622062+ A list of BridgeFDB sections to be added to the unit. See
20632063+ {manpage}`systemd.network(5)` for details.
20642064+ '';
20652065+ };
20662066+20672067+ bridgeMDBs = mkOption {
20682068+ default = [];
20692069+ example = [ { bridgeMDBConfig = { MulticastGroupAddress = "ff02::1:2:3:4"; VLANId = 10; } ; } ];
20702070+ type = with types; listOf (submodule bridgeMDBOptions);
20712071+ description = lib.mdDoc ''
20722072+ A list of BridgeMDB sections to be added to the unit. See
20732073+ {manpage}`systemd.network(5)` for details.
20742074+ '';
20752075+ };
20762076+20772077+ lldpConfig = mkOption {
20782078+ default = {};
20792079+ example = { MUDURL = "https://things.example.org/product_abc123/v5"; };
20802080+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionLLDP;
20812081+ description = lib.mdDoc ''
20822082+ Each attribute in this set specifies an option in the
20832083+ `[LLDP]` section of the unit. See
20842084+ {manpage}`systemd.network(5)` for details.
20852085+ '';
20862086+ };
20872087+20882088+ canConfig = mkOption {
20892089+ default = {};
20902090+ example = { };
20912091+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionCAN;
20922092+ description = lib.mdDoc ''
20932093+ Each attribute in this set specifies an option in the
20942094+ `[CAN]` section of the unit. See
20952095+ {manpage}`systemd.network(5)` for details.
20962096+ '';
20972097+ };
20982098+20992099+ ipoIBConfig = mkOption {
21002100+ default = {};
21012101+ example = { };
21022102+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionIPoIB;
21032103+ description = lib.mdDoc ''
21042104+ Each attribute in this set specifies an option in the
21052105+ `[IPoIB]` section of the unit. See
21062106+ {manpage}`systemd.network(5)` for details.
21072107+ '';
21082108+ };
21092109+21102110+ qdiscConfig = mkOption {
21112111+ default = {};
21122112+ example = { Parent = "ingress"; };
21132113+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionQDisc;
21142114+ description = lib.mdDoc ''
21152115+ Each attribute in this set specifies an option in the
21162116+ `[QDisc]` section of the unit. See
21172117+ {manpage}`systemd.network(5)` for details.
21182118+ '';
21192119+ };
21202120+21212121+ networkEmulatorConfig = mkOption {
21222122+ default = {};
21232123+ example = { Parent = "ingress"; DelaySec = "20msec"; };
21242124+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionNetworkEmulator;
21252125+ description = lib.mdDoc ''
21262126+ Each attribute in this set specifies an option in the
21272127+ `[NetworkEmulator]` section of the unit. See
21282128+ {manpage}`systemd.network(5)` for details.
21292129+ '';
21302130+ };
21312131+21322132+ tokenBucketFilterConfig = mkOption {
21332133+ default = {};
21342134+ example = { Parent = "ingress"; Rate = "100k"; };
21352135+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionTokenBucketFilter;
21362136+ description = lib.mdDoc ''
21372137+ Each attribute in this set specifies an option in the
21382138+ `[TokenBucketFilter]` section of the unit. See
21392139+ {manpage}`systemd.network(5)` for details.
21402140+ '';
21412141+ };
21422142+21432143+ pieConfig = mkOption {
21442144+ default = {};
21452145+ example = { Parent = "ingress"; PacketLimit = "3847"; };
21462146+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionPIE;
21472147+ description = lib.mdDoc ''
21482148+ Each attribute in this set specifies an option in the
21492149+ `[PIE]` section of the unit. See
21502150+ {manpage}`systemd.network(5)` for details.
21512151+ '';
21522152+ };
21532153+21542154+ flowQueuePIEConfig = mkOption {
21552155+ default = {};
21562156+ example = { Parent = "ingress"; PacketLimit = "3847"; };
21572157+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionFlowQueuePIE;
21582158+ description = lib.mdDoc ''
21592159+ Each attribute in this set specifies an option in the
21602160+ `[FlowQueuePIE]` section of the unit. See
21612161+ {manpage}`systemd.network(5)` for details.
21622162+ '';
21632163+ };
21642164+21652165+ stochasticFairBlueConfig = mkOption {
21662166+ default = {};
21672167+ example = { Parent = "ingress"; PacketLimit = "3847"; };
21682168+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionStochasticFairBlue;
21692169+ description = lib.mdDoc ''
21702170+ Each attribute in this set specifies an option in the
21712171+ `[StochasticFairBlue]` section of the unit. See
21722172+ {manpage}`systemd.network(5)` for details.
21732173+ '';
21742174+ };
21752175+21762176+ stochasticFairnessQueueingConfig = mkOption {
21772177+ default = {};
21782178+ example = { Parent = "ingress"; PerturbPeriodSec = "30"; };
21792179+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionStochasticFairnessQueueing;
21802180+ description = lib.mdDoc ''
21812181+ Each attribute in this set specifies an option in the
21822182+ `[StochasticFairnessQueueing]` section of the unit. See
21832183+ {manpage}`systemd.network(5)` for details.
21842184+ '';
21852185+ };
21862186+21872187+ bfifoConfig = mkOption {
21882188+ default = {};
21892189+ example = { Parent = "ingress"; LimitBytes = "20K"; };
21902190+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionBFIFO;
21912191+ description = lib.mdDoc ''
21922192+ Each attribute in this set specifies an option in the
21932193+ `[BFIFO]` section of the unit. See
21942194+ {manpage}`systemd.network(5)` for details.
21952195+ '';
21962196+ };
21972197+21982198+ pfifoConfig = mkOption {
21992199+ default = {};
22002200+ example = { Parent = "ingress"; PacketLimit = "300"; };
22012201+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionPFIFO;
22022202+ description = lib.mdDoc ''
22032203+ Each attribute in this set specifies an option in the
22042204+ `[PFIFO]` section of the unit. See
22052205+ {manpage}`systemd.network(5)` for details.
22062206+ '';
22072207+ };
22082208+22092209+ pfifoHeadDropConfig = mkOption {
22102210+ default = {};
22112211+ example = { Parent = "ingress"; PacketLimit = "300"; };
22122212+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionPFIFOHeadDrop;
22132213+ description = lib.mdDoc ''
22142214+ Each attribute in this set specifies an option in the
22152215+ `[PFIFOHeadDrop]` section of the unit. See
22162216+ {manpage}`systemd.network(5)` for details.
22172217+ '';
22182218+ };
22192219+22202220+ pfifoFastConfig = mkOption {
22212221+ default = {};
22222222+ example = { Parent = "ingress"; };
22232223+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionPFIFOFast;
22242224+ description = lib.mdDoc ''
22252225+ Each attribute in this set specifies an option in the
22262226+ `[PFIFOFast]` section of the unit. See
22272227+ {manpage}`systemd.network(5)` for details.
22282228+ '';
22292229+ };
22302230+22312231+ cakeConfig = mkOption {
22322232+ default = {};
22332233+ example = { Bandwidth = "40M"; OverheadBytes = 8; CompensationMode = "ptm"; };
22342234+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionCAKE;
22352235+ description = lib.mdDoc ''
22362236+ Each attribute in this set specifies an option in the
22372237+ `[CAKE]` section of the unit. See
22382238+ {manpage}`systemd.network(5)` for details.
22392239+ '';
22402240+ };
22412241+22422242+ controlledDelayConfig = mkOption {
22432243+ default = {};
22442244+ example = { Parent = "ingress"; TargetSec = "20msec"; };
22452245+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionControlledDelay;
22462246+ description = lib.mdDoc ''
22472247+ Each attribute in this set specifies an option in the
22482248+ `[ControlledDelay]` section of the unit. See
22492249+ {manpage}`systemd.network(5)` for details.
22502250+ '';
22512251+ };
22522252+22532253+ deficitRoundRobinSchedulerConfig = mkOption {
22542254+ default = {};
22552255+ example = { Parent = "root"; };
22562256+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionDeficitRoundRobinScheduler;
22572257+ description = lib.mdDoc ''
22582258+ Each attribute in this set specifies an option in the
22592259+ `[DeficitRoundRobinScheduler]` section of the unit. See
22602260+ {manpage}`systemd.network(5)` for details.
22612261+ '';
22622262+ };
22632263+22642264+ deficitRoundRobinSchedulerClassConfig = mkOption {
22652265+ default = {};
22662266+ example = { Parent = "root"; QuantumBytes = "300k"; };
22672267+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionDeficitRoundRobinSchedulerClass;
22682268+ description = lib.mdDoc ''
22692269+ Each attribute in this set specifies an option in the
22702270+ `[DeficitRoundRobinSchedulerClass]` section of the unit. See
22712271+ {manpage}`systemd.network(5)` for details.
22722272+ '';
22732273+ };
22742274+22752275+ enhancedTransmissionSelectionConfig = mkOption {
22762276+ default = {};
22772277+ example = { Parent = "root"; QuantumBytes = "300k"; Bands = 3; PriorityMap = "100 200 300"; };
22782278+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionEnhancedTransmissionSelection;
22792279+ description = lib.mdDoc ''
22802280+ Each attribute in this set specifies an option in the
22812281+ `[EnhancedTransmissionSelection]` section of the unit. See
22822282+ {manpage}`systemd.network(5)` for details.
22832283+ '';
22842284+ };
22852285+22862286+ genericRandomEarlyDetectionConfig = mkOption {
22872287+ default = {};
22882288+ example = { Parent = "root"; VirtualQueues = 5; DefaultVirtualQueue = 3; };
22892289+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionGenericRandomEarlyDetection;
22902290+ description = lib.mdDoc ''
22912291+ Each attribute in this set specifies an option in the
22922292+ `[GenericRandomEarlyDetection]` section of the unit. See
22932293+ {manpage}`systemd.network(5)` for details.
22942294+ '';
22952295+ };
22962296+22972297+ fairQueueingControlledDelayConfig = mkOption {
22982298+ default = {};
22992299+ example = { Parent = "root"; Flows = 5; };
23002300+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionFairQueueingControlledDelay;
23012301+ description = lib.mdDoc ''
23022302+ Each attribute in this set specifies an option in the
23032303+ `[FairQueueingControlledDelay]` section of the unit. See
23042304+ {manpage}`systemd.network(5)` for details.
23052305+ '';
23062306+ };
23072307+23082308+ fairQueueingConfig = mkOption {
23092309+ default = {};
23102310+ example = { Parent = "root"; FlowLimit = 5; };
23112311+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionFairQueueing;
23122312+ description = lib.mdDoc ''
23132313+ Each attribute in this set specifies an option in the
23142314+ `[FairQueueing]` section of the unit. See
23152315+ {manpage}`systemd.network(5)` for details.
23162316+ '';
23172317+ };
23182318+23192319+ trivialLinkEqualizerConfig = mkOption {
23202320+ default = {};
23212321+ example = { Parent = "root"; Id = 0; };
23222322+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionTrivialLinkEqualizer;
23232323+ description = lib.mdDoc ''
23242324+ Each attribute in this set specifies an option in the
23252325+ `[TrivialLinkEqualizer]` section of the unit. See
23262326+ {manpage}`systemd.network(5)` for details.
23272327+ '';
23282328+ };
23292329+23302330+ hierarchyTokenBucketConfig = mkOption {
23312331+ default = {};
23322332+ example = { Parent = "root"; };
23332333+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionHierarchyTokenBucket;
23342334+ description = lib.mdDoc ''
23352335+ Each attribute in this set specifies an option in the
23362336+ `[HierarchyTokenBucket]` section of the unit. See
23372337+ {manpage}`systemd.network(5)` for details.
23382338+ '';
23392339+ };
23402340+23412341+ hierarchyTokenBucketClassConfig = mkOption {
23422342+ default = {};
23432343+ example = { Parent = "root"; Rate = "10M"; };
23442344+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionHierarchyTokenBucketClass;
23452345+ description = lib.mdDoc ''
23462346+ Each attribute in this set specifies an option in the
23472347+ `[HierarchyTokenBucketClass]` section of the unit. See
23482348+ {manpage}`systemd.network(5)` for details.
23492349+ '';
23502350+ };
23512351+23522352+ heavyHitterFilterConfig = mkOption {
23532353+ default = {};
23542354+ example = { Parent = "root"; PacketLimit = 10000; };
23552355+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionHeavyHitterFilter;
23562356+ description = lib.mdDoc ''
23572357+ Each attribute in this set specifies an option in the
23582358+ `[HeavyHitterFilter]` section of the unit. See
23592359+ {manpage}`systemd.network(5)` for details.
23602360+ '';
23612361+ };
23622362+23632363+ quickFairQueueingConfig = mkOption {
23642364+ default = {};
23652365+ example = { Parent = "root"; };
23662366+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionQuickFairQueueing;
23672367+ description = lib.mdDoc ''
23682368+ Each attribute in this set specifies an option in the
23692369+ `[QuickFairQueueing]` section of the unit. See
23702370+ {manpage}`systemd.network(5)` for details.
23712371+ '';
23722372+ };
23732373+23742374+ quickFairQueueingConfigClass = mkOption {
23752375+ default = {};
23762376+ example = { Parent = "root"; Weight = 133; };
23772377+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionQuickFairQueueingClass;
23782378+ description = lib.mdDoc ''
23792379+ Each attribute in this set specifies an option in the
23802380+ `[QuickFairQueueingClass]` section of the unit. See
23812381+ {manpage}`systemd.network(5)` for details.
23822382+ '';
23832383+ };
23842384+23852385+ bridgeVLANConfig = mkOption {
23862386+ default = {};
23872387+ example = { VLAN = "10-20"; };
23882388+ type = types.addCheck (types.attrsOf unitOption) check.network.sectionbridgeVLAN;
23892389+ description = lib.mdDoc ''
23902390+ Each attribute in this set specifies an option in the
23912391+ `[BridgeVLAN]` section of the unit. See
23922392+ {manpage}`systemd.network(5)` for details.
23932393+ '';
23942394+ };
23952395+23962396+ bridgeVLANs = mkOption {
23972397+ default = [];
23982398+ example = [ { bridgeVLANConfig = { VLAN = "10-20"; }; } ];
23992399+ type = with types; listOf (submodule bridgeVLANOptions);
24002400+ description = lib.mdDoc ''
24012401+ A list of BridgeVLAN sections to be added to the unit. See
24022402+ {manpage}`systemd.network(5)` for details.
24032403+ '';
24042404+ };
24052405+14482406 name = mkOption {
14492407 type = types.nullOr types.str;
14502408 default = null;
···17052663 [Tap]
17062664 ${attrsToSection def.tapConfig}
17072665 ''
26662666+ + optionalString (def.l2tpConfig != { }) ''
26672667+ [L2TP]
26682668+ ${attrsToSection def.l2tpConfig}
26692669+ ''
26702670+ + flip concatMapStrings def.l2tpSessions (x: ''
26712671+ [L2TPSession]
26722672+ ${attrsToSection x.l2tpSessionConfig}
26732673+ '')
17082674 + optionalString (def.wireguardConfig != { }) ''
17092675 [WireGuard]
17102676 ${attrsToSection def.wireguardConfig}
···18432809 + flip concatMapStrings def.dhcpServerStaticLeases (x: ''
18442810 [DHCPServerStaticLease]
18452811 ${attrsToSection x.dhcpServerStaticLeaseConfig}
28122812+ '')
28132813+ + optionalString (def.bridgeConfig != { }) ''
28142814+ [Bridge]
28152815+ ${attrsToSection def.bridgeConfig}
28162816+ ''
28172817+ + flip concatMapStrings def.bridgeFDBs (x: ''
28182818+ [BridgeFDB]
28192819+ ${attrsToSection x.bridgeFDBConfig}
28202820+ '')
28212821+ + flip concatMapStrings def.bridgeMDBs (x: ''
28222822+ [BridgeMDB]
28232823+ ${attrsToSection x.bridgeMDBConfig}
28242824+ '')
28252825+ + optionalString (def.lldpConfig != { }) ''
28262826+ [LLDP]
28272827+ ${attrsToSection def.lldpConfig}
28282828+ ''
28292829+ + optionalString (def.canConfig != { }) ''
28302830+ [CAN]
28312831+ ${attrsToSection def.canConfig}
28322832+ ''
28332833+ + optionalString (def.ipoIBConfig != { }) ''
28342834+ [IPoIB]
28352835+ ${attrsToSection def.ipoIBConfig}
28362836+ ''
28372837+ + optionalString (def.qdiscConfig != { }) ''
28382838+ [QDisc]
28392839+ ${attrsToSection def.qdiscConfig}
28402840+ ''
28412841+ + optionalString (def.networkEmulatorConfig != { }) ''
28422842+ [NetworkEmulator]
28432843+ ${attrsToSection def.networkEmulatorConfig}
28442844+ ''
28452845+ + optionalString (def.tokenBucketFilterConfig != { }) ''
28462846+ [TokenBucketFilter]
28472847+ ${attrsToSection def.tockenBucketFilterConfig}
28482848+ ''
28492849+ + optionalString (def.pieConfig != { }) ''
28502850+ [PIE]
28512851+ ${attrsToSection def.pieConfig}
28522852+ ''
28532853+ + optionalString (def.flowQueuePIEConfig != { }) ''
28542854+ [FlowQueuePIE]
28552855+ ${attrsToSection def.flowQueuePIEConfig}
28562856+ ''
28572857+ + optionalString (def.stochasticFairBlueConfig != { }) ''
28582858+ [StochasticFairBlue]
28592859+ ${attrsToSection def.stochasticFairBlueConfig}
28602860+ ''
28612861+ + optionalString (def.stochasticFairnessQueueingConfig != { }) ''
28622862+ [StochasticFairnessQueueing]
28632863+ ${attrsToSection def.stochasticFairnessQueueingConfig}
28642864+ ''
28652865+ + optionalString (def.bfifoConfig != { }) ''
28662866+ [BFIFO]
28672867+ ${attrsToSection def.bfifoConfig}
28682868+ ''
28692869+ + optionalString (def.pfifoConfig != { }) ''
28702870+ [PFIFO]
28712871+ ${attrsToSection def.pfifoConfig}
28722872+ ''
28732873+ + optionalString (def.pfifoHeadDropConfig != { }) ''
28742874+ [PFIFOHeadDrop]
28752875+ ${attrsToSection def.pfifoHeadDropConfig}
28762876+ ''
28772877+ + optionalString (def.pfifoFastConfig != { }) ''
28782878+ [PFIFOFast]
28792879+ ${attrsToSection def.pfifoFastConfig}
28802880+ ''
28812881+ + optionalString (def.cakeConfig != { }) ''
28822882+ [CAKE]
28832883+ ${attrsToSection def.cakeConfig}
28842884+ ''
28852885+ + optionalString (def.controlledDelayConfig != { }) ''
28862886+ [ControlledDelay]
28872887+ ${attrsToSection def.controlledDelayConfig}
28882888+ ''
28892889+ + optionalString (def.deficitRoundRobinSchedulerConfig != { }) ''
28902890+ [DeficitRoundRobinScheduler]
28912891+ ${attrsToSection def.deficitRoundRobinSchedulerConfig}
28922892+ ''
28932893+ + optionalString (def.deficitRoundRobinSchedulerClassConfig != { }) ''
28942894+ [DeficitRoundRobinSchedulerClass]
28952895+ ${attrsToSection def.deficitRoundRobinSchedulerClassConfig}
28962896+ ''
28972897+ + optionalString (def.enhancedTransmissionSelectionConfig != { }) ''
28982898+ [EnhancedTransmissionSelection]
28992899+ ${attrsToSection def.enhancedTransmissionSelectionConfig}
29002900+ ''
29012901+ + optionalString (def.genericRandomEarlyDetectionConfig != { }) ''
29022902+ [GenericRandomEarlyDetection]
29032903+ ${attrsToSection def.genericRandomEarlyDetectionConfig}
29042904+ ''
29052905+ + optionalString (def.fairQueueingControlledDelayConfig != { }) ''
29062906+ [FairQueueingControlledDelay]
29072907+ ${attrsToSection def.fairQueueingControlledDelayConfig}
29082908+ ''
29092909+ + optionalString (def.fairQueueingConfig != { }) ''
29102910+ [FairQueueing]
29112911+ ${attrsToSection def.fairQueueingConfig}
29122912+ ''
29132913+ + optionalString (def.trivialLinkEqualizerConfig != { }) ''
29142914+ [TrivialLinkEqualizer]
29152915+ ${attrsToSection def.trivialLinkEqualizerConfig}
29162916+ ''
29172917+ + optionalString (def.hierarchyTokenBucketConfig != { }) ''
29182918+ [HierarchyTokenBucket]
29192919+ ${attrsToSection def.hierarchyTokenBucketConfig}
29202920+ ''
29212921+ + optionalString (def.hierarchyTokenBucketClassConfig != { }) ''
29222922+ [HierarchyTokenBucketClass]
29232923+ ${attrsToSection def.hierarchyTokenBucketClassConfig}
29242924+ ''
29252925+ + optionalString (def.heavyHitterFilterConfig != { }) ''
29262926+ [HeavyHitterFilter]
29272927+ ${attrsToSection def.heavyHitterFilterConfig}
29282928+ ''
29292929+ + optionalString (def.quickFairQueueingConfig != { }) ''
29302930+ [QuickFairQueueing]
29312931+ ${attrsToSection def.quickFairQueueingConfig}
29322932+ ''
29332933+ + optionalString (def.quickFairQueueingConfigClass != { }) ''
29342934+ [QuickFairQueueingClass]
29352935+ ${attrsToSection def.quickFairQueueingConfigClass}
29362936+ ''
29372937+ + flip concatMapStrings def.bridgeVLANs (x: ''
29382938+ [BridgeVLAN]
29392939+ ${attrsToSection x.bridgeVLANConfig}
18462940 '')
18472941 + def.extraConfig;
18482942 };
···1515 inherit sha256;
1616 };
17171818- patches = [ (./patches + "/v${major}/0001-Setup-remove-custom-dbuser-creation-behavior.patch") ];
1818+ # This patch is only necessary for NC version <26.
1919+ patches = lib.optional (lib.versionOlder major "26") (./patches + "/v${major}/0001-Setup-remove-custom-dbuser-creation-behavior.patch");
19202021 passthru.tests = nixosTests.nextcloud;
2122···3839 };
3940 };
4041in {
4141- nextcloud23 = throw ''
4242- Nextcloud v23 has been removed from `nixpkgs` as the support for is dropped
4343- by upstream in 2022-12. Please upgrade to at least Nextcloud v24 by declaring
4444-4545- services.nextcloud.package = pkgs.nextcloud24;
4646-4747- in your NixOS config.
4848-4949- WARNING: if you were on Nextcloud 22 on NixOS 22.05 you have to upgrade to Nextcloud 23
5050- first on 22.05 because Nextcloud doesn't support upgrades across multiple major versions!
5151- '';
5252-5342 nextcloud24 = generic {
5443 version = "24.0.10";
5544 sha256 = "sha256-B6+0gO9wn39BpcR0IsIuMa81DH8TWuDOlTZR9O1qRbk=";
···5847 nextcloud25 = generic {
5948 version = "25.0.4";
6049 sha256 = "sha256-wyUeAIOpQwPi1piLNS87Mwgqeacmsw/3RnCbD+hpoaY=";
5050+ };
5151+5252+ nextcloud26 = generic {
5353+ version = "26.0.0";
5454+ sha256 = "sha256-8WMVA2Ou6TZuy1zVJZv2dW7U8HPOp4tfpRXK2noNDD0=";
6155 };
62566357 # tip: get the sha with:
-122
pkgs/servers/nextcloud/packages/23.json
···11-{
22- "bookmarks": {
33- "sha256": "511aadcda0b1f051191c20cfd7048150536cfb1e748deb11b568bec4e535a173",
44- "url": "https://github.com/nextcloud/bookmarks/releases/download/v11.0.4/bookmarks-11.0.4.tar.gz",
55- "version": "11.0.4",
66- "description": "- 📂 Sort bookmarks into folders\n- 🏷 Add tags and personal notes\n- 🔍 Full-text search\n- 📲 Synchronize with all your browsers and devices\n- 👪 Share bookmarks with other users and publicly\n- ☠ Find broken links\n- ⚛ Generate RSS feeds of your collections\n- 📔 Read archived versions of your links in case they are depublished\n- 💬 Create new bookmarks directly from within Nextcloud Talk\n- 💼 Built-in Dashboard widgets for frequent and recent links\n\nRequirements:\n - PHP v7.4+\n - PHP extensions:\n - intl: *\n - mbstring: *\n - when using MySQL, use at least v8.0",
77- "homepage": "https://github.com/nextcloud/bookmarks",
88- "licenses": [
99- "agpl"
1010- ]
1111- },
1212- "calendar": {
1313- "sha256": "d6edc166d63204e39135c0e9f00c0f7a6875db89d34a936e16b513c749ac8b8d",
1414- "url": "https://github.com/nextcloud-releases/calendar/releases/download/v3.5.2/calendar-v3.5.2.tar.gz",
1515- "version": "3.5.2",
1616- "description": "The Calendar app is a user interface for Nextcloud's CalDAV server. Easily sync events from various devices with your Nextcloud and edit them online.\n\n* 🚀 **Integration with other Nextcloud apps!** Currently Contacts - more to come.\n* 🌐 **WebCal Support!** Want to see your favorite team’s matchdays in your calendar? No problem!\n* 🙋 **Attendees!** Invite people to your events\n* ⌚️ **Free/Busy!** See when your attendees are available to meet\n* ⏰ **Reminders!** Get alarms for events inside your browser and via email\n* 🔍 Search! Find your events at ease\n* ☑️ Tasks! See tasks with a due date directly in the calendar\n* 🙈 **We’re not reinventing the wheel!** Based on the great [c-dav library](https://github.com/nextcloud/cdav-library), [ical.js](https://github.com/mozilla-comm/ical.js) and [fullcalendar](https://github.com/fullcalendar/fullcalendar) libraries.",
1717- "homepage": "https://github.com/nextcloud/calendar/",
1818- "licenses": [
1919- "agpl"
2020- ]
2121- },
2222- "contacts": {
2323- "sha256": "1938b266c5070573e0435ec31c08a19add96fd99c08c3c1f8309ee8e447093a0",
2424- "url": "https://github.com/nextcloud-releases/contacts/releases/download/v4.2.2/contacts-v4.2.2.tar.gz",
2525- "version": "4.2.2",
2626- "description": "The Nextcloud contacts app is a user interface for Nextcloud's CardDAV server. Easily sync contacts from various devices with your Nextcloud and edit them online.\n\n* 🚀 **Integration with other Nextcloud apps!** Currently Mail and Calendar – more to come.\n* 🎉 **Never forget a birthday!** You can sync birthdays and other recurring events with your Nextcloud Calendar.\n* 👥 **Sharing of Adressbooks!** You want to share your contacts with your friends or coworkers? No problem!\n* 🙈 **We’re not reinventing the wheel!** Based on the great and open SabreDAV library.",
2727- "homepage": "https://github.com/nextcloud/contacts#readme",
2828- "licenses": [
2929- "agpl"
3030- ]
3131- },
3232- "deck": {
3333- "sha256": "fd9ea1ce98c531c7442a784f693cb047d90fbaee313a820ee648f690697f5e13",
3434- "url": "https://github.com/nextcloud-releases/deck/releases/download/v1.6.4/deck-v1.6.4.tar.gz",
3535- "version": "1.6.4",
3636- "description": "Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized",
3737- "homepage": "https://github.com/nextcloud/deck",
3838- "licenses": [
3939- "agpl"
4040- ]
4141- },
4242- "keeweb": {
4343- "sha256": "a3281fcfdb4058971a3b5c838870a8d5b533445c999b8e921fb8758b216dadbc",
4444- "url": "https://github.com/jhass/nextcloud-keeweb/releases/download/v0.6.10/keeweb-0.6.10.tar.gz",
4545- "version": "0.6.10",
4646- "description": "Open Keepass stores inside Nextcloud with Keeweb just by clicking on an *.kdbx file in your Nextcloud.",
4747- "homepage": "https://github.com/jhass/nextcloud-keeweb",
4848- "licenses": [
4949- "agpl"
5050- ]
5151- },
5252- "mail": {
5353- "sha256": "0e2c5465436b894ac916222391d94d364592c18b4258fd3aa4b760afa8fa6ad7",
5454- "url": "https://github.com/nextcloud-releases/mail/releases/download/v1.14.3.alpha.1/mail-v1.14.3.alpha.1.tar.gz",
5555- "version": "1.14.3-alpha.1",
5656- "description": "**💌 A mail app for Nextcloud**\n\n- **🚀 Integration with other Nextcloud apps!** Currently Contacts, Calendar & Files – more to come.\n- **📥 Multiple mail accounts!** Personal and company account? No problem, and a nice unified inbox. Connect any IMAP account.\n- **🔒 Send & receive encrypted mails!** Using the great [Mailvelope](https://mailvelope.com) browser extension.\n- **🙈 We’re not reinventing the wheel!** Based on the great [Horde](https://horde.org) libraries.\n- **📬 Want to host your own mail server?** We do not have to reimplement this as you could set up [Mail-in-a-Box](https://mailinabox.email)!",
5757- "homepage": "https://github.com/nextcloud/mail#readme",
5858- "licenses": [
5959- "agpl"
6060- ]
6161- },
6262- "news": {
6363- "sha256": "9551781fdbfb6d2c3cd77ee57eae0fb1583c7b54e9720bc955053f51541f4a86",
6464- "url": "https://github.com/nextcloud/news/releases/download/19.0.0/news.tar.gz",
6565- "version": "19.0.0",
6666- "description": "📰 A RSS/Atom Feed reader App for Nextcloud\n\n- 📲 Synchronize your feeds with multiple mobile or desktop [clients](https://nextcloud.github.io/news/clients/)\n- 🔄 Automatic updates of your news feeds\n- 🆓 Free and open source under AGPLv3, no ads or premium functions\n\n**System Cron is currently required for this app to work**\n\nRequirements can be found [here](https://nextcloud.github.io/news/install/#dependencies)\n\nThe Changelog is available [here](https://github.com/nextcloud/news/blob/master/CHANGELOG.md)\n\nCreate a [bug report](https://github.com/nextcloud/news/issues/new/choose)\n\nCreate a [feature request](https://github.com/nextcloud/news/discussions/new)\n\nReport a [feed issue](https://github.com/nextcloud/news/discussions/new)",
6767- "homepage": "https://github.com/nextcloud/news",
6868- "licenses": [
6969- "agpl"
7070- ]
7171- },
7272- "notes": {
7373- "sha256": "adddee56456d0115f87a74405a6d62bd5e3af256e86199d87bbff3b2a6876299",
7474- "url": "https://github.com/nextcloud/notes/releases/download/v4.5.1/notes.tar.gz",
7575- "version": "4.5.1",
7676- "description": "The Notes app is a distraction free notes taking app for [Nextcloud](https://www.nextcloud.com/). It provides categories for better organization and supports formatting using [Markdown](https://en.wikipedia.org/wiki/Markdown) syntax. Notes are saved as files in your Nextcloud, so you can view and edit them with every Nextcloud client. Furthermore, a separate [REST API](https://github.com/nextcloud/notes/blob/master/docs/api/README.md) allows for an easy integration into third-party apps (currently, there are notes apps for [Android](https://github.com/stefan-niedermann/nextcloud-notes), [iOS](https://github.com/owncloud/notes-iOS-App) and the [console](https://git.danielmoch.com/nncli/about) which allow convenient access to your Nextcloud notes). Further features include marking notes as favorites.",
7777- "homepage": "https://github.com/nextcloud/notes",
7878- "licenses": [
7979- "agpl"
8080- ]
8181- },
8282- "onlyoffice": {
8383- "sha256": "e7170f7cffb50547d51a17f0ad38dfab83040a25ebd80146a840d233093a27f0",
8484- "url": "https://github.com/ONLYOFFICE/onlyoffice-nextcloud/releases/download/v7.4.8/onlyoffice.tar.gz",
8585- "version": "7.4.8",
8686- "description": "ONLYOFFICE connector allows you to view, edit and collaborate on text documents, spreadsheets and presentations within Nextcloud using ONLYOFFICE Docs. This will create a new Edit in ONLYOFFICE action within the document library for Office documents. This allows multiple users to co-author documents in real time from the familiar web interface and save the changes back to your file storage.",
8787- "homepage": "https://www.onlyoffice.com",
8888- "licenses": [
8989- "apache"
9090- ]
9191- },
9292- "polls": {
9393- "sha256": "b6ef0e8b34cdb5169341e30340bc9cefaa1254a1a6020e951f86e828f8591a11",
9494- "url": "https://github.com/nextcloud/polls/releases/download/v3.8.3/polls.tar.gz",
9595- "version": "3.8.3",
9696- "description": "A polls app, similar to Doodle/Dudle with the possibility to restrict access (members, certain groups/users, hidden and public).",
9797- "homepage": "https://github.com/nextcloud/polls",
9898- "licenses": [
9999- "agpl"
100100- ]
101101- },
102102- "tasks": {
103103- "sha256": "fdfa3168ac80eaef3e2de5009eee02a369acc8d35dfd8283d1f25423bdf3c532",
104104- "url": "https://github.com/nextcloud/tasks/releases/download/v0.14.5/tasks.tar.gz",
105105- "version": "0.14.5",
106106- "description": "Once enabled, a new Tasks menu will appear in your Nextcloud apps menu. From there you can add and delete tasks, edit their title, description, start and due dates and mark them as important. Tasks can be shared between users. Tasks can be synchronized using CalDav (each task list is linked to an Nextcloud calendar, to sync it to your local client: Thunderbird, Evolution, KDE Kontact, iCal … - just add the calendar as a remote calendar in your client). You can download your tasks as ICS files using the download button for each calendar.",
107107- "homepage": "https://github.com/nextcloud/tasks/",
108108- "licenses": [
109109- "agpl"
110110- ]
111111- },
112112- "twofactor_webauthn": {
113113- "sha256": "291c20032cfc1f2fb081cc8721e272bc503d103987c6abb7ce442e497d278d0a",
114114- "url": "https://github.com/nextcloud-releases/twofactor_webauthn/releases/download/v0.3.3/twofactor_webauthn-v0.3.3.tar.gz",
115115- "version": "0.3.3",
116116- "description": "A two-factor provider for WebAuthn devices",
117117- "homepage": "https://github.com/nextcloud/twofactor_webauthn#readme",
118118- "licenses": [
119119- "agpl"
120120- ]
121121- }
122122-}
+12-12
pkgs/servers/nextcloud/packages/24.json
···6363 "sha256": "1payxppd2j0n67kcswb3dkk2a467fahwakxs7wqsfqgqgr9mcbl4",
6464 "url": "https://github.com/nextcloud/forms/releases/download/v2.5.2/forms.tar.gz",
6565 "version": "2.5.2",
6666- "description": "**Simple surveys and questionnaires, self-hosted!**\n\n- **📝 Simple design:** No mass of options, only the essentials. Works well on mobile of course.\n- **📊 View & export results:** Results are visualized and can also be exported as CSV in the same format used by Google Forms.\n- **🔒 Data under your control!** Unlike in Google Forms, Typeform, Doodle and others, the survey info and responses are kept private on your instance.\n- **🙋 Get involved!** We have lots of stuff planned like more question types, collaboration on forms, [and much more](https://github.com/nextcloud/forms/milestones)!",
6666+ "description": "**Simple surveys and questionnaires, self-hosted!**\n\n- **📝 Simple design:** No mass of options, only the essentials. Works well on mobile of course.\n- **📊 View & export results:** Results are visualized and can also be exported as CSV in the same format used by Google Forms.\n- **🔒 Data under your control!** Unlike in Google Forms, Typeform, Doodle and others, the survey info and responses are kept private on your instance.\n- **🧑💻 Connect to your software:** Easily integrate Forms into your service with our full-fledged [REST-API](https://github.com/nextcloud/forms/blob/main/docs/API.md).\n- **🙋 Get involved!** We have lots of stuff planned like more question types, collaboration on forms, [and much more](https://github.com/nextcloud/forms/milestones)!",
6767 "homepage": "https://github.com/nextcloud/forms",
6868 "licenses": [
6969 "agpl"
···8080 ]
8181 },
8282 "impersonate": {
8383- "sha256": "1k1qm3jilys548g813y179x6rs8aglkvss8b0cmfvjlpmlaxpssx",
8484- "url": "https://github.com/nextcloud-releases/impersonate/releases/download/v1.11.0/impersonate-v1.11.0.tar.gz",
8585- "version": "1.11.0",
8686- "description": "By installing the impersonate app of your Nextcloud you enable administrators to impersonate other users on the Nextcloud server. This is especially useful for debugging issues reported by users.\n\nTo impersonate a user an administrator has to simply follow the following four steps:\n\n1. Login as administrator to Nextcloud\n2. Open the user administration interface\n3. Select the impersonate button on the affected user\n4. Confirm the impersonation\n\nThe administrator is then logged-in as the user, to switch back to the regular user account they simply have to press the logout button.\n\n**Note:**\n\n- This app is not compatible with instances that have encryption enabled.\n- While impersonate actions are logged note that actions performed impersonated will be logged as the impersonated user.\n- Impersonating a user is only possible after their first login.",
8383+ "sha256": "1kjibw5rigij51j6vjmx7ykrk61lg98syp7kkr0fzgwzvxrdniah",
8484+ "url": "https://github.com/nextcloud-releases/impersonate/releases/download/v1.11.1/impersonate-v1.11.1.tar.gz",
8585+ "version": "1.11.1",
8686+ "description": "By installing the impersonate app of your Nextcloud you enable administrators to impersonate other users on the Nextcloud server. This is especially useful for debugging issues reported by users.\n\nTo impersonate a user an administrator has to simply follow the following four steps:\n\n1. Login as administrator to Nextcloud.\n2. Open users administration interface.\n3. Select the impersonate button on the affected user.\n4. Confirm the impersonation.\n\nThe administrator is then logged-in as the user, to switch back to the regular user account they simply have to press the logout button.\n\n**Note:**\n\n- This app is not compatible with instances that have encryption enabled.\n- While impersonate actions are logged note that actions performed impersonated will be logged as the impersonated user.\n- Impersonating a user is only possible after their first login.",
8787 "homepage": "https://github.com/nextcloud/impersonate",
8888 "licenses": [
8989 "agpl"
···110110 ]
111111 },
112112 "news": {
113113- "sha256": "17kz5499jkv43w8wcd1p982hpkw2akgzpv9cjj8qqjhvzv4qr171",
114114- "url": "https://github.com/nextcloud/news/releases/download/21.0.0-beta1/news.tar.gz",
115115- "version": "21.0.0-beta1",
113113+ "sha256": "026ggjf6dqbjv8hnj6jj1nnqz0256ck2yg13zhln7zc84lhfzlfd",
114114+ "url": "https://github.com/nextcloud/news/releases/download/21.1.0/news.tar.gz",
115115+ "version": "21.1.0",
116116 "description": "📰 A RSS/Atom Feed reader App for Nextcloud\n\n- 📲 Synchronize your feeds with multiple mobile or desktop [clients](https://nextcloud.github.io/news/clients/)\n- 🔄 Automatic updates of your news feeds\n- 🆓 Free and open source under AGPLv3, no ads or premium functions\n\n**System Cron is currently required for this app to work**\n\nRequirements can be found [here](https://nextcloud.github.io/news/install/#dependencies)\n\nThe Changelog is available [here](https://github.com/nextcloud/news/blob/master/CHANGELOG.md)\n\nCreate a [bug report](https://github.com/nextcloud/news/issues/new/choose)\n\nCreate a [feature request](https://github.com/nextcloud/news/discussions/new)\n\nReport a [feed issue](https://github.com/nextcloud/news/discussions/new)",
117117 "homepage": "https://github.com/nextcloud/news",
118118 "licenses": [
···123123 "sha256": "adddee56456d0115f87a74405a6d62bd5e3af256e86199d87bbff3b2a6876299",
124124 "url": "https://github.com/nextcloud/notes/releases/download/v4.5.1/notes.tar.gz",
125125 "version": "4.5.1",
126126- "description": "The Notes app is a distraction free notes taking app for [Nextcloud](https://www.nextcloud.com/). It provides categories for better organization and supports formatting using [Markdown](https://en.wikipedia.org/wiki/Markdown) syntax. Notes are saved as files in your Nextcloud, so you can view and edit them with every Nextcloud client. Furthermore, a separate [REST API](https://github.com/nextcloud/notes/blob/master/docs/api/README.md) allows for an easy integration into third-party apps (currently, there are notes apps for [Android](https://github.com/stefan-niedermann/nextcloud-notes), [iOS](https://github.com/owncloud/notes-iOS-App) and the [console](https://git.danielmoch.com/nncli/about) which allow convenient access to your Nextcloud notes). Further features include marking notes as favorites.",
126126+ "description": "The Notes app is a distraction free notes taking app for [Nextcloud](https://www.nextcloud.com/). It provides categories for better organization and supports formatting using [Markdown](https://en.wikipedia.org/wiki/Markdown) syntax. Notes are saved as files in your Nextcloud, so you can view and edit them with every Nextcloud client. Furthermore, a separate [REST API](https://github.com/nextcloud/notes/blob/master/docs/api/README.md) allows for an easy integration into third-party apps (currently, there are notes apps for [Android](https://github.com/nextcloud/notes-android), [iOS](https://github.com/nextcloud/notes-ios) and the [console](https://git.danielmoch.com/nncli/about) which allow convenient access to your Nextcloud notes). Further features include marking notes as favorites.",
127127 "homepage": "https://github.com/nextcloud/notes",
128128 "licenses": [
129129 "agpl"
···140140 ]
141141 },
142142 "onlyoffice": {
143143- "sha256": "6117b7b8c5c7133975e4ebf482814cdcd3f94a1b3c76ea1b5eed47bdd1fbfcbb",
144144- "url": "https://github.com/ONLYOFFICE/onlyoffice-nextcloud/releases/download/v7.5.8/onlyoffice.tar.gz",
145145- "version": "7.5.8",
143143+ "sha256": "0hscbm7jcnxyg7ib0g16b0sw8nz7rl6qzx90qmki5knhzrf6hf1j",
144144+ "url": "https://github.com/ONLYOFFICE/onlyoffice-nextcloud/releases/download/v7.7.0/onlyoffice.tar.gz",
145145+ "version": "7.7.0",
146146 "description": "ONLYOFFICE connector allows you to view, edit and collaborate on text documents, spreadsheets and presentations within Nextcloud using ONLYOFFICE Docs. This will create a new Edit in ONLYOFFICE action within the document library for Office documents. This allows multiple users to co-author documents in real time from the familiar web interface and save the changes back to your file storage.",
147147 "homepage": "https://www.onlyoffice.com",
148148 "licenses": [
+39-29
pkgs/servers/nextcloud/packages/25.json
···11{
22 "bookmarks": {
33- "sha256": "0dkfjafbynkrymsq183sad7zynqr2qls0cld73nvzn3smnvdl2xx",
44- "url": "https://github.com/nextcloud/bookmarks/releases/download/v12.0.0/bookmarks-12.0.0.tar.gz",
55- "version": "12.0.0",
33+ "sha256": "1kdpma5f3rb9g29j364lqv6bkar5qgwlvcxmhpmzllwlkmjpc9w8",
44+ "url": "https://github.com/nextcloud/bookmarks/releases/download/v12.1.0/bookmarks-12.1.0.tar.gz",
55+ "version": "12.1.0",
66 "description": "- 📂 Sort bookmarks into folders\n- 🏷 Add tags and personal notes\n- 🔍 Full-text search\n- 📲 Synchronize with all your browsers and devices\n- 👪 Share bookmarks with other users and publicly\n- ☠ Find broken links\n- ⚛ Generate RSS feeds of your collections\n- 📔 Read archived versions of your links in case they are depublished\n- 💬 Create new bookmarks directly from within Nextcloud Talk\n- 💼 Built-in Dashboard widgets for frequent and recent links\n\nRequirements:\n - PHP v7.4+\n - PHP extensions:\n - intl: *\n - mbstring: *\n - when using MySQL, use at least v8.0",
77 "homepage": "https://github.com/nextcloud/bookmarks",
88 "licenses": [
···1010 ]
1111 },
1212 "calendar": {
1313- "sha256": "0m0ixj4gaaqgnlk492ihkcxrxbww91jyalh40hdgnsryb9wrpkfp",
1414- "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.3.0-alpha1/calendar-v4.3.0-alpha1.tar.gz",
1515- "version": "4.3.0-alpha.1",
1313+ "sha256": "18jlj2g2b57ibcvqiw3pkkky4rr20xi5plyxl1xjn2bp9l3hng4y",
1414+ "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.3.0/calendar-v4.3.0.tar.gz",
1515+ "version": "4.3.0",
1616 "description": "The Calendar app is a user interface for Nextcloud's CalDAV server. Easily sync events from various devices with your Nextcloud and edit them online.\n\n* 🚀 **Integration with other Nextcloud apps!** Currently Contacts - more to come.\n* 🌐 **WebCal Support!** Want to see your favorite team’s matchdays in your calendar? No problem!\n* 🙋 **Attendees!** Invite people to your events\n* ⌚️ **Free/Busy!** See when your attendees are available to meet\n* ⏰ **Reminders!** Get alarms for events inside your browser and via email\n* 🔍 Search! Find your events at ease\n* ☑️ Tasks! See tasks with a due date directly in the calendar\n* 🙈 **We’re not reinventing the wheel!** Based on the great [c-dav library](https://github.com/nextcloud/cdav-library), [ical.js](https://github.com/mozilla-comm/ical.js) and [fullcalendar](https://github.com/fullcalendar/fullcalendar) libraries.",
1717 "homepage": "https://github.com/nextcloud/calendar/",
1818 "licenses": [
···2020 ]
2121 },
2222 "contacts": {
2323- "sha256": "1m00r6cpqyrg2b0p8hg4wqkb3wn643fy63ax7qksp39rn18smrwk",
2424- "url": "https://github.com/nextcloud-releases/contacts/releases/download/v5.1.0/contacts-v5.1.0.tar.gz",
2525- "version": "5.1.0",
2323+ "sha256": "1rdql3m7pg9m044hppyrm3xw329y8h0pzwcmpcinjbjs0vqjssxk",
2424+ "url": "https://github.com/nextcloud-releases/contacts/releases/download/v5.2.0/contacts-v5.2.0.tar.gz",
2525+ "version": "5.2.0",
2626 "description": "The Nextcloud contacts app is a user interface for Nextcloud's CardDAV server. Easily sync contacts from various devices with your Nextcloud and edit them online.\n\n* 🚀 **Integration with other Nextcloud apps!** Currently Mail and Calendar – more to come.\n* 🎉 **Never forget a birthday!** You can sync birthdays and other recurring events with your Nextcloud Calendar.\n* 👥 **Sharing of Adressbooks!** You want to share your contacts with your friends or coworkers? No problem!\n* 🙈 **We’re not reinventing the wheel!** Based on the great and open SabreDAV library.",
2727 "homepage": "https://github.com/nextcloud/contacts#readme",
2828 "licenses": [
···5050 ]
5151 },
5252 "forms": {
5353- "sha256": "0b2qvrnhsxdknlc8bpr4hmxqdk18f9vy8ry6nm49k4lbrsfg97nq",
5454- "url": "https://github.com/nextcloud/forms/releases/download/v3.1.0/forms.tar.gz",
5555- "version": "3.1.0",
5656- "description": "**Simple surveys and questionnaires, self-hosted!**\n\n- **📝 Simple design:** No mass of options, only the essentials. Works well on mobile of course.\n- **📊 View & export results:** Results are visualized and can also be exported as CSV in the same format used by Google Forms.\n- **🔒 Data under your control!** Unlike in Google Forms, Typeform, Doodle and others, the survey info and responses are kept private on your instance.\n- **🙋 Get involved!** We have lots of stuff planned like more question types, collaboration on forms, [and much more](https://github.com/nextcloud/forms/milestones)!",
5353+ "sha256": "1hjdwhhx5p9n185b5v0vbxhnarcm83r52hsqq7qwfcfpy86axafr",
5454+ "url": "https://github.com/nextcloud/forms/releases/download/v3.2.0/forms.tar.gz",
5555+ "version": "3.2.0",
5656+ "description": "**Simple surveys and questionnaires, self-hosted!**\n\n- **📝 Simple design:** No mass of options, only the essentials. Works well on mobile of course.\n- **📊 View & export results:** Results are visualized and can also be exported as CSV in the same format used by Google Forms.\n- **🔒 Data under your control!** Unlike in Google Forms, Typeform, Doodle and others, the survey info and responses are kept private on your instance.\n- **🧑💻 Connect to your software:** Easily integrate Forms into your service with our full-fledged [REST-API](https://github.com/nextcloud/forms/blob/main/docs/API.md).\n- **🙋 Get involved!** We have lots of stuff planned like more question types, collaboration on forms, [and much more](https://github.com/nextcloud/forms/milestones)!",
5757 "homepage": "https://github.com/nextcloud/forms",
5858 "licenses": [
5959 "agpl"
···6969 "agpl"
7070 ]
7171 },
7272+ "impersonate": {
7373+ "sha256": "1whngpqx4b2vdsr8a9j8agdg2c8rm5rbk2vhh92myws55lqlbnz9",
7474+ "url": "https://github.com/nextcloud-releases/impersonate/releases/download/v1.12.0/impersonate-v1.12.0.tar.gz",
7575+ "version": "1.12.0",
7676+ "description": "By installing the impersonate app of your Nextcloud you enable administrators to impersonate other users on the Nextcloud server. This is especially useful for debugging issues reported by users.\n\nTo impersonate a user an administrator has to simply follow the following four steps:\n\n1. Login as administrator to Nextcloud.\n2. Open users administration interface.\n3. Select the impersonate button on the affected user.\n4. Confirm the impersonation.\n\nThe administrator is then logged-in as the user, to switch back to the regular user account they simply have to press the logout button.\n\n**Note:**\n\n- This app is not compatible with instances that have encryption enabled.\n- While impersonate actions are logged note that actions performed impersonated will be logged as the impersonated user.\n- Impersonating a user is only possible after their first login.",
7777+ "homepage": "https://github.com/nextcloud/impersonate",
7878+ "licenses": [
7979+ "agpl"
8080+ ]
8181+ },
7282 "keeweb": {
7383 "sha256": "1g6bjbzk7rf9x7cblwsc7cmd3fx5zrkib5ra5xzsmqc9aqpy22zh",
7484 "url": "https://github.com/jhass/nextcloud-keeweb/releases/download/v0.6.10/keeweb-0.6.10.tar.gz",
···8090 ]
8191 },
8292 "mail": {
8383- "sha256": "161ksx7g32fkpwxq3vij2vw6sxblv7xrxggsxnx2wj14ik3wxclv",
8484- "url": "https://github.com/nextcloud-releases/mail/releases/download/v2.3.0-alpha.4/mail-v2.3.0-alpha.4.tar.gz",
8585- "version": "2.3.0-alpha.4",
9393+ "sha256": "0sk19y9iwnbw6ci4hq9xxrn5qgnlgqlb5hpzc50i706s1z5n9cmc",
9494+ "url": "https://github.com/nextcloud-releases/mail/releases/download/v2.2.4/mail-v2.2.4.tar.gz",
9595+ "version": "2.2.4",
8696 "description": "**💌 A mail app for Nextcloud**\n\n- **🚀 Integration with other Nextcloud apps!** Currently Contacts, Calendar & Files – more to come.\n- **📥 Multiple mail accounts!** Personal and company account? No problem, and a nice unified inbox. Connect any IMAP account.\n- **🔒 Send & receive encrypted mails!** Using the great [Mailvelope](https://mailvelope.com) browser extension.\n- **🙈 We’re not reinventing the wheel!** Based on the great [Horde](https://horde.org) libraries.\n- **📬 Want to host your own mail server?** We do not have to reimplement this as you could set up [Mail-in-a-Box](https://mailinabox.email)!",
8797 "homepage": "https://github.com/nextcloud/mail#readme",
8898 "licenses": [
···90100 ]
91101 },
92102 "news": {
9393- "sha256": "17kz5499jkv43w8wcd1p982hpkw2akgzpv9cjj8qqjhvzv4qr171",
9494- "url": "https://github.com/nextcloud/news/releases/download/21.0.0-beta1/news.tar.gz",
9595- "version": "21.0.0-beta1",
103103+ "sha256": "1i7avq4iliz8afrwc9hw7hb13g3223004b2dim7j77l3zsvkfq3h",
104104+ "url": "https://github.com/nextcloud/news/releases/download/21.1.0-beta1/news.tar.gz",
105105+ "version": "21.1.0-beta1",
96106 "description": "📰 A RSS/Atom Feed reader App for Nextcloud\n\n- 📲 Synchronize your feeds with multiple mobile or desktop [clients](https://nextcloud.github.io/news/clients/)\n- 🔄 Automatic updates of your news feeds\n- 🆓 Free and open source under AGPLv3, no ads or premium functions\n\n**System Cron is currently required for this app to work**\n\nRequirements can be found [here](https://nextcloud.github.io/news/install/#dependencies)\n\nThe Changelog is available [here](https://github.com/nextcloud/news/blob/master/CHANGELOG.md)\n\nCreate a [bug report](https://github.com/nextcloud/news/issues/new/choose)\n\nCreate a [feature request](https://github.com/nextcloud/news/discussions/new)\n\nReport a [feed issue](https://github.com/nextcloud/news/discussions/new)",
97107 "homepage": "https://github.com/nextcloud/news",
98108 "licenses": [
···120130 ]
121131 },
122132 "onlyoffice": {
123123- "sha256": "0gy4n86q7b5qmy609ncibp94v1b3z9msc0129572qz2zyxfqxq3i",
124124- "url": "https://github.com/ONLYOFFICE/onlyoffice-nextcloud/releases/download/v7.6.8/onlyoffice.tar.gz",
125125- "version": "7.6.8",
133133+ "sha256": "10axh9a4w8y3iw95xdjn4q8wjg5459dki42xb6cax5ikimyfv07j",
134134+ "url": "https://github.com/ONLYOFFICE/onlyoffice-nextcloud/releases/download/v7.8.0/onlyoffice.tar.gz",
135135+ "version": "7.8.0",
126136 "description": "ONLYOFFICE connector allows you to view, edit and collaborate on text documents, spreadsheets and presentations within Nextcloud using ONLYOFFICE Docs. This will create a new Edit in ONLYOFFICE action within the document library for Office documents. This allows multiple users to co-author documents in real time from the familiar web interface and save the changes back to your file storage.",
127137 "homepage": "https://www.onlyoffice.com",
128138 "licenses": [
···130140 ]
131141 },
132142 "polls": {
133133- "sha256": "0mqc9zmxrm98byy6v13si3hwii8hx85998c4kv91vk6ad0sfxjhb",
134134- "url": "https://github.com/nextcloud/polls/releases/download/v4.1.2/polls.tar.gz",
135135- "version": "4.1.2",
143143+ "sha256": "12298sspxp0ap61z2fjlgnd30fn0gl92xa5m6rnx2jb5i39lh9wr",
144144+ "url": "https://github.com/nextcloud/polls/releases/download/v5.0.0-beta4/polls.tar.gz",
145145+ "version": "5.0.0-beta4",
136146 "description": "A polls app, similar to Doodle/Dudle with the possibility to restrict access (members, certain groups/users, hidden and public).",
137147 "homepage": "https://github.com/nextcloud/polls",
138148 "licenses": [
···153163 "sha256": "0pav5xcnj55vs04fm1fc2kpaz46k0rdlvv7xn6idwgh860anzp4g",
154164 "url": "https://github.com/nextcloud-releases/spreed/releases/download/v15.0.4/spreed-v15.0.4.tar.gz",
155165 "version": "15.0.4",
156156- "description": "Chat, video & audio-conferencing using WebRTC\n\n* 💬 **Chat integration!** Nextcloud Talk comes with a simple text chat. Allowing you to share files from your Nextcloud and mentioning other participants.\n* 👥 **Private, group, public and password protected calls!** Just invite somebody, a whole group or send a public link to invite to a call.\n* 💻 **Screen sharing!** Share your screen with participants of your call. You just need to use Firefox version 66 (or newer), latest Edge or Chrome 72 (or newer, also possible using Chrome 49 with this [Chrome extension](https://chrome.google.com/webstore/detail/screensharing-for-nextclo/kepnpjhambipllfmgmbapncekcmabkol)).\n* 🚀 **Integration with other Nextcloud apps** like Files, Contacts and Deck. More to come.\n\nAnd in the works for the [coming versions](https://github.com/nextcloud/spreed/milestones/):\n* ✋ [Federated calls](https://github.com/nextcloud/spreed/issues/21), to call people on other Nextclouds",
166166+ "description": "Chat, video & audio-conferencing using WebRTC\r\n\r\n* 💬 **Chat integration!** Nextcloud Talk comes with a simple text chat. Allowing you to share files from your Nextcloud and mentioning other participants.\r\n* 👥 **Private, group, public and password protected calls!** Just invite somebody, a whole group or send a public link to invite to a call.\r\n* 💻 **Screen sharing!** Share your screen with participants of your call. You just need to use Firefox version 66 (or newer), latest Edge or Chrome 72 (or newer, also possible using Chrome 49 with this [Chrome extension](https://chrome.google.com/webstore/detail/screensharing-for-nextclo/kepnpjhambipllfmgmbapncekcmabkol)).\r\n* 🚀 **Integration with other Nextcloud apps** like Files, Contacts and Deck. More to come.\r\n\r\nAnd in the works for the [coming versions](https://github.com/nextcloud/spreed/milestones/):\r\n* ✋ [Federated calls](https://github.com/nextcloud/spreed/issues/21), to call people on other Nextclouds",
157167 "homepage": "https://github.com/nextcloud/spreed",
158168 "licenses": [
159169 "agpl"
···190200 ]
191201 },
192202 "twofactor_webauthn": {
193193- "sha256": "00nll7jfrmqw537r0g07yq7g9lh1kckiiigxgwyd4nh5j6f56v15",
194194- "url": "https://github.com/nextcloud-releases/twofactor_webauthn/releases/download/v1.1.1/twofactor_webauthn-v1.1.1.tar.gz",
195195- "version": "1.1.1",
203203+ "sha256": "1f5zamydsl7lr91md2qmz0wzsfvs8q05qpn96x6i7c6886vx18xf",
204204+ "url": "https://github.com/nextcloud-releases/twofactor_webauthn/releases/download/v1.1.2/twofactor_webauthn-v1.1.2.tar.gz",
205205+ "version": "1.1.2",
196206 "description": "A two-factor provider for WebAuthn devices",
197207 "homepage": "https://github.com/nextcloud/twofactor_webauthn#readme",
198208 "licenses": [
+202
pkgs/servers/nextcloud/packages/26.json
···11+{
22+ "bookmarks": {
33+ "sha256": "0xx331bgly91y8ncxk36ha3ncrr2xlivblfi7rix6ffkrdx73yb9",
44+ "url": "https://github.com/nextcloud/bookmarks/releases/download/v13.0.1/bookmarks-13.0.1.tar.gz",
55+ "version": "13.0.1",
66+ "description": "- 📂 Sort bookmarks into folders\n- 🏷 Add tags and personal notes\n- 🔍 Full-text search\n- 📲 Synchronize with all your browsers and devices\n- 👪 Share bookmarks with other users and publicly\n- ☠ Find broken links\n- ⚛ Generate RSS feeds of your collections\n- 📔 Read archived versions of your links in case they are depublished\n- 💬 Create new bookmarks directly from within Nextcloud Talk\n- 💼 Built-in Dashboard widgets for frequent and recent links\n\nRequirements:\n - PHP v7.4+\n - PHP extensions:\n - intl: *\n - mbstring: *\n - when using MySQL, use at least v8.0",
77+ "homepage": "https://github.com/nextcloud/bookmarks",
88+ "licenses": [
99+ "agpl"
1010+ ]
1111+ },
1212+ "calendar": {
1313+ "sha256": "18jlj2g2b57ibcvqiw3pkkky4rr20xi5plyxl1xjn2bp9l3hng4y",
1414+ "url": "https://github.com/nextcloud-releases/calendar/releases/download/v4.3.0/calendar-v4.3.0.tar.gz",
1515+ "version": "4.3.0",
1616+ "description": "The Calendar app is a user interface for Nextcloud's CalDAV server. Easily sync events from various devices with your Nextcloud and edit them online.\n\n* 🚀 **Integration with other Nextcloud apps!** Currently Contacts - more to come.\n* 🌐 **WebCal Support!** Want to see your favorite team’s matchdays in your calendar? No problem!\n* 🙋 **Attendees!** Invite people to your events\n* ⌚️ **Free/Busy!** See when your attendees are available to meet\n* ⏰ **Reminders!** Get alarms for events inside your browser and via email\n* 🔍 Search! Find your events at ease\n* ☑️ Tasks! See tasks with a due date directly in the calendar\n* 🙈 **We’re not reinventing the wheel!** Based on the great [c-dav library](https://github.com/nextcloud/cdav-library), [ical.js](https://github.com/mozilla-comm/ical.js) and [fullcalendar](https://github.com/fullcalendar/fullcalendar) libraries.",
1717+ "homepage": "https://github.com/nextcloud/calendar/",
1818+ "licenses": [
1919+ "agpl"
2020+ ]
2121+ },
2222+ "contacts": {
2323+ "sha256": "1rdql3m7pg9m044hppyrm3xw329y8h0pzwcmpcinjbjs0vqjssxk",
2424+ "url": "https://github.com/nextcloud-releases/contacts/releases/download/v5.2.0/contacts-v5.2.0.tar.gz",
2525+ "version": "5.2.0",
2626+ "description": "The Nextcloud contacts app is a user interface for Nextcloud's CardDAV server. Easily sync contacts from various devices with your Nextcloud and edit them online.\n\n* 🚀 **Integration with other Nextcloud apps!** Currently Mail and Calendar – more to come.\n* 🎉 **Never forget a birthday!** You can sync birthdays and other recurring events with your Nextcloud Calendar.\n* 👥 **Sharing of Adressbooks!** You want to share your contacts with your friends or coworkers? No problem!\n* 🙈 **We’re not reinventing the wheel!** Based on the great and open SabreDAV library.",
2727+ "homepage": "https://github.com/nextcloud/contacts#readme",
2828+ "licenses": [
2929+ "agpl"
3030+ ]
3131+ },
3232+ "deck": {
3333+ "sha256": "1bx95f8rpvfwh0zf5iaks7w252dfbfh7xngljj58a4nwqv9g613q",
3434+ "url": "https://github.com/nextcloud-releases/deck/releases/download/v1.9.0/deck-v1.9.0.tar.gz",
3535+ "version": "1.9.0",
3636+ "description": "Deck is a kanban style organization tool aimed at personal planning and project organization for teams integrated with Nextcloud.\n\n\n- 📥 Add your tasks to cards and put them in order\n- 📄 Write down additional notes in Markdown\n- 🔖 Assign labels for even better organization\n- 👥 Share with your team, friends or family\n- 📎 Attach files and embed them in your Markdown description\n- 💬 Discuss with your team using comments\n- ⚡ Keep track of changes in the activity stream\n- 🚀 Get your project organized",
3737+ "homepage": "https://github.com/nextcloud/deck",
3838+ "licenses": [
3939+ "agpl"
4040+ ]
4141+ },
4242+ "files_texteditor": {
4343+ "sha256": "0rmk14iw34pd81snp3lm01k07wm5j2nh9spcd4j0m43l20b7kxss",
4444+ "url": "https://github.com/nextcloud-releases/files_texteditor/releases/download/v2.15.0/files_texteditor.tar.gz",
4545+ "version": "2.15.0",
4646+ "description": "This application enables Nextcloud users to open, save and edit text files in the web browser. If enabled, an entry called \"Text file\" in the \"New\" button menu at the top of the web browser appears. When clicked, a new text file opens in the browser and the file can be saved into the current Nextcloud directory. Further, when a text file is clicked in the web browser, it will be opened and editable. If the privileges allow, a user can also edit shared files and save these changes back into the web browser.\nMore information is available in the text editor documentation.",
4747+ "homepage": "https://github.com/nextcloud/files_texteditor",
4848+ "licenses": [
4949+ "agpl"
5050+ ]
5151+ },
5252+ "forms": {
5353+ "sha256": "1hjdwhhx5p9n185b5v0vbxhnarcm83r52hsqq7qwfcfpy86axafr",
5454+ "url": "https://github.com/nextcloud/forms/releases/download/v3.2.0/forms.tar.gz",
5555+ "version": "3.2.0",
5656+ "description": "**Simple surveys and questionnaires, self-hosted!**\n\n- **📝 Simple design:** No mass of options, only the essentials. Works well on mobile of course.\n- **📊 View & export results:** Results are visualized and can also be exported as CSV in the same format used by Google Forms.\n- **🔒 Data under your control!** Unlike in Google Forms, Typeform, Doodle and others, the survey info and responses are kept private on your instance.\n- **🧑💻 Connect to your software:** Easily integrate Forms into your service with our full-fledged [REST-API](https://github.com/nextcloud/forms/blob/main/docs/API.md).\n- **🙋 Get involved!** We have lots of stuff planned like more question types, collaboration on forms, [and much more](https://github.com/nextcloud/forms/milestones)!",
5757+ "homepage": "https://github.com/nextcloud/forms",
5858+ "licenses": [
5959+ "agpl"
6060+ ]
6161+ },
6262+ "groupfolders": {
6363+ "sha256": "0v54642rqlgmcncjrwf5bizj0a816l70k8ndfa68hkypbyp4yxm0",
6464+ "url": "https://github.com/nextcloud-releases/groupfolders/releases/download/v14.0.0/groupfolders-v14.0.0.tar.gz",
6565+ "version": "14.0.0",
6666+ "description": "Admin configured folders shared with everyone in a group.\n\nFolders can be configured from *Group folders* in the admin settings.\n\nAfter a folder is created, the admin can give access to the folder to one or more groups, control their write/sharing permissions and assign a quota for the folder.\n\nNote: Encrypting the contents of group folders is currently not supported.",
6767+ "homepage": "https://github.com/nextcloud/groupfolders",
6868+ "licenses": [
6969+ "agpl"
7070+ ]
7171+ },
7272+ "impersonate": {
7373+ "sha256": "0x5ap5s9qm4lffb022yxx1fmpgjk1w2y95cja4zfd5vc70d37r0s",
7474+ "url": "https://github.com/nextcloud-releases/impersonate/releases/download/v1.13.0/impersonate-v1.13.0.tar.gz",
7575+ "version": "1.13.0",
7676+ "description": "By installing the impersonate app of your Nextcloud you enable administrators to impersonate other users on the Nextcloud server. This is especially useful for debugging issues reported by users.\n\nTo impersonate a user an administrator has to simply follow the following four steps:\n\n1. Login as administrator to Nextcloud.\n2. Open users administration interface.\n3. Select the impersonate button on the affected user.\n4. Confirm the impersonation.\n\nThe administrator is then logged-in as the user, to switch back to the regular user account they simply have to press the logout button.\n\n**Note:**\n\n- This app is not compatible with instances that have encryption enabled.\n- While impersonate actions are logged note that actions performed impersonated will be logged as the impersonated user.\n- Impersonating a user is only possible after their first login.",
7777+ "homepage": "https://github.com/nextcloud/impersonate",
7878+ "licenses": [
7979+ "agpl"
8080+ ]
8181+ },
8282+ "mail": {
8383+ "sha256": "0lx8s7bb0w7d5kvn0np2p4rjjpajbhxf55qqp8ixfjkdcn6gkkxj",
8484+ "url": "https://github.com/nextcloud-releases/mail/releases/download/v3.0.0/mail-v3.0.0.tar.gz",
8585+ "version": "3.0.0",
8686+ "description": "**💌 A mail app for Nextcloud**\n\n- **🚀 Integration with other Nextcloud apps!** Currently Contacts, Calendar & Files – more to come.\n- **📥 Multiple mail accounts!** Personal and company account? No problem, and a nice unified inbox. Connect any IMAP account.\n- **🔒 Send & receive encrypted mails!** Using the great [Mailvelope](https://mailvelope.com) browser extension.\n- **🙈 We’re not reinventing the wheel!** Based on the great [Horde](https://horde.org) libraries.\n- **📬 Want to host your own mail server?** We do not have to reimplement this as you could set up [Mail-in-a-Box](https://mailinabox.email)!",
8787+ "homepage": "https://github.com/nextcloud/mail#readme",
8888+ "licenses": [
8989+ "agpl"
9090+ ]
9191+ },
9292+ "news": {
9393+ "sha256": "026ggjf6dqbjv8hnj6jj1nnqz0256ck2yg13zhln7zc84lhfzlfd",
9494+ "url": "https://github.com/nextcloud/news/releases/download/21.1.0/news.tar.gz",
9595+ "version": "21.1.0",
9696+ "description": "📰 A RSS/Atom Feed reader App for Nextcloud\n\n- 📲 Synchronize your feeds with multiple mobile or desktop [clients](https://nextcloud.github.io/news/clients/)\n- 🔄 Automatic updates of your news feeds\n- 🆓 Free and open source under AGPLv3, no ads or premium functions\n\n**System Cron is currently required for this app to work**\n\nRequirements can be found [here](https://nextcloud.github.io/news/install/#dependencies)\n\nThe Changelog is available [here](https://github.com/nextcloud/news/blob/master/CHANGELOG.md)\n\nCreate a [bug report](https://github.com/nextcloud/news/issues/new/choose)\n\nCreate a [feature request](https://github.com/nextcloud/news/discussions/new)\n\nReport a [feed issue](https://github.com/nextcloud/news/discussions/new)",
9797+ "homepage": "https://github.com/nextcloud/news",
9898+ "licenses": [
9999+ "agpl"
100100+ ]
101101+ },
102102+ "notes": {
103103+ "sha256": "19875sl3wpwnq2wrblfyyxhrp7hpqwazrnmz037yd1vf43crw03d",
104104+ "url": "https://github.com/nextcloud-releases/notes/releases/download/v4.7.0/notes.tar.gz",
105105+ "version": "4.7.0",
106106+ "description": "The Notes app is a distraction free notes taking app for [Nextcloud](https://www.nextcloud.com/). It provides categories for better organization and supports formatting using [Markdown](https://en.wikipedia.org/wiki/Markdown) syntax. Notes are saved as files in your Nextcloud, so you can view and edit them with every Nextcloud client. Furthermore, a separate [REST API](https://github.com/nextcloud/notes/blob/master/docs/api/README.md) allows for an easy integration into third-party apps (currently, there are notes apps for [Android](https://github.com/nextcloud/notes-android), [iOS](https://github.com/nextcloud/notes-ios) and the [console](https://git.danielmoch.com/nncli/about) which allow convenient access to your Nextcloud notes). Further features include marking notes as favorites.",
107107+ "homepage": "https://github.com/nextcloud/notes",
108108+ "licenses": [
109109+ "agpl"
110110+ ]
111111+ },
112112+ "notify_push": {
113113+ "sha256": "1vfa68spnyfivcx0vp49mimf5xg7hsxnifd06imd1c0mw3nlfm4p",
114114+ "url": "https://github.com/nextcloud-releases/notify_push/releases/download/v0.6.0/notify_push-v0.6.0.tar.gz",
115115+ "version": "0.6.0",
116116+ "description": "Push update support for desktop app.\n\nOnce the app is installed, the push binary needs to be setup. You can either use the setup wizard with `occ notify_push:setup` or see the [README](http://github.com/nextcloud/notify_push) for detailed setup instructions",
117117+ "homepage": "",
118118+ "licenses": [
119119+ "agpl"
120120+ ]
121121+ },
122122+ "onlyoffice": {
123123+ "sha256": "10axh9a4w8y3iw95xdjn4q8wjg5459dki42xb6cax5ikimyfv07j",
124124+ "url": "https://github.com/ONLYOFFICE/onlyoffice-nextcloud/releases/download/v7.8.0/onlyoffice.tar.gz",
125125+ "version": "7.8.0",
126126+ "description": "ONLYOFFICE connector allows you to view, edit and collaborate on text documents, spreadsheets and presentations within Nextcloud using ONLYOFFICE Docs. This will create a new Edit in ONLYOFFICE action within the document library for Office documents. This allows multiple users to co-author documents in real time from the familiar web interface and save the changes back to your file storage.",
127127+ "homepage": "https://www.onlyoffice.com",
128128+ "licenses": [
129129+ "apache"
130130+ ]
131131+ },
132132+ "polls": {
133133+ "sha256": "12298sspxp0ap61z2fjlgnd30fn0gl92xa5m6rnx2jb5i39lh9wr",
134134+ "url": "https://github.com/nextcloud/polls/releases/download/v5.0.0-beta4/polls.tar.gz",
135135+ "version": "5.0.0-beta4",
136136+ "description": "A polls app, similar to Doodle/Dudle with the possibility to restrict access (members, certain groups/users, hidden and public).",
137137+ "homepage": "https://github.com/nextcloud/polls",
138138+ "licenses": [
139139+ "agpl"
140140+ ]
141141+ },
142142+ "registration": {
143143+ "sha256": "07dqc670qmdb3c8jjnj7azxxspjhiv6m9nrj960y3rjabyzy25m9",
144144+ "url": "https://github.com/nextcloud-releases/registration/releases/download/v2.1.0/registration-v2.1.0.tar.gz",
145145+ "version": "2.1.0",
146146+ "description": "User registration\n\nThis app allows users to register a new account.\n\n# Features\n\n- Add users to a given group\n- Allow-list with email domains (including wildcard) to register with\n- Administrator will be notified via email for new user creation or require approval\n- Supports Nextcloud's Client Login Flow v1 and v2 - allowing registration in the mobile Apps and Desktop clients\n\n# Web form registration flow\n\n1. User enters their email address\n2. Verification link is sent to the email address\n3. User clicks on the verification link\n4. User is lead to a form where they can choose their username and password\n5. New account is created and is logged in automatically",
147147+ "homepage": "https://github.com/nextcloud/registration",
148148+ "licenses": [
149149+ "agpl"
150150+ ]
151151+ },
152152+ "spreed": {
153153+ "sha256": "0i5n47j8hvngfkiad88j5m37frp3bp4w5r7qaram5dvxmm2rkngc",
154154+ "url": "https://github.com/nextcloud-releases/spreed/releases/download/v16.0.0/spreed-v16.0.0.tar.gz",
155155+ "version": "16.0.0",
156156+ "description": "Chat, video & audio-conferencing using WebRTC\n\n* 💬 **Chat integration!** Nextcloud Talk comes with a simple text chat. Allowing you to share files from your Nextcloud and mentioning other participants.\n* 👥 **Private, group, public and password protected calls!** Just invite somebody, a whole group or send a public link to invite to a call.\n* 💻 **Screen sharing!** Share your screen with participants of your call. You just need to use Firefox version 66 (or newer), latest Edge or Chrome 72 (or newer, also possible using Chrome 49 with this [Chrome extension](https://chrome.google.com/webstore/detail/screensharing-for-nextclo/kepnpjhambipllfmgmbapncekcmabkol)).\n* 🚀 **Integration with other Nextcloud apps** like Files, Contacts and Deck. More to come.\n\nAnd in the works for the [coming versions](https://github.com/nextcloud/spreed/milestones/):\n* ✋ [Federated calls](https://github.com/nextcloud/spreed/issues/21), to call people on other Nextclouds",
157157+ "homepage": "https://github.com/nextcloud/spreed",
158158+ "licenses": [
159159+ "agpl"
160160+ ]
161161+ },
162162+ "tasks": {
163163+ "sha256": "0jm13d6nm7cfsw27yfiq1il9xjlh0qrq8xby2yz9dmggn7lk1dx5",
164164+ "url": "https://github.com/nextcloud/tasks/releases/download/v0.14.5/tasks.tar.gz",
165165+ "version": "0.14.5",
166166+ "description": "Once enabled, a new Tasks menu will appear in your Nextcloud apps menu. From there you can add and delete tasks, edit their title, description, start and due dates and mark them as important. Tasks can be shared between users. Tasks can be synchronized using CalDav (each task list is linked to an Nextcloud calendar, to sync it to your local client: Thunderbird, Evolution, KDE Kontact, iCal … - just add the calendar as a remote calendar in your client). You can download your tasks as ICS files using the download button for each calendar.",
167167+ "homepage": "https://github.com/nextcloud/tasks/",
168168+ "licenses": [
169169+ "agpl"
170170+ ]
171171+ },
172172+ "twofactor_nextcloud_notification": {
173173+ "sha256": "13afyhiy7yk0fcf32792dwabjcixnw5b4hkxykw0xby3hnh0m3l2",
174174+ "url": "https://github.com/nextcloud-releases/twofactor_nextcloud_notification/releases/download/v3.6.0/twofactor_nextcloud_notification-v3.6.0.tar.gz",
175175+ "version": "3.6.0",
176176+ "description": "Allows using any of your logged in devices as second factor",
177177+ "homepage": "https://github.com/nextcloud/twofactor_nextcloud_notification",
178178+ "licenses": [
179179+ "agpl"
180180+ ]
181181+ },
182182+ "twofactor_webauthn": {
183183+ "sha256": "1f5zamydsl7lr91md2qmz0wzsfvs8q05qpn96x6i7c6886vx18xf",
184184+ "url": "https://github.com/nextcloud-releases/twofactor_webauthn/releases/download/v1.1.2/twofactor_webauthn-v1.1.2.tar.gz",
185185+ "version": "1.1.2",
186186+ "description": "A two-factor provider for WebAuthn devices",
187187+ "homepage": "https://github.com/nextcloud/twofactor_webauthn#readme",
188188+ "licenses": [
189189+ "agpl"
190190+ ]
191191+ },
192192+ "unsplash": {
193193+ "sha256": "0zakbrgjc3i6rl0nqwxfsfwybbqpr50c8c10d6s7r9m4gck0y2bm",
194194+ "url": "https://github.com/nextcloud/unsplash/releases/download/v2.2.0/unsplash.tar.gz",
195195+ "version": "2.2.0",
196196+ "description": "Show a new random featured nature photo in your nextcloud. Now with choosable motives!",
197197+ "homepage": "https://github.com/nextcloud/unsplash/",
198198+ "licenses": [
199199+ "agpl"
200200+ ]
201201+ }
202202+}