diff --git a/configs/cloud.nix b/configs/cloud.nix index fe0f2a4..693acef 100644 --- a/configs/cloud.nix +++ b/configs/cloud.nix @@ -12,7 +12,10 @@ user = config.users.users.me; }; - niveum.seafile.enable = true; + niveum.seafile = { + enable = true; + user = config.users.users.me; + }; niveum.google-drive = rec { enable = true; diff --git a/modules/seafile.nix b/modules/seafile.nix index 4335045..6c5fcbc 100644 --- a/modules/seafile.nix +++ b/modules/seafile.nix @@ -4,10 +4,19 @@ let cfg = config.niveum.seafile; in { options.niveum.seafile = { enable = mkEnableOption "Seafile"; + user = mkOption { type = types.attrs; }; }; config = lib.mkIf cfg.enable { - services.xserver.displayManager.sessionCommands = "${pkgs.seafile-client}/bin/seafile-applet &"; + systemd.services.seafile = { + description = "Seafile synchronisation service"; + after = [ "network-online.target" ]; + script = "${pkgs.seafile-client}/bin/seafile-applet"; + serviceConfig = { + Restart = "always"; + User = cfg.user.name; + }; + }; environment.systemPackages = [ pkgs.seafile-client pkgs.seafile-shared ]; };