Commit graph

100 commits

Author SHA1 Message Date
Symphorien Gibol 7a87973b4c nixos/users: require one of users.users.name.{isSystemUser,isNormalUser}
As the only consequence of isSystemUser is that if the uid is null then
it's allocated below 500, if a user has uid = something below 500 then
we don't require isSystemUser to be set.

Motivation: https://github.com/NixOS/nixpkgs/issues/112647
2021-04-14 20:40:00 +02:00
Benjamin Koch 6e6f5f0923 nixos/nextcloud: Rename option to services.nextcloud.disableImagemagick
... as was suggested in the related issue
2021-03-09 00:38:39 +01:00
Benjamin Koch e30311bc68 nixos/nextcloud: Conditionally enable ImageMagick PHP extension 2021-03-08 01:06:48 +01:00
Maximilian Bosch 690449f3ae
nixos/nextcloud: enable apc cache for cli if apcu is enabled
As described in the admin manual[1] of Nextcloud.

[1] https://docs.nextcloud.com/server/21/admin_manual/configuration_server/caching_configuration.html#id1
2021-03-04 21:13:51 +01:00
Maximilian Bosch 797721423c
nixos/nextcloud: update nginx config
Please note that I didn't use the current nginx config from the
administration manual as this would've broken ACME challenges[1].

Also added a fix for Microsoft clients.

[1] https://github.com/nextcloud/documentation/pull/5825#issuecomment-783977761
2021-02-24 23:01:14 +01:00
Maximilian Bosch b1f65920c3
nixos/nextcloud: add defaultPhoneRegion option for v21 2021-02-24 22:27:39 +01:00
Maximilian Bosch f7011c70f3
nextcloud21: init at 21.0.0, set as default version
ChangeLog: https://nextcloud.com/changelog/#latest21

* Packaged 21.0.0, test-deployed it to my personal instance and tested
  the most basic functionality (`davfs2`-mount, {card,cal}dav sync, file
  management).

* Bumped the default version for unstable/21.05 to `nextcloud21`. Since
  `nextcloud20` was added after the release of 20.09 (and thus the
  default on 20.09 is still `nextcloud19`), it's now needed to upgrade
  across two majors.

  This is not a problem though since it's possible to upgrade to v20 on
  20.09 already and if not, the module will guard the administrator
  through the upgrade with eval warnings as it's the case since 20.03.

