diff --git a/modules/server/nextcloud.nix b/modules/server/nextcloud.nix index ad393fa..6425ea1 100644 --- a/modules/server/nextcloud.nix +++ b/modules/server/nextcloud.nix @@ -4,25 +4,31 @@ with lib;{ let cfg = config.elss.server.nextcloud; in - mkIf cfg.enable { - elss.server.sql.enable = mkDefault true; - services.nextcloud = { - enable = true; - package = pkgs.nextcloud24; - hostName = "cloudstore.ellmauthaler.net"; - https = true; - config = { - dbtype = "mysql"; - dbuser = "cloudstore_user"; - dbpassFile = config.sops.secrets.cloudstore_user.path; - adminuser = "storemin"; - adminpassFile = config.sops.secrets.storemin.path; - }; - }; - - sops.secrets = { - storemin.sopsFile = ../../secrets/server.yaml; - cloudstore_user.sopsFile = ../../secrets/server.yaml; + mkIf cfg.enable { + elss.server.sql.enable = mkDefault true; + services.nextcloud = { + enable = true; + package = pkgs.nextcloud24; + hostName = "cloudstore.ellmauthaler.net"; + https = true; + config = { + dbtype = "pgsql"; + dbuser = "cloudstore_user"; + dbname = "nextcloud"; + dbpassFile = config.sops.secrets.cloudstore_user.path; + adminuser = "storemin"; + adminpassFile = config.sops.secrets.storemin.path; + dbhost = "/run/postgresql"; }; }; + + systemd.services."nextcloud-setup" = { + requires = [ "postgresql.service" ]; + after = [ "postrgresql.service" ]; + }; + sops.secrets = { + storemin.sopsFile = ../../secrets/server.yaml; + cloudstore_user.sopsFile = ../../secrets/server.yaml; + }; + }; } diff --git a/modules/server/sql.nix b/modules/server/sql.nix index 4bb992e..b78526f 100644 --- a/modules/server/sql.nix +++ b/modules/server/sql.nix @@ -5,9 +5,14 @@ with lib;{ cfg = config.elss.server.sql; in mkIf cfg.enable { - services.mysql = { + services.postgresql = { enable = true; - package = pkgs.mariadb; + package = pkgs.postgresql_14; + ensureDatabases = [ "nextcloud" ]; + ensureUsers = [{ + name = "nextcloud"; + ensurePermissions."DATABASE nextcloud" = "ALL PRIVILEGES"; + }]; }; }; }