From c153a351659e4596acfc31f00bf594343cbfcd68 Mon Sep 17 00:00:00 2001 From: Benedikt Peetz Date: Thu, 30 Jul 2026 14:05:39 +0200 Subject: modules: Use namespaces That might make it easier in the future to merge different server configs together (and thusly facilitate code-reuse.). --- modules/vhack/et/etesync/module.nix | 70 +++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 modules/vhack/et/etesync/module.nix (limited to 'modules/vhack/et') diff --git a/modules/vhack/et/etesync/module.nix b/modules/vhack/et/etesync/module.nix new file mode 100644 index 0000000..4dc8575 --- /dev/null +++ b/modules/vhack/et/etesync/module.nix @@ -0,0 +1,70 @@ +{ + config, + lib, + ... +}: let + cfg = config.vhack.etesync; +in { + options.vhack.etesync = { + enable = lib.mkEnableOption '' + a secure, end-to-end encrypted, and privacy respecting sync for your contacts, calendars, tasks and notes. + ''; + secretFile = lib.mkOption { + type = lib.types.path; + description = "The age encrypted globale etebase secretfile passed to agenix"; + }; + }; + + config = lib.mkIf cfg.enable { + services.etebase-server = { + enable = true; + port = 8001; + settings = { + global.secret_file = "${config.age.secrets.etebase-server.path}"; + allowed_hosts = { + allowed_host1 = "etebase.vhack.eu"; + allowed_host2 = "dav.vhack.eu"; + }; + }; + }; + + age.secrets.etebase-server = { + file = cfg.secretFile; + mode = "700"; + owner = "etebase-server"; + group = "etebase-server"; + }; + + vhack.persist.directories = [ + { + directory = "/var/lib/etebase-server"; + user = "etebase-server"; + group = "etebase-server"; + mode = "0700"; + } + ]; + + services.nginx = { + virtualHosts = { + "etebase.vhack.eu" = { + locations = { + # TODO: Maybe fix permissions to use pregenerated static files which would + # improve performance. + #"/static" = { + # root = config.services.etebase-server.settings.global.static_root; + #}; + }; + serverAliases = [ + "dav.vhack.eu" + ]; + }; + }; + }; + vhack.anubis.instances."etebase.vhack.eu".target = "http://127.0.0.1:${builtins.toString config.services.etebase-server.port}"; + + users = { + users.etebase-server.uid = config.vhack.constants.ids.uids.etebase-server; + groups.etebase-server.gid = config.vhack.constants.ids.gids.etebase-server; + }; + }; +} -- cgit v1.3.1