Commit Graph

1601 Commits

Author SHA1 Message Date
talyz
b65b9bf73c
nixos/gitlab: Implement better script error handling
Fail scripts on pipeline errors and propagate subshell errors.

If an error occurs in a subshell, including while trying to read a
secret file, we want that error to propagate to the main shell
context. That means we have to set the `inherit_errexit` option, which
allows errors from subshells to propagate to the outer shell. Also,
the subshell cannot run as part of another command, such as `export`,
since that will simply ignore the subshell exit status and only
respect `export`s exit status; first assigning the value to a variable
and then exporting it solves issue.
2022-01-31 13:09:20 +01:00
Simon Bruder
be636c6c96
nixos/nitter: add package option 2022-01-30 20:31:54 +01:00
Janne Heß
016e9e5a7f
Merge pull request #157310 from sternenseemann/nix-conf-validation-2.3
nixos/nix-daemon: fix config validation with 2.3
2022-01-29 23:33:18 +01:00
sternenseemann
e3d8cc81b3 nixos/nix-daemon: fix config validation with 2.3
--option experimental-features is no understood by Nix 2.3.
2022-01-29 21:41:49 +01:00
bb2020
b25719bf88 nixos/mbpfan: update documentation 2022-01-29 12:51:54 +03:00
Moritz Hedtke
a26134ffd4
nixos/nix-daemon: Fix misspelled old option name 2022-01-28 20:32:19 +01:00
Martin Weinelt
268157dc83 nixos/nix-daemon: fix buildMachines eval 2022-01-28 02:00:25 +01:00
Daniel Olsen
5288bcab0a nixos/mx-puppet-discord: Change systemd unit description to avoid newline 2022-01-27 16:49:40 +01:00
polykernel
4a9d9928dc nixos/nix-daemon: use structural settings
The `nix.*` options, apart from options for setting up the
daemon itself, currently provide a lot of setting mappings
for the Nix daemon configuration. The scope of the mapping yields
convience, but the line where an option is considered essential
is blurry. For instance, the `extra-sandbox-paths` mapping is
provided without its primary consumer, and the corresponding
`sandbox-paths` option is also not mapped.

The current system increases the maintenance burden as maintainers have to
closely follow upstream changes. In this case, there are two state versions
of Nix which have to be maintained collectively, with different options
avaliable.

This commit aims to following the standard outlined in RFC 42[1] to
implement a structural setting pattern. The Nix configuration is encoded
at its core as key-value pairs which maps nicely to attribute sets, making
it feasible to express in the Nix language itself. Some existing options are
kept such as `buildMachines` and `registry` which present a simplified interface
to managing the respective settings. The interface is exposed as `nix.settings`.

Legacy configurations are mapped to their corresponding options under `nix.settings`
for backwards compatibility.

Various options settings in other nixos modules and relevant tests have been
updated to use structural setting for consistency.

The generation and validation of the configration file has been modified to
use `writeTextFile` instead of `runCommand` for clarity. Note that validation
is now mandatory as strict checking of options has been pushed down to the
derivation level due to freeformType consuming unmatched options. Furthermore,
validation can not occur when cross-compiling due to current limitations.

A new option `publicHostKey` was added to the `buildMachines`
submodule corresponding to the base64 encoded public host key settings
exposed in the builder syntax. The build machine generation was subsequently
rewritten to use `concatStringsSep` for better performance by grouping
concatenations.

[1] - https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md
2022-01-26 21:04:50 -05:00
Pamplemousse
5148813e17 modules/taskserver: Minor update
* documentation
    - update link
    - minor consistency update
  * make tests pass
2022-01-26 21:56:11 +01:00
Martin Weinelt
89e18a19cd
Merge pull request #156738 from mweinelt/hass-ping 2022-01-26 00:08:47 +01:00
Pascal Bach
ee59b97045
Merge pull request #155473 from yayayayaka/matrix-synapse-administration
nixos/matrix-synapse: Wrap register_new_matrix_user
2022-01-25 22:10:03 +01:00
Pascal Bach
c0ad24ee1d
Merge pull request #155703 from dali99/synapse-webclient
nixos/matrix-synapse: Remove webclient from default listener
2022-01-25 22:03:34 +01:00
Lara
04560b9163 nixos/gitlab: Add additional paths to systemd.tmpfiles.rules
This fixes the NixOS gitlab test failure since gitlab 14.7.0.
2022-01-25 19:05:49 +01:00
Martin Weinelt
d4061dcc6e
nixos/home-assistant: allow capset with components using ping command 2022-01-25 18:29:16 +01:00
Lara
2a701e8061 nixos/matrix-synapse: Wrap register_new_matrix_user
`register_new_matrix_user` is a script provided by the matrix-synapse
package to create a new matrix user on the command line.

