From fda21e449ae9be419d7e1a390c4c1882e87c316c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20Schr=C3=B6ter?= Date: Wed, 22 Dec 2021 17:36:29 +0100 Subject: [PATCH] feat: add nextcloud --- rpi4.nix | 2 ++ services/nextcloud.nix | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 services/nextcloud.nix diff --git a/rpi4.nix b/rpi4.nix index 6be7131..5ce8f4c 100644 --- a/rpi4.nix +++ b/rpi4.nix @@ -27,6 +27,7 @@ in with builtins; { ./services/owntracks.nix ./services/miniflux.nix ./services/paperless.nix + ./services/nextcloud.nix ]; nixpkgs.config.allowUnfree = true; @@ -66,6 +67,7 @@ in with builtins; { passwordFile = "/etc/nixos/secrets/cfdyndns-apikey"; domains = [ "home.felschr.com" + "cloud.felschr.com" "media.felschr.com" "news.felschr.com" "mqtt.felschr.com" diff --git a/services/nextcloud.nix b/services/nextcloud.nix new file mode 100644 index 0000000..6ab62c5 --- /dev/null +++ b/services/nextcloud.nix @@ -0,0 +1,39 @@ +{ config, pkgs, ... }: + +let host = "cloud.felschr.com"; +in { + services.nextcloud = { + enable = true; + package = pkgs.nextcloud23; + hostName = host; + https = true; + maxUploadSize = "10G"; + config = { + adminuser = "admin"; + adminpassFile = "/etc/nixos/secrets/nextcloud/admin"; + dbtype = "pgsql"; + dbhost = "/run/postgresql"; + }; + autoUpdateApps.enable = true; + }; + + services.nginx.virtualHosts.${hostName} = { + forceSSL = true; + enableACME = true; + }; + + services.postgresql = with config.services.nextcloud.config; { + enable = true; + ensureDatabases = [ dbname ]; + ensureUsers = [{ + name = dbuser; + ensurePermissions."DATABASE ${dbname}" = "ALL PRIVILEGES"; + }]; + }; + + # ensure that postgres is running *before* running the setup + systemd.services."nextcloud-setup" = { + requires = [ "postgresql.service" ]; + after = [ "postgresql.service" ]; + }; +}