Change-Id: Idc0b5210793ab0d83b3ac99cf36d7f7f02a35a37 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5931 Tested-by: BuildkiteCI Reviewed-by: sterni <sternenseemann@systemli.org>
		
			
				
	
	
		
			45 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| # Configuration for receiving a depot replica from Gerrit's
 | |
| # replication plugin.
 | |
| #
 | |
| # This only prepares the user and folder for receiving the replica,
 | |
| # but Gerrit configuration still needs to be modified in addition.
 | |
| { config, depot, lib, pkgs, ... }:
 | |
| 
 | |
| let
 | |
|   cfg = config.services.depot.replica;
 | |
| in
 | |
| {
 | |
|   options.services.depot.replica = with lib; {
 | |
|     enable = mkEnableOption "Receive depot git replica from Gerrit";
 | |
| 
 | |
|     key = mkOption {
 | |
|       description = "Public key to use for replication";
 | |
|       type = types.str;
 | |
|       default = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFFab9O1xaQ1TCyn+CxmXHexdlLzURREG+UR3Qdi3BvH";
 | |
|     };
 | |
| 
 | |
|     path = mkOption {
 | |
|       description = "Replication destination path (will be created)";
 | |
|       type = types.str;
 | |
|       default = "/var/lib/depot";
 | |
|     };
 | |
|   };
 | |
| 
 | |
|   config = lib.mkIf cfg.enable {
 | |
|     users.groups.depot = { };
 | |
| 
 | |
|     users.users.depot = {
 | |
|       group = "depot";
 | |
|       isSystemUser = true;
 | |
|       createHome = true;
 | |
|       home = cfg.path;
 | |
|       homeMode = "755"; # everyone can read depot
 | |
|       openssh.authorizedKeys.keys = lib.singleton cfg.key;
 | |
|       shell = pkgs.bashInteractive; # gerrit needs to run shell commands
 | |
|     };
 | |
| 
 | |
|     environment.systemPackages = [
 | |
|       pkgs.git
 | |
|     ];
 | |
|   };
 | |
| }
 |