1 Commits

Author SHA1 Message Date
ahtlon
edddfc5e3f [nextcloud module] add wrapper example
Some checks failed
Check flake syntax / flake-check (push) Failing after 2m45s
2025-01-29 11:20:12 +01:00
7 changed files with 33 additions and 28 deletions

1
.gitignore vendored
View File

@@ -6,4 +6,3 @@ result
.direnv/
book/
fanny-efi-vars.fd
nix-store-overlay.img

View File

@@ -20,13 +20,6 @@ in
inputs.self.nixosModules.malobeo.metrics
];
virtualisation.vmVariantWithDisko = {
virtualisation = {
memorySize = 4096;
cores = 3;
};
};
malobeo.metrics = {
enable = true;
enablePromtail = true;
@@ -63,11 +56,6 @@ in
};
};
systemd.tmpfiles.rules = [
"L /var/lib/microvms/data - - - - /data/microvms"
"d /data/microvms 0755 root root" #not needed for real host?
];
malobeo.initssh = {
enable = true;
authorizedKeys = sshKeys.admins;
@@ -81,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 = {

View File

@@ -102,7 +102,7 @@ in
mountOptions = [ "umask=0077" ];
};
};
encryptedSwap = lib.mkIf cfg.encryption {
encryptedSwap = {
size = cfg.root.swap;
content = {
type = "swap";
@@ -252,10 +252,6 @@ in
type = "zfs_fs";
mountpoint = "/data";
};
"encrypted/data/microvm" = {
type = "zfs_fs";
mountpoint = "/data/microvm";
};
reserved = {
# for cow delete if pool is full
options = {

View File

@@ -70,13 +70,6 @@ rec {
proto = "virtiofs";
socket = "var.socket";
}
{
source = "/var/lib/microvms/data/${hostName}";
mountPoint = "/data";
tag = "data";
proto = "virtiofs";
socket = "microdata.socket";
}
];
interfaces = [

View File

@@ -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";
}];
})
];
}

View File

@@ -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;

View File

@@ -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 ];