diff --git a/machines/fanny/configuration.nix b/machines/fanny/configuration.nix index 1d16e76..4521cf7 100644 --- a/machines/fanny/configuration.nix +++ b/machines/fanny/configuration.nix @@ -69,7 +69,8 @@ in }; services.malobeo.microvm.enableHostBridge = true; - services.malobeo.microvm.deployHosts = [ "overwatch" "infradocs" "nextcloud" "durruti" ]; + services.malobeo.microvm.deployHosts = [ "overwatch" "infradocs" "durruti" ]; + services.malobeo.microvm.client.nextcloud.enable = true; networking = { nat = { diff --git a/machines/modules/malobeo/microvm_client.nix b/machines/modules/malobeo/microvm_client.nix new file mode 100644 index 0000000..89a1807 --- /dev/null +++ b/machines/modules/malobeo/microvm_client.nix @@ -0,0 +1,28 @@ +{config, lib, pkgs, ...}: +let + cfg = config.services.malobeo.microvm.client; +in +{ + options.services.malobeo.microvm.client = { + nextcloud = { + enable = lib.mkEnableOption "enable the nextcloud microvm wrapper"; + datadir = lib.mkOption { + type = lib.types.string; + default = "/data/services/nextcloud/"; + description = "set a custom datadir"; + }; + }; + }; + + config = lib.mkMerge [ + (lib.mkIf cfg.nextcloud.enable { #add check for run-vm? + services.malobeo.microvm.deployHosts = ["nextcloud"]; + microvm.vms.nextcloud.config.microvm.shares = lib.mkAfter [{ + source = cfg.datadir; + mountPoint = "/datadir"; + tag = "nc-datadir"; + proto = "virtiofs"; + }]; + }) + ]; +} \ No newline at end of file diff --git a/machines/nextcloud/configuration.nix b/machines/nextcloud/configuration.nix index a2cacdf..073128f 100644 --- a/machines/nextcloud/configuration.nix +++ b/machines/nextcloud/configuration.nix @@ -37,7 +37,7 @@ with lib; hostName = "cloud.malobeo.org"; config.adminpassFile = config.sops.secrets.nextcloudAdminPass.path; #https = true; #disable for testing - datadir = "/data/services/nextcloud/"; + datadir = "/datadir"; database.createLocally = true; config.dbtype = "pgsql"; configureRedis = true; diff --git a/outputs.nix b/outputs.nix index c8dac17..5e26103 100644 --- a/outputs.nix +++ b/outputs.nix @@ -108,7 +108,7 @@ in (utils.lib.eachSystem (builtins.filter filter_system utils.lib.defaultSystems nixosModules.malobeo = { host.imports = [ ./machines/durruti/host_config.nix ]; - microvm.imports = [ ./machines/modules/malobeo/microvm_host.nix ]; + microvm.imports = [ ./machines/modules/malobeo/microvm_host.nix ./machines/modules/malobeo/microvm_client.nix]; vpn.imports = [ ./machines/modules/malobeo/wireguard.nix ]; initssh.imports = [ ./machines/modules/malobeo/initssh.nix ]; metrics.imports = [ ./machines/modules/malobeo/metrics.nix ];