3
0
Fork 0
forked from mirrors/nixpkgs
Commit graph

189 commits

Author SHA1 Message Date
Maximilian Bosch 35b146ca31
nixos/nextcloud: fixup openssl compat change
Upon testing the change itself I realized that it doesn't build properly
because

* the `pname` of a php extension is `php-<name>`, not `<name>`.
* calling the extension `openssl-legacy` resulted in PHP trying to compile
  `ext/openssl-legacy` which broke since it doesn't exist:

      source root is php-8.1.12
      setting SOURCE_DATE_EPOCH to timestamp 1666719000 of file php-8.1.12/win32/wsyslog.c
      patching sources
      cdToExtensionRootPhase
      /nix/store/48mnkga4kh84xyiqwzx8v7iv090i7z66-stdenv-linux/setup: line 1399: cd: ext/openssl-legacy: No such file or directory

I didn't encounter that one before because I was mostly interested in
having a sane behavior for everyone not using this "feature" and the
documentation around this. My findings about the behavior with turning
openssl1.1 on/off are still valid because I tested this on `master` with
manually replacing `openssl` by `openssl_1_1` in `php-packages.nix`.

To work around the issue I had to slightly modify the extension
build-system for PHP:

* The attribute `extensionName` is now relevant to determine the output
  paths (e.g. `lib/openssl.so`). This is not a behavioral change for
  existing extensions because then `extensionName==name`.

  However when specifying `extName` in `php-packages.nix` this value is
  overridden and it is made sure that the extension called `extName` NOT
  `name` (i.e. `openssl` vs `openssl-legacy`) is built and installed.

  The `name` still has to be kept to keep the legacy openssl available
  as `php.extensions.openssl-legacy`.

Additionally I implemented a small VM test to check the behavior with
server-side encryption:

