36 lines
		
	
	
	
		
			930 B
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
	
		
			930 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 ["media-server" "website" "forgejo" "ookflix"]);
 | 
						|
      default = [];
 | 
						|
      description = "List of services the server will host";
 | 
						|
    };
 | 
						|
    domain = mkOption {
 | 
						|
      type = str;
 | 
						|
      default = "";
 | 
						|
    };
 | 
						|
 | 
						|
    webserver = {
 | 
						|
      caddy = {
 | 
						|
        enable = mkEnableOption "";
 | 
						|
        cloudflare.enable = mkEnableOption "";
 | 
						|
      };
 | 
						|
    };
 | 
						|
    database = {
 | 
						|
      postgresql.enable = mkEnableOption "";
 | 
						|
    };
 | 
						|
  };
 | 
						|
}
 |