forked from jan-leila/nix-config
		
	made services in defiant configurable
This commit is contained in:
		
							parent
							
								
									a0e047db97
								
							
						
					
					
						commit
						e3990cb6d2
					
				
					 3 changed files with 157 additions and 120 deletions
				
			
		|  | @ -38,8 +38,6 @@ set up git configuration for local development: `git config --local include.path | ||||||
| 
 | 
 | ||||||
| ## Tech Debt | ## Tech Debt | ||||||
| - allowUnfree should be enabled user side not host side (this isn't enabled at all right now for some reason???) | - allowUnfree should be enabled user side not host side (this isn't enabled at all right now for some reason???) | ||||||
| - move services from defiant into own flake |  | ||||||
| - made base domain in nas services configurable |  | ||||||
| - vscode extensions should be in own flake (make sure to add the nixpkgs.overlays in it too) | - vscode extensions should be in own flake (make sure to add the nixpkgs.overlays in it too) | ||||||
| - server service system users should also be on local systems for file permission reasons | - server service system users should also be on local systems for file permission reasons | ||||||
| ## New Features | ## New Features | ||||||
|  |  | ||||||
|  | @ -1,4 +1,5 @@ | ||||||
| { | { | ||||||
|  |   lib, | ||||||
|   config, |   config, | ||||||
|   pkgs, |   pkgs, | ||||||
|   ... |   ... | ||||||
|  | @ -7,6 +8,44 @@ | ||||||
|     ../common |     ../common | ||||||
|   ]; |   ]; | ||||||
| 
 | 
 | ||||||
|  |   options = { | ||||||
|  |     domains = { | ||||||
|  |       base_domain = lib.mkOption { type = lib.types.str; }; | ||||||
|  |       headscale = { | ||||||
|  |         subdomain = lib.mkOption { | ||||||
|  |           type = lib.types.str; | ||||||
|  |           description = "subdomain of base domain that headscale will be hosted at"; | ||||||
|  |           default = "headscale"; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  |       jellyfin = { | ||||||
|  |         subdomain = lib.mkOption { | ||||||
|  |           type = lib.types.str; | ||||||
|  |           description = "subdomain of base domain that jellyfin will be hosted at"; | ||||||
|  |           default = "jellyfin"; | ||||||
|  |         }; | ||||||
|  |         hostname = lib.mkOption { | ||||||
|  |           type = lib.types.str; | ||||||
|  |           description = "hosname that jellyfin will be hosted at"; | ||||||
|  |           default = "${config.domains.jellyfin.subdomain}.${config.domains.base_domain}"; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  |       forgejo = { | ||||||
|  |         subdomain = lib.mkOption { | ||||||
|  |           type = lib.types.str; | ||||||
|  |           description = "subdomain of base domain that foregjo will be hosted at"; | ||||||
|  |           default = "forgejo"; | ||||||
|  |         }; | ||||||
|  |         hostname = lib.mkOption { | ||||||
|  |           type = lib.types.str; | ||||||
|  |           description = "hosname that forgejo will be hosted at"; | ||||||
|  |           default = "${config.domains.forgejo.subdomain}.${config.domains.base_domain}"; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   config = { | ||||||
|     users = { |     users = { | ||||||
|       groups = { |       groups = { | ||||||
|         jellyfin_media = { |         jellyfin_media = { | ||||||
|  | @ -46,11 +85,7 @@ | ||||||
|       # "d /home/forgejo/data 750 forgejo forgejo -" |       # "d /home/forgejo/data 750 forgejo forgejo -" | ||||||
|     ]; |     ]; | ||||||
| 
 | 
 | ||||||
|   services = let |     services = { | ||||||
|     jellyfinDomain = "jellyfin.jan-leila.com"; |  | ||||||
|     headscaleDomain = "headscale.jan-leila.com"; |  | ||||||
|     # forgejoDomain = "forgejo.jan-leila.com"; |  | ||||||
|   in { |  | ||||||
|       nfs.server = { |       nfs.server = { | ||||||
|         enable = true; |         enable = true; | ||||||
|         exports = '' |         exports = '' | ||||||
|  | @ -66,8 +101,8 @@ | ||||||
|         address = "0.0.0.0"; |         address = "0.0.0.0"; | ||||||
|         port = 8080; |         port = 8080; | ||||||
|         settings = { |         settings = { | ||||||
|         server_url = "https://${headscaleDomain}"; |           server_url = "${config.domains.headscale.subdomain}.${config.domains.base_domain}"; | ||||||
|         dns_config.base_domain = "jan-leila.com"; |           dns_config.base_domain = config.domains.base_domain; | ||||||
|           logtail.enabled = false; |           logtail.enabled = false; | ||||||
|         }; |         }; | ||||||
|       }; |       }; | ||||||
|  | @ -78,7 +113,6 @@ | ||||||
|         group = "jellyfin"; |         group = "jellyfin"; | ||||||
|         dataDir = "/home/jellyfin/config"; # location on existing server: /home/docker/jellyfin/config |         dataDir = "/home/jellyfin/config"; # location on existing server: /home/docker/jellyfin/config | ||||||
|         cacheDir = "/home/jellyfin/cache"; # location on existing server: /home/docker/jellyfin/cache |         cacheDir = "/home/jellyfin/cache"; # location on existing server: /home/docker/jellyfin/cache | ||||||
|       openFirewall = false; |  | ||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
|       # TODO: figure out what needs to be here |       # TODO: figure out what needs to be here | ||||||
|  | @ -98,7 +132,7 @@ | ||||||
|       nginx = { |       nginx = { | ||||||
|         enable = false; # TODO: enable this when you want to test all the configs |         enable = false; # TODO: enable this when you want to test all the configs | ||||||
|         virtualHosts = { |         virtualHosts = { | ||||||
|         ${headscaleDomain} = { |           ${config.domains.headscale.hostname} = { | ||||||
|             forceSSL = true; |             forceSSL = true; | ||||||
|             enableACME = true; |             enableACME = true; | ||||||
|             locations."/" = { |             locations."/" = { | ||||||
|  | @ -106,12 +140,12 @@ | ||||||
|               proxyWebsockets = true; |               proxyWebsockets = true; | ||||||
|             }; |             }; | ||||||
|           }; |           }; | ||||||
|         ${jellyfinDomain} = { |           ${config.domains.jellyfin.hostname} = { | ||||||
|             forceSSL = true; |             forceSSL = true; | ||||||
|             enableACME = true; |             enableACME = true; | ||||||
|             locations."/".proxyPass = "http://localhost:8096"; |             locations."/".proxyPass = "http://localhost:8096"; | ||||||
|           }; |           }; | ||||||
|         # ${forgejoDomain} = { |           # ${config.domains.forgejo.hostname} = { | ||||||
|           #   forceSSL = true; |           #   forceSSL = true; | ||||||
|           #   enableACME = true; |           #   enableACME = true; | ||||||
|           #   locations."/".proxyPass = "http://localhost:${toString config.services.forgejo.settings.server.HTTP_PORT}"; |           #   locations."/".proxyPass = "http://localhost:${toString config.services.forgejo.settings.server.HTTP_PORT}"; | ||||||
|  | @ -141,4 +175,5 @@ | ||||||
|       pkgs.jellyfin-web |       pkgs.jellyfin-web | ||||||
|       pkgs.jellyfin-ffmpeg |       pkgs.jellyfin-ffmpeg | ||||||
|     ]; |     ]; | ||||||
|  |   }; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -25,6 +25,10 @@ | ||||||
| 
 | 
 | ||||||
|   nixpkgs.config.allowUnfree = true; |   nixpkgs.config.allowUnfree = true; | ||||||
| 
 | 
 | ||||||
|  |   domains = { | ||||||
|  |     base_domain = "jan-leila.com"; | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|   services = { |   services = { | ||||||
|     zfs = { |     zfs = { | ||||||
|       autoScrub.enable = true; |       autoScrub.enable = true; | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue