Commit Graph

504 Commits

Author SHA1 Message Date
Sebastian 3b1789322f
nixos/bookstack: fix error message output (#142722) 2021-10-24 18:16:54 +08:00
Maximilian Bosch a255ac3b23
Merge pull request #141129 from Ma27/nextcloud-secret-backport
[21.05] nixos/nextcloud: put secrets into the environment of nextcloud-setup.service
2021-10-14 15:53:15 +02:00
Linus Heckemann 4c0edbbb08 Revert "nixos/nextcloud: temp fix for MariaDB >=10.6"
This reverts commit f182b8d23b.

This doesn't need to be on 21.05, because 21.05 doesn't have MariaDB
10.6.

It shouldn't be on 21.05 because the package version warning mentions
21.11, which is confusing and misleading.
2021-10-10 09:34:53 +02:00
Maximilian Bosch e33cbdc2de
nixos/nextcloud: put secrets into the environment of nextcloud-setup.service
The `$(</path/to/file)`-expansion appears verbatim in the cmdline of
`nextcloud-occ` which means that an unprivileged user could find
sensitive values (i.e. admin password & database password) by monitoring
`/proc/<pid>/cmdline`.

Now, these values don't appear in a command line anymore, but will be
passed as environment variables to `nextcloud-occ`.

(cherry picked from commit 9f37d6aee028679b8a94be59d74984e708acaa85)
2021-10-09 20:05:38 +02:00
Maximilian Bosch c1541b370a nixos/nextcloud: use php8 where possible
(cherry picked from commit 66edc1e84625ed5b4bed5868f4093a570a822c2e)
2021-10-01 19:13:17 +00:00
Maximilian Bosch f182b8d23b nixos/nextcloud: temp fix for MariaDB >=10.6
The MariaDB version 10.6 doesn't seem supported with current Nextcloud
versions and the test fails with the following error[1]:

    nextcloud # [   14.950034] nextcloud-setup-start[1001]: Error while trying to initialise the database: An exception occurred while executing a query: SQLSTATE[HY000]: General error: 4047 InnoDB refuses to write tables with ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE.

According to a support-thread in upstream's Discourse[2] this is because
of a missing support so far.

Considering that we haven't received any bugreports so far - even though
the issue already exists on master - and the workaround[3] appears to
work fine, an evaluation warning for administrators should be
sufficient.

[1] https://hydra.nixos.org/build/155015223
[2] https://help.nextcloud.com/t/update-to-next-cloud-21-0-2-has-get-an-error/117028/15
[3] setting `innodb_read_only_compressed=0`

(cherry picked from commit 675e262f5a03eb9aa6b0500434ee30a9d6b882a0)
2021-10-01 20:04:06 +02:00
Ryan Mulligan d3bee2a63a discourse: enable restoring backups bigger than RAM
When restoring a backup, discourse decompresses the backup archive in
the /share/discourse/tmp dir. Before this change, it is linked to /run
which is typically backed by memory, so the backup will fail to
restore if you do not have enough memory on your system to contain the
backup. This has already happened to me on two small forums.

This moves tmp to the StateDirectory /var/lib/discourse/tmp which is
typically backed by disk.

(cherry picked from commit f933c68374b9c6195dc74d26c95fc9bf240fead8)
2021-09-24 12:35:53 +00:00
Ryan Mulligan 3061914340 nixos/discourse: add discourse.admin.skipCreate option
(cherry picked from commit 6a9003f31682e57a2a630f5cfdefa2969a64b1b1)
2021-09-23 17:14:07 +00:00
embr 04c2339cc1 nixos/mastodon: Add configurable web- and streaming concurrency
Might as well do this while I'm at it.

(cherry picked from commit 0d719125baee88e2e8d29e6bb2ff3100ba1b2da0)
2021-09-21 19:41:32 +02:00
embr 4f8927c417 nixos/mastodon: Fix sidekiq's DB_POOL, add configurable concurrency
The `services.mastodon` module currently hardcodes sidekiq's concurrency
to 25, but doesn't set a DB pool size, which defaults to 5 or the number
of configured web threads.

(This behaviour is very strange, and arguably a mastodon bug.)

This also makes sidekiq's concurrency configurable, because 25 is a tad
high for the hardware I'm running it on.

(cherry picked from commit e8fd7792d1eeb4ea4943cc34525da1159ab50bc9)
2021-09-21 19:41:32 +02:00
Maximilian Bosch ebd597d2f3 nixos/nextcloud: apply doc fixes suggested by fabaff
Co-authored-by: Fabian Affolter <mail@fabian-affolter.ch>
(cherry picked from commit 767bb4e4bbb9a8d06d4c3cbc14092902c2465f98)
2021-08-31 18:54:20 +00:00
Maximilian Bosch c19b0bf9de nixos/nextcloud: add some notes for `Error: Command "upgrade" is not defined.`
This error occurs if `nextcloud-occ maintenance:install` fails and the
`upgrade` command is attempted to be executed afterwards.

Due to the nature of the installer we can't do much about it, so I guess
it makes sense to add some notes about it. The other notes in the
`Pitfalls`-section are semantically a list of different topics, so I
changed that accordingly now.

Closes #111175

(cherry picked from commit 561418f996fc015f4db48b1c9b7c31338cb280d9)
2021-08-31 18:54:20 +00:00
Maximilian Bosch 0db1a5ee44 nixos/nextcloud: remove invalid `--database-table-prefix` option
This doesn't work anymore and thus breaks the installation leaving a
broken `/var/lib/nextcloud`.

It isn't a big deal since we set this value in the override config
before, so the correct table-prefix is still used. In order to confirm
that, I decided to add a custom prefix to the basic test.

(cherry picked from commit eaeb4fe04ee5a5ffae4f7dc03d3f072d59d80337)
2021-08-28 22:04:40 +00:00
talyz fd169abf9b
discourse.plugins: Make the updater able to package plugins
Let the update.py script handle the initial, repetitive task of
packaging new plugins. With this in place, the plugin only needs to be
added to the list in `update-plugins` and most of the work will be
done automatically when the script is run. Metadata still needs to be
filled in manually and some packages may of course require additional
work/patching.

(cherry picked from commit f8096460bd15d4f13a01cfddf0a30798921fdb42)
2021-08-17 23:16:41 +02:00
talyz 639e1d9639
discourse: Remove leftover link to unused plugins directory
(cherry picked from commit bb14315d51a1c35304dfd82ff5c1faeaaf2c450c)
2021-08-17 23:13:55 +02:00
davidak 1fb9572267
Merge pull request #125221 from NixOS/backport-124404-to-release-21.05
[Backport release-21.05] Small option type adjustments
2021-08-03 06:33:12 +02:00
Valentin Conrad 6a09c14a33 nextcloud: remove expires header
nextcloud default nginx config did not include the expires config
see: https://docs.nextcloud.com/server/latest/admin_manual/installation/nginx.html

(cherry picked from commit ceef268c4b8cca80bd8c9b73bc2b323be13e0970)
2021-07-23 10:33:24 +00:00
talyz 23c806f963 nixos/discourse: Update plugin documentation
Update the documentation regarding plugins to reflect recent changes.

(cherry picked from commit 20548f050e72a789ebbfe413b0fe7aa815e55c27)
2021-07-15 12:54:00 +00:00
Kim Lindberger 5fd730e210
Merge pull request #128823 from NixOS/backport-127931-to-release-21.05
[Backport release-21.05] discourse: Fix plugin support
2021-07-15 14:50:11 +02:00
Maximilian Bosch f8b79de69e
nextcloud22: init at 22.0.0
Simplified, non-breaking version of e05f4101c16f08058a14ac4335886567e1ffe987.
2021-07-12 23:27:57 +02:00
illustris fa8a6d7e0a nixos/jitsi-meet: include jitsi prosody plugins in prosody extraPluginPaths
(cherry picked from commit e0089c38ca2f9f2b9a46ffcf74a9908f53d51459)
2021-07-10 00:02:59 +02:00
illustris 27d38294c6 nixos/jitsi-meet: Update jitsi prosody configs
Changes made as per b6f7f8fba7

(cherry picked from commit 34b9ba2e6161e68febe4312c96c089d707472d5e)
2021-07-10 00:02:59 +02:00
talyz 3b84448e67 discourse: Fix plugin support
For plugins to work properly, their assets need to be precompiled
along with the rest of Discourse's assets. This means we need to build
new packages when the list of plugins change.

(cherry picked from commit 9af3672f4faaafba0ce0129a87fc7925c14eeb61)
2021-06-30 22:07:25 +00:00
talyz a60818cacd treewide: Fix mysql alias deprecation breakage
62733b37b4 broke evaluation in all
places `pkgs.mysql` was used. Fix this by changing all occurrences to
`pkgs.mariadb`.

(cherry picked from commit 59e0120aa5c1241d48048afa615e25c65d7e366d)
2021-06-05 17:11:40 +00:00
Daniel Nagy d71b353d15 nixos/discourse: set port type to `types.port`
(cherry picked from commit 73f9c29a2cd4e298493751ba1e3f1f5750021ad2)
2021-06-01 13:15:24 +00:00
Martin Weinelt f4d6d51a09 nixos/wordpress: regenerate secret keys if misspelled key name is found
A secret key generated by the nixos module was misspelled, which could
possibly impact the security of session cookies.

To recover from this situation we will wipe all security keys that were
previously generated by the NixOS module, when the misspelled one is
found. This will result in all session cookies being invalidated. This
is confirmed by the wordpress documentation:

> You can change these at any point in time to invalidate all existing
> cookies. This does mean that all users will have to login again.

https://wordpress.org/support/article/editing-wp-config-php/#security-keys

Meanwhile this issue shouldn't be too grave, since the salting function
of wordpress will rely on the concatenation of both the user-provided
and automatically generated values, that are stored in the database.

> Secret keys are located in two places: in the database and in the
> wp-config.php file. The secret key in the database is randomly
> generated and will be appended to the secret keys in wp-config.php.

https://developer.wordpress.org/reference/functions/wp_salt/

Fixes: 2adb03fdae ("nixos/wordpress:
generate secrets locally")

Reported-by: Moritz Hedtke <Moritz.Hedtke@t-online.de>
(cherry picked from commit 724ed08df02546fea2ab38613d615dd47461528c)
2021-05-29 20:16:47 +00:00
talyz b423efaeeb nixos/discourse: Assert deployed PostgreSQL version
Assert that the PostgreSQL version being deployed is the one used
upstream. Allow the user to override this assertion, since it's not
always possible or preferable to use the recommended one.

(cherry picked from commit 544adbfcab2e92c2fe5774cae67f2edf165eb97e)
2021-05-28 22:16:10 -07:00
talyz ce5587e7bb discourse: 2.6.5 -> 2.7.0
(cherry picked from commit 42b8e7685d5fe5280f8f6101a6d19016b92f3a5c)
2021-05-28 22:16:10 -07:00
Elis Hirwing e9cca93bf9
Merge pull request #121778 from talyz/keycloak-security
nixos/keycloak: Security fixes + misc
2021-05-21 16:55:26 +02:00
Kerstin Humm 224df6940f nixos/mastodon: use rails command instead of rake
Co-Authored-By: Izorkin <izorkin@elven.pw>
2021-05-21 15:04:12 +02:00
talyz ba00b0946e
nixos/keycloak: Split certificatePrivateKeyBundle into two options
Instead of requiring the user to bundle the certificate and private
key into a single file, provide separate options for them. This is
more in line with most other modules.
2021-05-21 13:09:38 +02:00
talyz dbf91bc2f1
nixos/keycloak: keycloak.database* -> keycloak.database.*
Move all database options to their own group / attribute. This makes
the configuration clearer and brings it in line with most other modern
modules.
2021-05-21 13:09:32 +02:00
talyz 83e406e97a
nixos/keycloak: frontendUrl always needs to be suffixed with /
In some places, Keycloak expects the frontendUrl to end with `/`, so
let's make sure it always does.
2021-05-21 13:09:25 +02:00
talyz 58614f8416
nixos/keycloak: Add myself to maintainers 2021-05-21 13:09:19 +02:00
talyz d748c86389
nixos/keycloak: Improve readablility by putting executables in PATH 2021-05-21 13:09:14 +02:00
talyz 8309368e4c
nixos/keycloak: Set umask before copying sensitive files
`install` copies the files before setting their mode, so there could
be a breif window where the secrets are readable by other users
without a strict umask.
2021-05-21 13:09:09 +02:00
talyz c2bebf4ee2
nixos/keycloak: Improve bash error handling 2021-05-21 13:09:03 +02:00
talyz d6727d28e1
nixos/keycloak: Set the postgresql database password securely
Feeding `psql` the password on the command line leaks it through the
`psql` process' `/proc/<pid>/cmdline` file. Using `echo` to put the
command in a file and then feeding `psql` the file should work around
this, since `echo` is a bash builtin and thus shouldn't spawn a new
process.
2021-05-21 13:08:53 +02:00
talyz 380b52c737
nixos/keycloak: Use replace-secret to avoid leaking secrets
Using `replace-literal` to insert secrets leaks the secrets through
the `replace-literal` process' `/proc/<pid>/cmdline`
file. `replace-secret` solves this by reading the secret straight from
the file instead, which also simplifies the code a bit.
2021-05-19 09:32:28 +02:00
talyz 38398fade1
nixos/discourse: Use replace-secret to avoid leaking secrets
Using `replace-literal` to insert secrets leaks the secrets through
the `replace-literal` process' `/proc/<pid>/cmdline`
file. `replace-secret` solves this by reading the secret straight from
the file instead, which also simplifies the code a bit.
2021-05-19 09:32:06 +02:00
Izorkin feebe402f5
treewide: remove duplicates SystemCallFilters 2021-05-13 15:44:56 +03:00
talyz deb58f6486 nixos/keycloak: Document how to use a custom local database 2021-05-04 19:27:08 +02:00
talyz fdf6bb5b95 Revert "nixos/keycloak: use db username in db init scripts"
This reverts commit d9e18f4e7f.

This change is broken, since it doesn't configure the proper database
username in keycloak when provisioning a local database with a custom
username. Its intended behavior is also potentially confusing and
dangerous, so rather than fixing it, let's revert to the old one.
2021-05-04 19:27:08 +02:00
Aaron Andersen aebebb5752
Merge pull request #119325 from ymarkus/bookstack
bookstack: 0.31.7 -> 21.04.3 + nixos/bookstack: use umask before echoing & clear cache before starting
2021-05-03 20:19:39 -04:00
Yannick Markus 336f3607d4
nixos/bookstack: use umask before echoing & clear cache before starting 2021-05-03 16:27:38 +02:00
Lassulus addfd88117
Merge pull request #117072 from em0lar/keycloak-module-dbuser
nixos/keycloak: use db username in db init scripts
2021-04-29 20:15:19 +02:00
Leo Maroni d9e18f4e7f
nixos/keycloak: use db username in db init scripts 2021-04-29 19:36:29 +02:00
Izorkin 8723d226b4 nixos/mastodon: update SystemCallFilters 2021-04-28 00:44:25 +02:00
Izorkin 47d3e955fc nixos/mastodon/sandbox: add @privileged and @raw-io to SystemCallFilter 2021-04-24 19:12:10 +02:00
Benjamin Koch 8122221c9b nixos/nextcloud: Rename services.nextcloud.nginx.disableImagemagick to services.nextcloud.nginx.enableImagemagick
Enable options are preferred. Suggested here:
https://github.com/NixOS/nixpkgs/pull/115372#issuecomment-821900334
2021-04-22 02:17:12 +02:00