| 
									
										
										
										
											2025-01-06 12:00:00 +00:00
										 |  |  | { config, lib, ... }: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | with lib; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2025-03-05 15:09:06 +00:00
										 |  |  |   options.nixosModules.forgejo.enable = mkEnableOption "Enable forgejo"; | 
					
						
							| 
									
										
										
										
											2025-01-06 12:00:00 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-03-05 15:09:06 +00:00
										 |  |  |   config = mkIf config.nixosModules.forgejo.enable { | 
					
						
							| 
									
										
										
										
											2025-01-06 12:00:00 +00:00
										 |  |  |     services = { | 
					
						
							|  |  |  |       forgejo = { | 
					
						
							|  |  |  |         enable = true; | 
					
						
							|  |  |  |         group = "media"; | 
					
						
							|  |  |  |         stateDir = "/mnt/media/forgejo"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         settings = { | 
					
						
							|  |  |  |           server = { | 
					
						
							| 
									
										
										
										
											2025-01-21 00:46:13 +00:00
										 |  |  |             DOMAIN = "forgejo.oliverdavies.uk"; | 
					
						
							| 
									
										
										
										
											2025-01-06 12:00:00 +00:00
										 |  |  |             HTTP_PORT = 2223; | 
					
						
							|  |  |  |           }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           service = { | 
					
						
							|  |  |  |             DISABLE_REGISTRATION = true; | 
					
						
							|  |  |  |           }; | 
					
						
							|  |  |  |         }; | 
					
						
							|  |  |  |       }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       caddy.virtualHosts."${config.services.forgejo.settings.server.DOMAIN}" = { | 
					
						
							| 
									
										
										
										
											2025-01-21 00:46:13 +00:00
										 |  |  |         useACMEHost = "oliverdavies.uk"; | 
					
						
							| 
									
										
										
										
											2025-01-06 12:00:00 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         extraConfig = "reverse_proxy localhost:${toString config.services.forgejo.settings.server.HTTP_PORT}"; | 
					
						
							|  |  |  |       }; | 
					
						
							|  |  |  |     }; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | } |