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 "";
 | |
|     };
 | |
|   };
 | |
| }
 |