optionally make nextcloud systemd services depend on mount point
This commit is contained in:
parent
8c2373430d
commit
046ae67083
2 changed files with 28 additions and 1 deletions
|
@ -82,6 +82,13 @@ in
|
||||||
default = "/var/lib/nextcloud";
|
default = "/var/lib/nextcloud";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
mountPointServices = lib.mkOption {
|
||||||
|
description = "If given, all the systemd services and timers will depend on the specified mount point systemd services.";
|
||||||
|
type = lib.types.listOf lib.types.str;
|
||||||
|
default = [];
|
||||||
|
example = lib.literalExpression ''["var.mount"]'';
|
||||||
|
};
|
||||||
|
|
||||||
adminUser = lib.mkOption {
|
adminUser = lib.mkOption {
|
||||||
type = lib.types.str;
|
type = lib.types.str;
|
||||||
description = "Username of the initial admin user.";
|
description = "Username of the initial admin user.";
|
||||||
|
@ -616,10 +623,17 @@ in
|
||||||
systemd.services.phpfpm-nextcloud.preStart = ''
|
systemd.services.phpfpm-nextcloud.preStart = ''
|
||||||
mkdir -p /var/log/xdebug; chown -R nextcloud: /var/log/xdebug
|
mkdir -p /var/log/xdebug; chown -R nextcloud: /var/log/xdebug
|
||||||
'';
|
'';
|
||||||
|
systemd.services.phpfpm-nextcloud.requires = cfg.mountPointServices;
|
||||||
|
systemd.services.phpfpm-nextcloud.after = cfg.mountPointServices;
|
||||||
|
|
||||||
systemd.services.nextcloud-cron.path = [
|
systemd.services.nextcloud-cron.path = [
|
||||||
pkgs.perl
|
pkgs.perl
|
||||||
];
|
];
|
||||||
|
systemd.timers.nextcloud-cron.requires = cfg.mountPointServices;
|
||||||
|
systemd.timers.nextcloud-cron.after = cfg.mountPointServices;
|
||||||
|
|
||||||
|
systemd.services.nextcloud-setup.requires = cfg.mountPointServices;
|
||||||
|
systemd.services.nextcloud-setup.after = cfg.mountPointServices;
|
||||||
|
|
||||||
# Sets up backup for Nextcloud.
|
# Sets up backup for Nextcloud.
|
||||||
shb.backup.instances.nextcloud = {
|
shb.backup.instances.nextcloud = {
|
||||||
|
@ -685,7 +699,8 @@ in
|
||||||
# Configured as defined in https://github.com/nextcloud/previewgenerator
|
# Configured as defined in https://github.com/nextcloud/previewgenerator
|
||||||
systemd.timers.nextcloud-cron-previewgenerator = {
|
systemd.timers.nextcloud-cron-previewgenerator = {
|
||||||
wantedBy = [ "timers.target" ];
|
wantedBy = [ "timers.target" ];
|
||||||
after = [ "nextcloud-setup.service" ];
|
requires = cfg.mountPointServices;
|
||||||
|
after = [ "nextcloud-setup.service" ] + cfg.mountPointServices;
|
||||||
timerConfig.OnBootSec = "10m";
|
timerConfig.OnBootSec = "10m";
|
||||||
timerConfig.OnUnitActiveSec = "10m";
|
timerConfig.OnUnitActiveSec = "10m";
|
||||||
timerConfig.Unit = "nextcloud-cron-previewgenerator.service";
|
timerConfig.Unit = "nextcloud-cron-previewgenerator.service";
|
||||||
|
|
|
@ -83,6 +83,18 @@ shb.nextcloud = {
|
||||||
|
|
||||||
After deploying, the Nextcloud server will be reachable at `http://nextcloud.example.com`.
|
After deploying, the Nextcloud server will be reachable at `http://nextcloud.example.com`.
|
||||||
|
|
||||||
|
### Mount Point {#services-nextcloud-server-mount-point}
|
||||||
|
|
||||||
|
If the `dataDir` exists in a mount point, it is highly recommended to make the various Nextcloud
|
||||||
|
services wait on the mount point before starting. Doing that is just a matter of setting the `mountPointServices` option.
|
||||||
|
|
||||||
|
Assuming a mount point on `/var`, the configuration would look like so:
|
||||||
|
|
||||||
|
```nix
|
||||||
|
fileSystems."/var".device = "...";
|
||||||
|
shb.nextcloud.mountPointServices = [ "var.mount" ];
|
||||||
|
```
|
||||||
|
|
||||||
### With LDAP Support {#services-nextcloud-server-usage-ldap}
|
### With LDAP Support {#services-nextcloud-server-usage-ldap}
|
||||||
|
|
||||||
:::: {.note}
|
:::: {.note}
|
||||||
|
|
Loading…
Reference in a new issue