|
41 | 41 | formatter = eachSystem (pkgs: pkgs.nixfmt-tree); |
42 | 42 |
|
43 | 43 | packages = eachSystem (pkgs: { |
44 | | - default = pkgs.buildGo124Module { |
| 44 | + tsidp = pkgs.buildGo124Module { |
45 | 45 | pname = "tsidp"; |
46 | 46 | version = if (self ? shortRev) then self.shortRev else "dev"; |
47 | 47 | src = pkgs.nix-gitignore.gitignoreSource [ ] ./.; |
| 48 | + meta.mainProgram = "tsidp"; |
48 | 49 | ldflags = |
49 | 50 | let |
50 | 51 | tsVersion = |
|
59 | 60 | ]; |
60 | 61 | vendorHash = "sha256-obtcJTg7V4ij3fGVmZMD7QQwKJX6K5PPslpM1XKCk9Q="; # SHA based on vendoring go.mod |
61 | 62 | }; |
| 63 | + |
| 64 | + default = self.packages.${pkgs.system}.tsidp; |
62 | 65 | }); |
63 | 66 |
|
| 67 | + overlays.default = final: prev: { |
| 68 | + tsidp = self.packages.${final.system}.tsidp; |
| 69 | + }; |
| 70 | + |
64 | 71 | devShells = eachSystem (pkgs: { |
65 | 72 | default = pkgs.mkShell { |
66 | 73 | packages = [ |
|
95 | 102 | ; |
96 | 103 |
|
97 | 104 | cfg = config.services.tsidp; |
| 105 | + |
| 106 | + stateDir = "/var/lib/tsidp"; |
98 | 107 | in |
99 | 108 | { |
100 | 109 | options.services.tsidp = { |
101 | 110 | enable = mkEnableOption "tsidp server"; |
102 | 111 |
|
103 | | - package = mkPackageOption pkgs "tsidp" { }; |
| 112 | + package = mkOption { |
| 113 | + type = lib.types.package; |
| 114 | + default = self.packages.${pkgs.system}.tsidp; |
| 115 | + description = "Package to use for the tsidp service."; |
| 116 | + }; |
104 | 117 |
|
105 | 118 | environmentFile = mkOption { |
106 | 119 | type = nullOr lib.types.path; |
|
225 | 238 | ]; |
226 | 239 |
|
227 | 240 | environment = { |
228 | | - HOME = "/var/lib/tsidp"; |
| 241 | + HOME = stateDir; |
229 | 242 | TAILSCALE_USE_WIP_CODE = "1"; # Needed while tsidp is in development (< v1.0.0). |
230 | 243 | }; |
231 | 244 |
|
|
243 | 256 | log = cfg.settings.logLevel; |
244 | 257 | debug-all-requests = cfg.settings.debugAllRequests; |
245 | 258 | debug-tsnet = cfg.settings.debugTsnet; |
| 259 | + dir = stateDir; |
246 | 260 | }; |
247 | 261 | in |
248 | 262 | "${getExe cfg.package} ${args}"; |
249 | 263 | Restart = "always"; |
250 | 264 | RestartSec = "15"; |
251 | 265 |
|
252 | 266 | DynamicUser = true; |
253 | | - StateDirectory = "tsidp"; |
254 | | - WorkingDirectory = "/var/lib/tsidp"; |
| 267 | + StateDirectory = baseNameOf stateDir; |
| 268 | + WorkingDirectory = stateDir; |
255 | 269 | ReadWritePaths = mkIf (cfg.settings.useLocalTailscaled) [ |
256 | 270 | "/var/run/tailscale" # needed due to `ProtectSystem = "strict";` |
257 | 271 | "/var/lib/tailscale" |
|
0 commit comments