This commit provides a wrapper around `register_new_matrix_user` that
automatically passes the url (and `registration_shared_secret`, if
present) as CLI arguments.
2022-01-23 11:27:39 +00:00
K900
6cecc1f603 n8n: 0.105.0 -> 0.160.0, fix build
- regenerate everything
- hardcode to build with node 14 (upstream doesn't support 16 yet)
- remove optional deps to make things build without python2
- set HOME in service environment to prevent crashing

Changes in node-*.nix are autogenerated.
2022-01-22 23:43:56 +03:00
Maximilian Bosch
fde7c9d409
Merge pull request #155499 from bachp/gitea-dump-file
nixos/gitea: allow specifying dump format and name
2022-01-20 20:11:51 +01:00
Daniel Olsen
88362d1a35 nixos/matrix-synapse: Remove webclient from default listener
Webclient only allows serving a web directory under /_matrix/client
This only incentivizes running the client under the same domain as the homeserver.
Which is not recommended due to CORS.
2022-01-19 19:45:57 +01:00
bb2020
272fc86d2c nixos/mbpfan: convert to structural settings 2022-01-18 21:31:33 +03:00
bb2020
6f7bf7bc46 nixos/mbpfan: set aggressive default values 2022-01-18 21:26:52 +03:00
Pascal Bach
fa233bca31 nixos/gitea: allow specifying dump format and name 2022-01-18 18:05:33 +01:00
Artturi
78ff70f529
Merge pull request #153762 from Artturin/ananicymod1 2022-01-18 10:49:13 +02:00
piegames
71358dd070
Merge pull request #154659: nixos/heisenbridge: Improve hardening 2022-01-18 01:30:12 +01:00
Sandro
55c5f68771
Merge pull request #152246 from pasqui23/beesd 2022-01-16 18:08:54 +01:00
piegames
d9172e7a1a fixup! nixos/heisenbridge: Improve hardening 2022-01-13 23:33:23 +01:00
piegames
4b165e7675 nixos/heisenbridge: Fix/improve enable option description
See https://github.com/NixOS/nixpkgs/pull/154831#discussion_r783858597 for context
2022-01-13 13:28:31 +01:00
piegames
854a65fd47 nixos/heisenbridge: Improve hardening
Systemd score is "1.6 OK 🙂"
2022-01-13 13:28:03 +01:00
adisbladis
72908cb5a8 services.heisenbridge: Don't use lt/gt signs in mkEnableOption
It breaks the XML manual generation.
2022-01-13 13:38:24 +12:00
Antoine Martin
08a4548737 nixos/paperless-ng: use own redis instance
Following the changes in #142635
2022-01-07 16:05:18 +01:00
Artturin
be9c5fe4b7 nixos/ananicy: apply cgroup workaround if v2 is enabled 2022-01-06 21:55:42 +02:00
Robert Hensing
70d27303da
Merge pull request #149532 from pennae/split-docs-build
nixos/*: split docs build
2022-01-04 22:33:23 +01:00
piegames
ae040631c9
Merge pull request #142758: Add Heisenbridge module 2022-01-03 18:05:55 +01:00
piegames
4d69ad4b1f nixos/heisenbridge: Init 2022-01-03 15:40:40 +01:00
Philipp
3d47865f7f nixos/matrix-conduit: init 2022-01-03 15:36:56 +01:00
pennae
fc614c37c6 nixos/documentation: split options doc build
most modules can be evaluated for their documentation in a very
restricted environment that doesn't include all of nixpkgs. this
evaluation can then be cached and reused for subsequent builds, merging
only documentation that has changed into the cached set. since nixos
ships with a large number of modules of which only a few are used in any
given config this can save evaluation a huge percentage of nixos
options available in any given config.

in tests of this caching, despite having to copy most of nixos/, saves
about 80% of the time needed to build the system manual, or about two
second on the machine used for testing. build time for a full system
config shrank from 9.4s to 7.4s, while turning documentation off
entirely shortened the build to 7.1s.
2022-01-02 19:46:13 +01:00
Martin Weinelt
15f577daaa
couchpotato, nixos/couchpotato: remove
Using python2 and abadoned upstream in 2020, last release in 2015.
2022-01-02 13:38:11 +01:00
Martin Weinelt
5ecf13007d
nixos/mwlib: remove
Built upon python2 only dependencies that were marked broken since 2019.
2022-01-01 02:09:11 +01:00
pasqui23
4aaa2ba5e6
nixos/beesd: avoid royal we
Co-authored-by: Charles Duffy <charles@dyfis.net>
2021-12-30 01:20:04 +00:00
pennae
55daffc1c9 nixos/sourcehut: add missing defaultText, escape antiquotations 2021-12-29 20:12:03 +01:00
Yureka
407d75ae11 nixos/mautrix-telegram: run alembic only if available 2021-12-29 19:28:24 +01:00
tomberek
94cb489156
Merge pull request #133984 from ju1m/sourcehut
nixos/sourcehut: updates, fixes, hardening
2021-12-28 22:29:36 -05:00
Julien Moutinho
42da4f78d8 nixos/sourcehut: add more tests 2021-12-28 22:18:45 -05:00
Julien Moutinho
e1549f5df9 nixos/sourcehut: fix links to gitsrht-update-hook 2021-12-28 22:18:44 -05:00
Julien Moutinho
ac2a39ac75 nixos/sourcehut: fix post-update-script 2021-12-28 22:18:44 -05:00
Julien Moutinho
96e103cfe3 nixos/sourcehut: fix OnCalendar 2021-12-28 22:18:44 -05:00
Julien Moutinho
8ed7fd0f3a nixos/sourcehut: full rewrite, with fixes and hardening 2021-12-28 22:18:40 -05:00
Pasquale
5c294275b4
nixos/beesd: requres mount for the mount point specified 2021-12-26 20:52:03 +01:00
ajs124
e6188c00f0
Merge pull request #149387 from sumnerevans/matrix-synapse-1.49
matrix-synapse: 1.48.0 -> 1.49.0
2021-12-17 19:51:34 +00:00
Graham Christensen
06edb74413
Merge pull request #148785 from pennae/more-option-doc-staticizing
treewide: more defaultText for options
2021-12-17 11:14:08 -05:00
Sumner Evans
c0a6554847
matrix-synapse: 1.48.0 -> 1.49.0 2021-12-14 10:34:41 -07:00
erdnaxe
cf504b2330
nixos/nitter: remove syslog.target from service (#150224) 2021-12-11 14:45:54 -05:00
Mikael
4c39a29128
modules/nix-daemon: Amend daemon(CPU|IO)Sched(Policy|Class) description (#147497)
Suggest appropriate values for various types of systems and add some
formatting.
2021-12-10 11:30:51 +01:00
pennae
e67a646a92 treewide: add defaultText to remaining options
these are mostly options that use alias bindings, bindings to constants,
or bindings to calculated values.
2021-12-09 01:42:24 +01:00
pennae
2d564521c0 treewide: add literalDocBook text to options with complex defaults
some options have default that are best described in prose, such as
defaults that depend on the system stateVersion, defaults that are
derivations specific to the surrounding context, or those where the
expression is much longer and harder to understand than a simple text
snippet.
2021-12-09 01:38:24 +01:00
pennae
b9950385e5 treewide: make option examples constant
escape interpolations in examples, or replace them where they are not
useful.
2021-12-09 01:38:24 +01:00
pennae
e72435e612 treewide: make option descriptions constants
escape interpolations in descriptions where possible, replace them with
sufficiently descriptive text elsewhere. also expand cfg.* paths in
descriptions.
2021-12-09 01:21:04 +01:00
pennae
ed673a69db treewide: add defaultText for options with simple cfg.* expression defaults
adds defaultText for options with defaults that use only literals, full config.*
paths, and the cfg shortcut binding.
2021-12-09 01:14:16 +01:00
pennae
fb0e5be843 treewide: add defaultText for options with simple interpolation defaults
adds defaultText for all options that use `cfg.*` values in their
defaults, but only for interpolations with no extra processing (other
than toString where necessary)
2021-12-09 01:13:48 +01:00
pennae
e24a8775a8 treewide: set defaultText for options using simple path defaults
adds defaultText for all options that set their default to a path expression
using the ubiquitous `cfg` shortcut bindings.
2021-12-09 01:12:13 +01:00
Janne Heß
e14d34f80f
nixos/dysnomia: Type all options 2021-12-07 18:53:18 +01:00
Martin Weinelt
1d1b09c7c1
Merge pull request #148752 from sweber83/sw/zigbee2mqtt-1.22.1 2021-12-06 22:54:42 +01:00
Martin Weinelt
96d69e40f2 nixos/zigbee2mqtt: run as zigbee2mqtt group
Not setting a group is a security defect, since that will run the unit
under the root group.

Fixes: 1af87596 ("nixos/zigbee2mqtt: init")
2021-12-06 18:30:01 +01:00
Simon Weber
200c36255f nixos/zigbee2mqtt: no longer pass dataDir to package 2021-12-06 18:28:59 +01:00
Robert Hensing
862d167f17
Merge pull request #147441 from pennae/option-doc-staticizing
nixos/*: add trivial defaultText to options where applicable
2021-12-06 01:35:38 +01:00
pennae
c694c35f9d nixos/*: escape pkgs reference in examples and descriptions 2021-12-06 00:38:05 +01:00
Artturi
493d66a225
Merge pull request #145732 from gardspirito/mx-puppet-discord 2021-12-04 23:12:09 +02:00
pennae
2512455639 nixos/*: add trivial defaultText for options with simple defaults 2021-12-02 22:35:04 +01:00
Martin Weinelt
254dd2a102 nixos/home-assistant: consider extraComponents in hardening
Previously the extraComponents added to an overriden package would not
have been considered in hardening measures enforced by the module.

Home Assistant is warning the user about component definitions having
moved away from YAML, so using an override to include support for a
component might become the better way moving forward.
2021-12-01 01:09:52 +01:00
Thiago Kenji Okada
25cdc0a9c9
Merge pull request #147490 from illdefined/nix-daemon
modules/nix-daemon: Add missing mk(Rename|Removed)OptionModule
2021-11-26 19:31:02 -03:00
Mikael Voss
257e92258e
modules/nix-daemon: Add missing mk(Rename|Removed)OptionModule
Commit 3a92a1a replaced the nix.daemonNiceLevel and nix.daemonIONiceLevel
options. This commit adds appropriate mk(Rename|Removed)OptionModule.
2021-11-26 13:25:20 +01:00
Samuel Dionne-Riel
8e92630aae nixos: Provide nix-bash-completions again for stable commands 2021-11-26 02:16:56 -05:00
Sandro
338bf1f1b2
Merge pull request #143995 from erictapen/systemd-workingdirectory 2021-11-22 16:25:54 +01:00
Victor Freire
47f638403e nixos/xmrig: add kernel module msr 2021-11-17 18:53:58 -03:00
Victor Freire
ed312a6815 nixos/xmrig: add services.xmrig to module-list.nix 2021-11-17 12:29:40 -03:00
Artturin
a7ea834b17 nixos/plex: replace literalExample with literalExpression 2021-11-16 20:37:44 +02:00
Sandro
a0a5e0be1c
Merge pull request #139553 from andrew-d/andrew/plex-scanners 2021-11-16 19:17:31 +01:00
Mikael Voss
ee8e993fd4 modules/nix-daemon: Replace daemon(IO)NiceLevel options
The nix.daemonNiceLevel options allows for setting the nice level of the
Nix daemon process. On a modern Linux kernel with group scheduling the
nice level only affects threads relative to other threads in the same
task group (see sched(7)). Therefore this option has not the effect one
might expect.

The options daemonCPUSchedPolicy and daemonIOSchedClass are introduced
and the daemonIONiceLevel option renamed to daemonIOSchedPrority for
consistency. These options allow for more effective control over CPU
and I/O scheduling.

Instead of setting daemonNiceLevel to a high value to increase the
responsiveness of an interactive system during builds -- which would not
have the desired effect, as described above -- one could set both
daemonCPUSchedPolicy and daemonIOSchedClass to idle.
2021-11-15 18:34:17 +01:00
gardspirito
a3358146df
nixos/mx-puppet-discord: provide registration file & fix typo in settings example 2021-11-13 13:27:56 +03:00
Artturin
8743e81cd3 nixos/ananicy: init 2021-11-11 02:05:42 +02:00
Victor Freire
46180e407e nixos/xmrig: init 2021-11-06 15:04:14 -03:00
Kerstin Humm
6c8e827c23
nixos/gollum: Specify systemd WorkingDirectory 2021-10-31 13:37:00 +01:00
Flakebi
cb5186feea
signald: add module
Based on https://gitlab.com/coffeetables/myrdd/-/blob/master/modules/signald.nix
2021-10-29 22:48:10 +02:00
Pascal Wittmann
89a0ec8f3c
Merge pull request #142028 from NixOS/bugfix/subsonic-needs-jdk8
nixos/subsonic: use jre8
2021-10-18 20:44:41 +02:00
Pascal Wittmann
14c5fe8c1b
nixos/subsonic: use jre8
The latest version of Subsonic (6.1.6) does not suport Java SE 9 or later
because it depends on the JAXB APIs. Those are considered to be Java EE
APIs are no longer contained on the default classpath in Java SE 9 and
are completely removed in Java SE 11..
2021-10-17 22:55:05 +02:00
Artturi
3dac8b26d3
Merge pull request #141709 from rembo10/sickbeard-service-fix 2021-10-15 08:45:22 +03:00
rembo10
e8d0afd8d1 nixos/sickbeard: fix the startup command 2021-10-15 08:00:36 +03:00
John Ericson
f2a619bcca
Merge pull request #118960 from kquick/assert_buildmachine_system
nixos/nix-daemon: assert system or systems for buildMachines.
2021-10-14 23:51:58 -04:00
David Reaver
3d79c9250a nixos/prowlarr: init 2021-10-10 14:05:33 -07:00
Maximilian Bosch
cbfe4a42f6
Merge pull request #140979 from Ma27/matrix-workers
nixos/matrix-synapse: minor improvements to implement worker-support
2021-10-09 15:24:41 +02:00
Maximilian Bosch
b0ab15b0a1
nixos/matrix-synapse: expose rendered config file as readOnly option 2021-10-08 14:51:28 +02:00
Emil Karlson
d77c75a98e nixos/nix-daemon: Clarify daemonNiceLevel
The option doesn not currently do what some people expect,
clarify the limitations in documentation.
2021-10-08 13:59:35 +03:00
Robert Hensing
4bed9d16cc
Merge pull request #139325 from illdefined/nix-daemon-nice-level
modules/nix-daemon: Explain nice level limitations
2021-10-08 12:12:36 +02:00
Kevin Cox
709b594db4
Merge pull request #137438 from kevincox/mautrix-facebook-module
nixos.mautrix-facebook: init module
2021-10-07 06:36:52 -04:00
John Ericson
cc3f2432d0 nixos/nix-daemon: Add enable option
Don't worry, it's is true by default. But I think this is important to
have because NixOS indeed shouldn't need Nix at run time when the
installation is not being modified, and now we can verify that.

NixOS images that cannot "self-modify" are a legitamate
use-case that this supports more minimally. One should be able to e.g. do a
sshfs mount and use `nixos-install` to modify them remotely, or just
discard them and build fresh ones if they are run VMs or something.

The next step would be to make generations optional, allowing just
baking `/etc` and friends rather than using activation scripts. But
that's more involved so I'm leaving it out.
2021-10-06 16:43:48 -04:00
Yureka
2384362ca7 nixos/gitea: fix eval after #136909 2021-10-05 12:35:34 +02:00
Kevin Cox
ed5403efc3
nixos.mautrix-facebook: init module
This is the first version of the mautrix-facebook module. Due to lack of secret support on NixOS as well as the requirement of a homeserver domain it requires some setup. For completeness here is my working config using NixOps secrets:

```nix
deployment.keys."mautrix-facebook-config.env" = {
	text = ''
		MAUTRIX_FACEBOOK_APPSERVICE_AS_TOKEN=${secrets.as_token}
		MAUTRIX_FACEBOOK_APPSERVICE_HS_TOKEN=${secrets.hs_token}
	'';
	destDir = "/var/keys";
};

deployment.keys."mautrix-facebook-registration.yaml" = {
	text = builtins.toJSON config.services.mautrix-facebook.registrationData;
	destDir = "/var/keys";
	user = "matrix-synapse";
};

users.users.matrix-synapse.extraGroups = ["keys"];

systemd.services.matrix-synapse.after = ["keys.service"];
systemd.services.matrix-synapse.wants = ["keys.service"];

services.mautrix-facebook = {
	enable = true;
	settings = {
		homeserver.domain = "bots.kevincox.ca";

		bridge = {
			displayname_template = "{displayname}";

			permissions = {
				"@kevincox:matrix.org" = "admin";
			};
		};
	};

	environmentFile = "/var/keys/mautrix-facebook-config.env";

	registrationData = {
		as_token = secrets.as_token;
		hs_token = secrets.hs_token;
	};
};

systemd.services.mautrix-facebook = rec {
	wants = ["keys.target"];
	after = wants;
};

services.matrix-synapse.app_service_config_files = [
	"/var/keys/mautrix-facebook-registration.yaml"
];
```
2021-10-04 18:40:28 -04:00
Robert Hensing
0699530f08
Merge pull request #136909 from ncfavier/cleanup-defaults-examples
nixos/doc: clean up defaults and examples
2021-10-04 20:37:42 +02:00
Naïm Favier
2ddc335e6f
nixos/doc: clean up defaults and examples 2021-10-04 12:47:20 +02:00
Jörg Thalheim
0f5218878c
Merge pull request #140343 from Artturin/cfdynststartat
cfdyndns: fix startAt by setting it to *:0/5 instead of 5 minutes
2021-10-03 06:37:27 +01:00