at 25.11-pre 1.0 kB view raw
1{ 2 config, 3 lib, 4 pkgs, 5 ... 6}: 7let 8 cfg = config.services.keybase; 9in 10{ 11 12 ###### interface 13 14 options = { 15 16 services.keybase = { 17 18 enable = lib.mkOption { 19 type = lib.types.bool; 20 default = false; 21 description = "Whether to start the Keybase service."; 22 }; 23 24 }; 25 }; 26 27 ###### implementation 28 29 config = lib.mkIf cfg.enable { 30 31 # Upstream: https://github.com/keybase/client/blob/master/packaging/linux/systemd/keybase.service 32 systemd.user.services.keybase = { 33 description = "Keybase service"; 34 unitConfig.ConditionUser = "!@system"; 35 environment.KEYBASE_SERVICE_TYPE = "systemd"; 36 serviceConfig = { 37 Type = "notify"; 38 EnvironmentFile = [ 39 "-%E/keybase/keybase.autogen.env" 40 "-%E/keybase/keybase.env" 41 ]; 42 ExecStart = "${pkgs.keybase}/bin/keybase service"; 43 Restart = "on-failure"; 44 PrivateTmp = true; 45 }; 46 wantedBy = [ "default.target" ]; 47 }; 48 49 environment.systemPackages = [ pkgs.keybase ]; 50 }; 51}