* Dropped `nextcloud17` attribute and marked `nextcloud18` as EOL.
2021-02-22 13:04:42 +01:00
Jade f83d4f86d5
Nextcloud redirect fix 2021-02-16 11:58:38 -05:00
Maximilian Bosch 274109a8d6
Merge pull request #113108 from Ma27/nextcloud-acme
nixos/nextcloud: fix regex to not return 404 on ACME challenges
2021-02-15 18:53:35 +01:00
Maximilian Bosch f89652a23e
nixos/nextcloud: redirect /.well-known/*dav to https url
Fixes #113155
2021-02-15 11:03:12 +01:00
Maximilian Bosch 055b7e2a5d
nixos/nextcloud: fix regex to not return 404 on ACME challenges
Fixes #113027
2021-02-14 12:23:16 +01:00
Luke Granger-Brown cfed3b8b22 treewide: update 21.03 to 21.05
The NixOS 21.03 release has been delayed to 21.05. See NixOS/rfcs#80.

There are two instances of 21.03 which have been left as is, since they
are in stateVersion comparisons. This will ensure that existing user
configurations which refer to 21.03 will continue to work.
2021-02-12 14:12:48 -08:00
Maximilian Bosch 31b1137c1d
Merge pull request #112013 from Ma27/nextcloud-file-check
nixos/nextcloud: fail early if {admin,db}passFile is not readable
2021-02-06 21:56:03 +01:00
Maximilian Bosch 778238c6b1
Merge pull request #109144 from sephalon/nextcloud-service-doc
nixos/nextcloud: document adminpassFile permissions
2021-02-05 12:54:59 +01:00
Maximilian Bosch f4817027c1
nixos/nextcloud: fail early if {admin,db}passFile is not readable
Otherwise `nextcloud-setup.service` fails during the installation and
thus leaves a corrupted state.
2021-02-05 12:34:08 +01:00
Manuel Bärenz 0ff63a3fa6 nixos/nextcloud: Conditionally enable caching PHP extensions 2021-01-27 11:05:08 +01:00
Aaron Andersen f72c123b6e nixos/nextcloud: remove duplicate php.ini entries 2021-01-27 11:05:07 +01:00
Aaron Andersen 434a2783b8 nixos/nextcloud: add phpExtraExtensions option 2021-01-27 11:05:00 +01:00
Stefan Wiehler b6f8ee9f83 nixos/nextcloud: document adminpassFile permissions 2021-01-12 19:31:14 +01:00
Robbert Gurdeep Singh caa725a6fd nixos/nextcloud: fix missing quotes arround $* in occ wrapper and replace with $@
This will allow this to work:
    nextcloud-occ config:app:set theming slogan --value="A place for testing"
2020-12-24 21:02:05 +01:00
Maximilian Bosch 81662d4798
nixos/nextcloud: improve error message for invalid dbpassFile
`file_exists` also returns `FALSE` if the file is in a directory that
can't be read by the user. This e.g. happens if permissions for
`nixops(1)`-deployment keys aren't configured correctly.

This patch improves the error message for invalid files to avoid
confusion[1].

[1] https://discourse.nixos.org/t/nixops-deploy-secrets-to-nextcloud/10414/4
2020-12-09 19:54:43 +01:00
Jörg Thalheim b7a2a5f967
nixos/nextcloud: fix several php endpoints 2020-10-26 05:06:43 +01:00
Linus Heckemann 3e3f81aeac
Merge pull request #99658 from Ma27/nextcloud-copy-fix
nixos/nextcloud: fix nginx config to allow copy/move-operations again
2020-10-08 09:35:32 +02:00
Maximilian Bosch 9cbe30e129
nixos/nextcloud: --database-pass must not be empty for pgsql/mysql
This is a breaking change from `nextcloud20`. However, the affected test
is still passing with an unused database password and socket
authentication.
2020-10-06 20:22:48 +02:00
Maximilian Bosch 227ba90b28
nixos/nextcloud: update nginx config for nextcloud20
See #97666 for further context.
2020-10-06 20:22:47 +02:00
Maximilian Bosch 5f67a62d59
nixos/nextcloud: update upgrade-path for nextcloud20
Please note that this is only for 21.03 since `nextcloud19` is intended
to be the default for the already feature-frozen 20.09 (the bump itself
is supposed to get backported however).
2020-10-06 20:22:47 +02:00
Maximilian Bosch 609c4f497d
nixos/nextcloud: fix nginx config to allow copy/move-operations again 2020-10-05 22:25:30 +02:00
Maximilian Bosch 71098fba81
nextcloud20: init 2020-10-04 21:55:58 +02:00
Maximilian Bosch 08cc63b20b
Merge pull request #97666 from Ma27/nextcloud-nginx
nixos/nextcloud: fix `nginx`-config for Nextcloud 19 and older
2020-10-04 13:51:52 +02:00
Maximilian Bosch 6b48deee54
nixos/nextcloud: drop nextcloud17, deprecate nextcloud18
Both packages will get EOLed within the lifetime of 20.09. `nextcloud17`
can be removed entirely (the attribute-path is kept however to provide
meaningful errors), however `nextcloud18` must be kept as `insecure` to
make sure that users from `nextcloud17` can properly upgrade to
`nextcloud19` on NixOS 20.09.
2020-09-27 19:21:21 +02:00
Maximilian Bosch 8d8871c565
nixos/nextcloud: fix nginx-config for Nextcloud 19 and older
It seems as I misconfigured `nginx` for certain cases such as the
`ldap`-plugin[1] in 42f6244899. This patch
fixes the `nginx`-config to match the upstream recommendations[2].

Also added a comment to the module to remind myself to ensure that
`nginx` will work with both v19 and v20 as soon as the latter is
released and can be packaged in `nixpkgs`.

Co-authored-by: nivadis <nivadis@users.noreply.github.com>

[1] https://github.com/nextcloud/server/issues/16194#issuecomment-688839888
[2] https://docs.nextcloud.com/server/19/admin_manual/installation/nginx.html
2020-09-10 16:50:36 +02:00
Martin Weinelt a153452e54
Merge pull request #95508 from Ma27/nextcloud-nginx
nixos/nextcloud: update nginx config
2020-08-17 13:46:47 +02:00
Maximilian Bosch e8bdadb864
Merge pull request #95109 from Ma27/nextcloud-reverse-proxy
nixos/nextcloud: add documentation for alternative reverse-proxies
2020-08-16 18:09:45 +02:00
Maximilian Bosch 42f6244899
nixos/nextcloud: update nginx config
This patch ensures that latest Nextcloud works flawlessly again on our
`nginx`. The new config is mostly based on upstream recommendations
(again)[1]:

* Trying to access internals now results in a 404.
* All `.php`-routes get properly resolved now.
* Removed 404/403 handling from `nginx` as the app itself takes care of
  this. Also, this breaks the `/ocs`-API.
* `.woff2?`-files expire later than other assets like images.

Closes #95293

[1] https://docs.nextcloud.com/server/latest/admin_manual/installation/nginx.html
2020-08-15 17:12:11 +02:00
Maximilian Bosch fddeb7cb73
Revert "nextcloud: use mkDefault for whole nginx config"
This breaks the Nextcloud vhost declaration when adding e.g. another
vhost as the `services.nginx.virtualHosts` option has `{ nextcloud =
...; }` as *default* value which will be replaced by another
`virtualHosts`-declaration with a higher (e.g. the default) priority.

The following cases are now supported & covered by the module:

* `nginx` is enabled with `nextcloud` enabled and other vhosts can be
  added / other options can be declared without having to care
  about the declaration's priority.

* Settings in the `nextcloud`-vhost in `nginx` have to be altered using
  `mkForce` as this is the only way how we officially support `nginx`
  for `nextcloud` and customizations have to be done explicitly using
  `mkForce`.

* `nginx` will be completely omitted if a user enables nextcloud
  and disables nginx using `services.nginx.enable = false;`. (because
  nginx will be enabled by this module using `mkDefault`).

This reverts commit 128dbb31cc.
Closes #95259
2020-08-12 18:28:45 +02:00
Maximilian Bosch dd957c2cb7
nixos/nextcloud: add documentation for alternative reverse-proxies
Follow-up for #93584[1]. This change adds a simple example how to use
`Nextcloud` with `httpd`.

[1] https://github.com/NixOS/nixpkgs/pull/93584#discussion_r465233063
2020-08-10 22:09:01 +02:00
DavHau 128dbb31cc nextcloud: use mkDefault for whole nginx config 2020-08-05 11:50:26 +07:00
DavHau ca916e8cb3 nextcloud: deprecate nginx, use chgrp, mkDefault for nginx, fix tests 2020-08-03 14:21:45 +07:00
DavHau b90a70d53f
nextcloud: shorten nginx group reference
Co-authored-by: Aaron Andersen <aaron@fosslib.net>
2020-07-27 20:20:13 +07:00
DavHau 5823ed7841 nextcloud: fix group permissions on startup 2020-07-27 12:41:42 +07:00
DavHau fd9eb16b24 nextcloud: restrict web server support to nginx only 2020-07-27 12:06:04 +07:00
DavHau 6ee3004132 nextcloud improve user/group handling
- remove optons cfg.user, cfg.groups
- add option `serverUser` which is required when not using nginx
- add `serverUser` to nextcloud group
- set user/group to "nextcloud" for nextcloud services
- make setup-service non-root
2020-07-26 15:54:23 +07:00
DavHau 07076e9fe0 nextcloud: configurable user and group, enabled nginx, improve setup 2020-07-21 08:23:45 +00:00
Maximilian Bosch c9462630bd
Merge pull request #91149 from nlewo/nextcloud-expose-occ
nixos/nextcloud: add occ internal option
2020-06-20 19:28:25 +02:00
Maximilian Bosch f326e5a35e
nixos/nextcloud: update upgrade-path for nextcloud19
Enhance the heuristics to make sure that a user doesn't accidentally
upgrade across two major versions of Nextcloud (e.g. from v17 to v19).

The original idea/discussion has been documented in the nixpkgs manual[1].

This includes the following changes:

* `nextcloud19` will be selected automatically when having a stateVersion
  greater or equal than 20.09. For existing setups, the package has to
  be selected manually to avoid accidental upgrades.

* When using `nextcloud18` or older, a warning will be thrown which recommends
  upgrading to `nextcloud19`.

* Added a brief paragraph about `nextcloud19` in the NixOS 19.09 release
  notes.

* Restart `phpfpm` if the Nextcloud-package (`cfg.package`) changes[2].

[1] https://nixos.org/nixos/manual/index.html#module-services-nextcloud-maintainer-info
[2] https://github.com/NixOS/nixpkgs/pull/89427#issuecomment-638885727
2020-06-20 11:30:11 +02:00
Antoine Eiche 7d994ad445 nixos/nextcloud: add occ internal option
This option exposes the prefconfigured nextcloud-occ
program. nextcloud-occ can then be used in other systemd services or
added in environment.systemPackages.

The nextcloud test shows how it can be add in
environment.systemPackages.
2020-06-20 09:59:27 +02:00
Maximilian Bosch a2a5aa2634
nextcloud19: init at 19.0.0
https://nextcloud.com/blog/nextcloud-hub-brings-productivity-to-home-office/
2020-06-19 22:16:52 +02:00
Antoine Eiche cb682317b0 nixos/nextcloud: preserve OC_PASS env variable in the occ wrapper
The OC_PASS environment variable can be used to create a user with
`occ user:add --password-from-env`. It is currently not possible to
use the `nextcloud-occ` to "non-interactively" create a user since
this variable is ignored by sudo.
2020-06-07 20:47:11 +02:00
talyz 2ba7926959
php.buildEnv: Provide a list of currently enabled extensions
Rework withExtensions / buildEnv to handle currently enabled
extensions better and make them compatible with override. They now
accept a function with the named arguments enabled and all, where
enabled is a list of currently enabled extensions and all is the set
of all extensions. This gives us several nice properties:

 - You always get the right version of the list of currently enabled
   extensions

 - Invocations chain

 - It works well with overridden PHP packages - you always get the
   correct versions of extensions

As a contrived example of what's possible, you can add ImageMagick,
then override the version and disable fpm, then disable cgi, and
lastly remove the zip extension like this:

{ pkgs ? (import <nixpkgs>) {} }:
with pkgs;

let
  phpWithImagick = php74.withExtensions ({ all, enabled }: enabled ++ [ all.imagick ]);

  phpWithImagickWithoutFpm743 = phpWithImagick.override {
    version = "7.4.3";
    sha256 = "wVF7pJV4+y3MZMc6Ptx21PxQfEp6xjmYFYTMfTtMbRQ=";
    fpmSupport = false;
  };

  phpWithImagickWithoutFpmZip743 = phpWithImagickWithoutFpm743.withExtensions (
    { enabled, all }:
      lib.filter (e: e != all.zip) enabled);

  phpWithImagickWithoutFpmZipCgi743 = phpWithImagickWithoutFpmZip743.override {
    cgiSupport = false;
  };
in
  phpWithImagickWithoutFpmZipCgi743
2020-04-26 16:43:05 +02:00
worldofpeace 15d5a2adc1
Merge pull request #84849 from samueldr/fix/nextcloud-upgrade-wording
nextcloud: Review installation upgrade warning wording
2020-04-10 22:55:20 -04:00