33 lines
		
	
	
	
		
			837 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
	
		
			837 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
{lib, ...}: let
 | 
						|
  inherit (lib) mkOption mkEnableOption;
 | 
						|
  inherit (lib.types) str nullOr listOf enum bool;
 | 
						|
in {
 | 
						|
  options.ooknet.server = {
 | 
						|
    exitNode = mkOption {
 | 
						|
      type = bool;
 | 
						|
      default = false;
 | 
						|
      description = "Whether the server will act as a tailscale exit node or not";
 | 
						|
    };
 | 
						|
    profile = mkOption {
 | 
						|
      type = nullOr (enum ["linode"]);
 | 
						|
      default = null;
 | 
						|
      description = "The server profile the host will use as a base";
 | 
						|
    };
 | 
						|
    services = mkOption {
 | 
						|
      type = listOf (enum ["website" "forgejo"]);
 | 
						|
      default = [];
 | 
						|
      description = "List of services the server will host";
 | 
						|
    };
 | 
						|
    domain = mkOption {
 | 
						|
      type = str;
 | 
						|
      default = "";
 | 
						|
    };
 | 
						|
 | 
						|
    webserver = {
 | 
						|
      caddy.enable = mkEnableOption "";
 | 
						|
    };
 | 
						|
    database = {
 | 
						|
      postgresql.enable = mkEnableOption "";
 | 
						|
    };
 | 
						|
  };
 | 
						|
}
 |