* For `stateVersion` below 22.11, OpenSSL 1.1 is used (in `basic.nix`
  it's checked that OpenSSL 3 is used). With that the "default"
  behavior of the module is checked.

* It is ensured that the PHP interpreter for Nextcloud's php-fpm
  actually loads the correct openssl extension.

* It is tested that (encrypted) files remain usable when (temporarily)
  installing OpenSSL3 (of course then they're not decryptable, but on a
  rollback that should still be possible).

Finally, a few more documentation changes:

* I also mentioned the issue in `nextcloud.xml` to make sure the issue
  is at least mentioned in the manual section about Nextcloud. Not too
  much detail here, but the relevant option `enableBrokenCiphersForSSE`
  is referenced.

* I fixed a few minor wording issues to also give the full context
  (we're talking about Nextcloud; we're talking about the PHP extension
  **only**; please check if you really need this even though it's
  enabled by default).

  This is because I felt that sometimes it might be hard to understand
  what's going on when e.g. an eval-warning appears without telling where
  exactly it comes from.
2022-11-11 14:45:46 +01:00
Maximilian Bosch 61128cba67
nixos/nextcloud: minor docs cleanup for openssl change
* s/NextCloud/Nextcloud/g
* `enableBrokenCiphersForSSE` should be enabled by default for any NixOS
  installation from before 22.11 to make sure existing installations
  don't run into the issue. Not the other way round.
* Update release notes to reflect on that.
* Improve wording of the warning a bit: explain which option to change
  to get rid of it.
* Ensure that basic tests w/o `enableBrokenCiphersForSSE` run with
  OpenSSL 3.
2022-11-10 12:17:43 +01:00
Raito Bezarius 394d4de877
nextcloud25: enable by default broken ciphers for NixOS ≤ 22.11 2022-11-10 12:17:43 +01:00
Raito Bezarius 7eefaeb5e3
nextcloud25: use openssl 1.1 as a PHP extension to fix RC4 encryption 2022-11-10 12:17:43 +01:00
Maximilian Bosch 176676c4cf
Merge pull request #192890 from Enzime/fix/nextcloud-space-passwords
nixos/nextcloud: handle passwords with spaces
2022-11-08 18:02:04 +01:00
Maximilian Bosch ad21c759d4
nixos/nextcloud: fix upgrade warning 2022-11-03 14:32:21 +01:00
Sandro Jäckel 44cdc6104a
nixos/nextcloud: allow changing logType 2022-10-27 23:32:00 +02:00
Maximilian Bosch 40b7f52b8f
nextcloud25: init 2022-10-23 17:20:49 +02:00
Michael Hoang 823e4d2fdb nixos/nextcloud: handle passwords with spaces 2022-09-25 23:57:55 +10:00
pennae 722b99bc0e nixos/*: convert options with admonitions to MD
rendering changes only slightly, most changes are in spacing.
2022-08-31 16:36:16 +02:00
pennae 9547123258 nixos/*: convert internal option descriptions to MD
we'll have to do it eventually, may as well be now.
2022-08-31 16:32:54 +02:00
pennae ef176dcf7e nixos/*: automatically convert option descriptions
conversions were done using https://github.com/pennae/nix-doc-munge
using (probably) rev f34e145 running

    nix-doc-munge nixos/**/*.nix
    nix-doc-munge --import nixos/**/*.nix

the tool ensures that only changes that could affect the generated
manual *but don't* are committed, other changes require manual review
and are discarded.
2022-08-31 16:32:53 +02:00
pennae c915b915b5 nixos/*: md-convert options with unordered lists
mostly no rendering changes. some lists (like simplelist) don't have an
exact translation to markdown, so we use a comma-separated list of
literals instead.
2022-08-31 16:32:53 +02:00
pennae 51a11254a7 nixos/*: literalDocBook -> literalMD
no change to rendered output
2022-08-27 19:18:29 +02:00
Phillip Seeber 9704e9c856 nixos/nextcloud: add option to set fastcgi timeout 2022-08-21 18:14:47 +02:00
pennae 6039648c50 nixos/*: automatically convert option docs 2022-08-19 22:40:58 +02:00
pennae d0ba463fcf nixos/*: replace <quote> with actual quotes 2022-08-19 22:40:58 +02:00
pennae a4fdff515b nixos/*: turn inline code blocks into more appropriate things 2022-08-19 22:40:58 +02:00
pennae 61e93df189 nixos/*: automatically convert option docs to MD
once again using nix-doc-munge (69d080323a)
2022-08-03 22:46:41 +02:00
pennae 3aebb4a2be nixos/*: normalize link format
make (almost) all links appear on only a single line, with no
unnecessary whitespace, using double quotes for attributes. this lets us
automatically convert them to markdown easily.

the few remaining links are extremely long link in a gnome module, we'll
come back to those at a later date.
2022-08-03 21:57:46 +02:00
pennae 16102dce2f nixos/*: replace <code> in option docs with <literal>
markdown can't represent the difference without another extension and
both the html manual and the manpage render them the same, so keeping the
distinction is not very useful on its own. with the distinction removed
we can automatically convert many options that use <code> tags to markdown.

the manpage remains unchanged, html manual does not render
differently (but class names on code tags do change from "code" to "literal").
2022-08-03 21:03:23 +02:00
pennae 2e751c0772 treewide: automatically md-convert option descriptions
the conversion procedure is simple:

 - find all things that look like options, ie calls to either `mkOption`
   or `lib.mkOption` that take an attrset. remember the attrset as the
   option
 - for all options, find a `description` attribute who's value is not a
   call to `mdDoc` or `lib.mdDoc`
 - textually convert the entire value of the attribute to MD with a few
   simple regexes (the set from mdize-module.sh)
 - if the change produced a change in the manual output, discard
 - if the change kept the manual unchanged, add some text to the
   description to make sure we've actually found an option. if the
   manual changes this time, keep the converted description

this procedure converts 80% of nixos options to markdown. around 2000
options remain to be inspected, but most of those fail the "does not
change the manual output check": currently the MD conversion process
does not faithfully convert docbook tags like <code> and <package>, so
any option using such tags will not be converted at all.
2022-07-30 15:16:34 +02:00
stuebinm 3fbc2a433d services/nextcloud: impossible error message 2022-07-06 11:57:44 +02:00
stuebinm 5f4d5fcfa4 services/nextcloud: apply suggestions 2022-07-06 00:16:04 +02:00
stuebinm dd9200c0a4 services/nextcloud: fix a bug 2022-07-06 00:05:31 +02:00
stuebinm c3e03d1199
Merge branch 'master' into nextcloud-secrets 2022-06-30 22:24:44 +02:00
stuebinm ef75aab612 services/nextcloud: more consistent code 2022-06-30 22:21:43 +02:00
Winter d6f59779c6 nixos/nextcloud: remove extraneous nginx config directive 2022-06-26 14:30:59 -04:00
Winter e54ddddd2a nixos/nextcloud: make all services run after nextcloud-setup 2022-06-26 14:29:59 -04:00
Winter 6be3ce36b6 nixos/nextcloud: use mkOption.default for datadir 2022-06-26 14:27:03 -04:00
Elis Hirwing d0862b0ed9
nixos/nextcloud: Upgrade to PHP 8.0 2022-06-08 18:09:07 +02:00
Aleksandar Topuzović fd86efb8c2 nixos/nextcloud: Fix broken config file 2022-05-28 19:14:12 +01:00
Maximilian Bosch 57a8966d03
Merge pull request #171227 from aidalgol/nextcloud-setup-script-fix
nixos/nextcloud: Fix broken error suppression in setup script
2022-05-27 13:23:10 +02:00
Antoine Martin f3f0b60006 nixos/nextcloud: use PHP 8 avoiding broken 2FA app 2022-05-23 18:39:39 +02:00
Maximilian Bosch 33c44a1031
nextcloud22: drop
Version 22 will be EOLed in July 2022[1] and we shouldn't have
unsupported software in the soon-to-be-released NixOS 22.05, hence
dropping it already.

[1] https://github.com/nextcloud/server/wiki/Maintenance-and-Release-Schedule
2022-05-21 18:34:28 +02:00
Aidan Gauland 80367c8db8
nixos/nextcloud: Remove confusing comment
There is a comment above the invocation of 'nextcloud-occ app:enable', stating
that the script should not fail if any of the apps cannot be enabled, but there
is nothing in place to suppress errors.  The app:enable command already
continues installing the remaining apps when one fails to install, and we do not
want to suppress errors in the setup script, so this just removes the comment
about not failing.
2022-05-21 10:36:51 +12:00
Maximilian Bosch f1f849afb8
Merge pull request #171736 from arnottcr/nextcloud
nextcloud24: init at 24.0.0
2022-05-18 12:14:01 +02:00
Maximilian Bosch a0bcf1e9ea
nixos/nextcloud: styling 2022-05-18 11:50:53 +02:00
Maximilian Bosch e46bff9569
nixos/nextcloud: upgrade instructions / info for v23 2022-05-18 11:47:50 +02:00
Maximilian Bosch 6f80d6836a
nixos/nextcloud: mariadb workaround is for versions >=24 not needed anymore 2022-05-18 11:22:31 +02:00
Maximilian Bosch 6e6ba864b3
Merge pull request #130434 from mrVanDalo/feature/fix_nextcloud_logging
nextcloud: fix logging parameter
2022-05-17 18:53:36 +02:00
Maximilian Bosch ab8a7cae2c
nixos/nextcloud: remove unneeded log_level-param
Actually it's called `loglevel` on both v22 and v23.
2022-05-17 18:11:40 +02:00
Aidan Gauland 59244e07f0
nixos/nextcloud: Add option for max-age HSTS directive
* Add an option services.nextcloud.nginx.hstsMaxAge for setting the max-age
  directive of the Strict-Transport-Security HTTP header.

* Make the Strict-Transport-Security HTTP header in the Nginx virtualhost block
  dependant upon the option services.nextcloud.https instead of
  services.nextcloud.nginx.recommendedHttpHeaders, as this header makes no sense
  when not using HTTPS.  (Closes #169465)
2022-05-14 09:04:45 +12:00
Colin Arnott ecd8d42397
nextcloud24: init at 24.0.0
Added Nextcloud 23 and set it as the default Nextcloud version for the
NixOS module. Added PHP 8.1 as an option for phpPackage and default for
Nextcloud ≥ 24.
2022-05-06 00:37:39 +00:00
stuebinm 92fe62e1de
Merge branch 'master' into nextcloud-secrets 2022-04-24 18:43:28 +02:00
stuebinm 095c27c9d5 services/nixos: decode secret file correctly 2022-04-24 18:03:58 +02:00
stuebinm b5af071946 services/nextcloud: apply suggestions from PR 118093 2022-04-24 15:48:00 +02:00
Maximilian Bosch 9931c4a407
nixos/nextcloud: make profile.enabled configurable
I recently learned that Nextcloud 23's new profile feature — basically a
way for users to share personal contact details — has a problematic
default setting, profile data is shared with **everyone** by default.

This means that an unauthenticated user can access personal information
by accessing `nextcloud.tld/u/user.name`.

The announcement of v23 states[1]:

> We go a step further and introduce a profile page. Here you can put a
> description of yourself, show links to, for example, social media, what
> department you are in and information on how to contact you. All these
> are of course entirely optional and you can choose what is visible to who!
> The profile and user status are accessible also from our mobile and desktop clients.

It's not mentioned that by default you share personal information[3] with
everyone and personally I think that's somewhat problematic.

To work around that, I decided to add an option for the recently added[2]
and even set it to `false` by default to make an explicit opt-in for
that feature.

[1] https://nextcloud.com/blog/nextcloud-hub-2-brings-major-overhaul-introducing-nextcloud-office-p2p-backup-and-more/
[2] https://github.com/nextcloud/server/pull/31624/files
[3] By default, this affects the following properties:
    * About
    * Full name
    * Headline
    * Organisation
    * Profile picture
    * Role
    * Twitter
    * Website
    Phone, Address and Email are not affected and only shown to
    authenticated users by default.
2022-04-23 13:31:50 +02:00
Jonas Heinrich 047473aa32 nixos/nextcloud: Support create database locally 2022-04-19 14:35:59 -04:00
Maximilian Bosch 15876a546c
nextcloud21: remove
EOLed by upstream in 2022-02[1].

[1] https://docs.nextcloud.com/server/23/admin_manual/release_schedule.html#older-versions
2022-03-15 21:26:46 +01:00