mirror of
				https://github.com/Stunkymonkey/nixos.git
				synced 2025-10-31 01:32:11 +01:00 
			
		
		
		
	webapps: introduce module with multiple configurations including dashboard
This commit is contained in:
		
							parent
							
								
									9ea187f809
								
							
						
					
					
						commit
						cb7bd7a6eb
					
				
					 9 changed files with 288 additions and 31 deletions
				
			
		
							
								
								
									
										21
									
								
								extra/webapps/bazarr.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								extra/webapps/bazarr.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,21 @@ | |||
| { config, pkgs, ... }: | ||||
| { | ||||
|   services.bazarr = { | ||||
|     enable = true; | ||||
|     openFirewall = true; | ||||
|   }; | ||||
| 
 | ||||
|   systemd.services.bazarr = { | ||||
|     after = [ "network-online.target" ]; | ||||
|     #unitConfig.RequiresMountsFor = [ "/storage" ]; | ||||
|   }; | ||||
| 
 | ||||
|   webapps.apps.bazarr = { | ||||
|     dashboard = { | ||||
|       name = "Bazarr"; | ||||
|       category = "manag"; | ||||
|       icon = "closed-captioning"; | ||||
|       link = "http://192.168.178.60:6767"; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
							
								
								
									
										57
									
								
								extra/webapps/homer.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								extra/webapps/homer.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,57 @@ | |||
| { config, lib, pkgs, ... }: | ||||
| 
 | ||||
| let | ||||
|   homer = pkgs.stdenv.mkDerivation rec { | ||||
|     pname = "homer"; | ||||
|     version = "21.09.2"; | ||||
| 
 | ||||
|     src = pkgs.fetchurl { | ||||
|       urls = [ | ||||
|         "https://github.com/bastienwirtz/${pname}/releases/download/v${version}/${pname}.zip" | ||||
|       ]; | ||||
|       sha256 = "sha256-NHvH3IW05O1YvPp0KOUU0ajZsuh7BMgqUTJvMwbc+qY="; | ||||
|     }; | ||||
|     nativeBuildInputs = [ pkgs.unzip ]; | ||||
| 
 | ||||
|     dontInstall = true; | ||||
|     sourceRoot = "."; | ||||
|     unpackCmd = "${pkgs.unzip}/bin/unzip -d $out $curSrc"; | ||||
|   }; | ||||
| 
 | ||||
|   homeConfig = { | ||||
|     title = "Dashboard"; | ||||
|     header = false; | ||||
|     footer = false; | ||||
|     connectivityCheck = true; | ||||
|     colums = "auto"; | ||||
|     services = config.lib.webapps.homerServices; | ||||
|   }; | ||||
| in | ||||
| { | ||||
|   networking.firewall.allowedTCPPorts = [ | ||||
|     80 | ||||
|     443 | ||||
|   ]; | ||||
|   services.nginx = { | ||||
|     enable = true; | ||||
|     #virtualHosts."dashboard.rocks" = { | ||||
|     virtualHosts."_" = { | ||||
|       default = true; | ||||
|       locations = { | ||||
|         "/" = { | ||||
|           root = homer; | ||||
|         }; | ||||
|         "=/assets/config.yml" = { | ||||
|           alias = pkgs.writeText "homerConfig.yml" (builtins.toJSON homeConfig); | ||||
|         }; | ||||
|       }; | ||||
|     }; | ||||
|   }; | ||||
|   webapps = { | ||||
|     dashboardCategories = [ | ||||
|       { name = "Applications"; tag = "app"; } | ||||
|       { name = "Media-Management"; tag = "manag"; } | ||||
|       { name = "Infrastructure"; tag = "infra"; } | ||||
|     ]; | ||||
|   }; | ||||
| } | ||||
							
								
								
									
										21
									
								
								extra/webapps/jellyfin.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								extra/webapps/jellyfin.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,21 @@ | |||
| { config, pkgs, ... }: | ||||
| { | ||||
|   services.jellyfin = { | ||||
|     enable = true; | ||||
|     openFirewall = true; | ||||
|   }; | ||||
| 
 | ||||
|   systemd.services.jellyfin = { | ||||
|     after = [ "network-online.target" ]; | ||||
|     #unitConfig.RequiresMountsFor = [ "/storage" ]; | ||||
|   }; | ||||
| 
 | ||||
|   webapps.apps.jellyfin = { | ||||
|     dashboard = { | ||||
|       name = "Jellyfin"; | ||||
|       category = "app"; | ||||
|       icon = "film"; | ||||
|       link = "http://192.168.178.60:8096"; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
							
								
								
									
										31
									
								
								extra/webapps/prowlarr.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								extra/webapps/prowlarr.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,31 @@ | |||
| { config, pkgs, ... }: | ||||
| { | ||||
|   services.prowlarr = { | ||||
|     enable = true; | ||||
|     openFirewall = true; | ||||
|   }; | ||||
| 
 | ||||
|   systemd.services.prowlarr = { | ||||
|     after = [ "network-online.target" ]; | ||||
|     #unitConfig.RequiresMountsFor = [ "/storage" ]; | ||||
|   }; | ||||
| 
 | ||||
|   webapps.apps.prowlarr = { | ||||
|     dashboard = { | ||||
|       name = "Prowlarr"; | ||||
|       category = "manag"; | ||||
|       icon = "sync-alt"; | ||||
|       link = "http://192.168.178.60:9696"; | ||||
|     }; | ||||
|   }; | ||||
|   # ugly fix for service not having a homedirectory | ||||
|   users.users.prowlarr = { | ||||
|     isSystemUser = true; | ||||
|     home = "/var/lib/prowlarr"; | ||||
|     group = "prowlarr"; | ||||
|     uid = 61654; | ||||
|   }; | ||||
|   users.groups.prowlarr = { | ||||
|     gid = 61654; | ||||
|   }; | ||||
| } | ||||
							
								
								
									
										21
									
								
								extra/webapps/radarr.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								extra/webapps/radarr.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,21 @@ | |||
| { config, pkgs, ... }: | ||||
| { | ||||
|   services.radarr = { | ||||
|     enable = true; | ||||
|     openFirewall = true; | ||||
|   }; | ||||
| 
 | ||||
|   systemd.services.radarr = { | ||||
|     after = [ "network-online.target" ]; | ||||
|     #unitConfig.RequiresMountsFor = [ "/storage" ]; | ||||
|   }; | ||||
| 
 | ||||
|   webapps.apps.radarr = { | ||||
|     dashboard = { | ||||
|       name = "Radarr"; | ||||
|       category = "manag"; | ||||
|       icon = "film"; | ||||
|       link = "http://192.168.178.60:7878"; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
							
								
								
									
										21
									
								
								extra/webapps/sonarr.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								extra/webapps/sonarr.nix
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,21 @@ | |||
| { config, pkgs, ... }: | ||||
| { | ||||
|   services.sonarr = { | ||||
|     enable = true; | ||||
|     openFirewall = true; | ||||
|   }; | ||||
| 
 | ||||
|   systemd.services.sonarr = { | ||||
|     after = [ "network-online.target" ]; | ||||
|     #unitConfig.RequiresMountsFor = [ "/storage" ]; | ||||
|   }; | ||||
| 
 | ||||
|   webapps.apps.sonarr = { | ||||
|     dashboard = { | ||||
|       name = "Sonarr"; | ||||
|       category = "manag"; | ||||
|       icon = "tv"; | ||||
|       link = "http://192.168.178.60:8989"; | ||||
|     }; | ||||
|   }; | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Felix Buehler
						Felix Buehler