]> git.immae.eu Git - perso/Immae/Config/Nix.git/blame - nixops/modules/websites/tools/cloud/default.nix
Add cron background job for nextcloud
[perso/Immae/Config/Nix.git] / nixops / modules / websites / tools / cloud / default.nix
CommitLineData
9d90e7e2 1{ lib, pkgs, config, myconfig, mylibs, ... }:
10889174 2let
9d90e7e2
IB
3 nextcloud = pkgs.callPackage ./nextcloud.nix {
4 env = myconfig.env.tools.nextcloud;
5 };
10889174
IB
6
7 cfg = config.services.myWebsites.tools.cloud;
8in {
9 options.services.myWebsites.tools.cloud = {
10 enable = lib.mkEnableOption "enable cloud website";
11 };
12
13 config = lib.mkIf cfg.enable {
14 security.acme.certs."eldiron".extraDomains."cloud.immae.eu" = null;
15
16 services.myWebsites.tools.modules = nextcloud.apache.modules;
17
18 services.myWebsites.tools.vhostConfs.cloud = {
19 certName = "eldiron";
20 hosts = ["cloud.immae.eu" ];
21 root = nextcloud.webRoot;
22 extraConfig = [
23 nextcloud.apache.vhostConf
24 ];
25 };
26
27 environment.systemPackages = let
28 occ = pkgs.writeScriptBin "nextcloud-occ" ''
29 #! ${pkgs.stdenv.shell}
30 cd ${nextcloud.webRoot}
31 NEXTCLOUD_CONFIG_DIR="${nextcloud.webRoot}/config" \
32 exec \
acaf5190 33 sudo -u wwwrun ${pkgs.php}/bin/php \
10889174
IB
34 -c ${pkgs.php}/etc/php.ini \
35 occ $*
36 '';
37 in [ occ ];
38
39 system.activationScripts.nextcloud = nextcloud.activationScript;
40
41 services.myPhpfpm = {
42 poolPhpConfigs.nextcloud = nextcloud.phpFpm.phpConfig;
43 poolConfigs.nextcloud = nextcloud.phpFpm.pool;
44 };
45
9c35092c
IB
46 services.cron = {
47 enable = true;
48 systemCronJobs = [
49 ''
50 LOCALE_ARCHIVE=/run/current-system/sw/lib/locale/locale-archive
51 */15 * * * * wwwrun ${pkgs.php}/bin/php -f ${nextcloud.webRoot}/cron.php
52 ''
53 ];
54 };
10889174
IB
55 };
56}