| 
									
										
										
										
											2024-08-16 00:46:47 -04:00
										 |  |  | { config, lib, ... }: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | let | 
					
						
							|  |  |  |   servers = { | 
					
						
							|  |  |  |     atm6 = "atm6.alicehuston.xyz"; | 
					
						
							|  |  |  |     stoneblock3 = "sb3.alicehuston.xyz"; | 
					
						
							|  |  |  |     RAD2 = "rad.alicehuston.xyz"; | 
					
						
							|  |  |  |     skyfactory = "sf.alicehuston.xyz"; | 
					
						
							|  |  |  |     divinejourney = "dj.alicehuston.xyz"; | 
					
						
							|  |  |  |     rlcraft = "rlcraft.alicehuston.xyz"; | 
					
						
							|  |  |  |     arcanum-institute = "arcanum.alicehuston.xyz"; | 
					
						
							| 
									
										
										
										
											2025-03-25 23:43:46 -04:00
										 |  |  |     # bcg-plus = "bcg.alicehuston.xyz"; | 
					
						
							| 
									
										
										
										
											2024-08-16 00:46:47 -04:00
										 |  |  |   }; | 
					
						
							| 
									
										
										
										
											2024-08-17 21:49:31 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-08-16 00:50:02 -04:00
										 |  |  |   defaultServer = "rlcraft"; | 
					
						
							| 
									
										
										
										
											2024-08-16 00:46:47 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-03-25 23:43:46 -04:00
										 |  |  |   # defaultEnv = { | 
					
						
							|  |  |  |   #   EULA = "true"; | 
					
						
							|  |  |  |   #   TYPE = "AUTO_CURSEFORGE"; | 
					
						
							|  |  |  |   #   STOP_SERVER_ANNOUNCE_DELAY = "120"; | 
					
						
							|  |  |  |   #   STOP_DURATION = "600"; | 
					
						
							|  |  |  |   #   SYNC_CHUNK_WRITES = "false"; | 
					
						
							|  |  |  |   #   USE_AIKAR_FLAGS = "true"; | 
					
						
							|  |  |  |   #   MEMORY = "8GB"; | 
					
						
							|  |  |  |   #   ALLOW_FLIGHT = "true"; | 
					
						
							|  |  |  |   #   MAX_TICK_TIME = "-1"; | 
					
						
							|  |  |  |   # }; | 
					
						
							| 
									
										
										
										
											2024-08-16 00:46:47 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-03-25 23:43:46 -04:00
										 |  |  |   # defaultOptions = [ | 
					
						
							|  |  |  |   #   "--stop-signal=SIGTERM" | 
					
						
							|  |  |  |   #   "--stop-timeout=1800" | 
					
						
							|  |  |  |   #   "--network=minecraft-net" | 
					
						
							|  |  |  |   # ]; | 
					
						
							| 
									
										
										
										
											2024-08-17 21:49:31 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-03-25 23:43:46 -04:00
										 |  |  |   # vars = import ../vars.nix; | 
					
						
							|  |  |  |   # minecraft_path = "${vars.primary_games}/minecraft"; | 
					
						
							| 
									
										
										
										
											2024-08-16 00:46:47 -04:00
										 |  |  | in | 
					
						
							|  |  |  | { | 
					
						
							| 
									
										
										
										
											2024-08-16 08:59:15 -04:00
										 |  |  |   virtualisation.oci-containers.containers = { | 
					
						
							| 
									
										
										
										
											2024-08-16 00:46:47 -04:00
										 |  |  |     mc-router = { | 
					
						
							|  |  |  |       image = "itzg/mc-router:latest"; | 
					
						
							| 
									
										
										
										
											2025-06-01 18:35:15 -04:00
										 |  |  |       pull = "always"; | 
					
						
							| 
									
										
										
										
											2024-08-16 00:46:47 -04:00
										 |  |  |       extraOptions = [ | 
					
						
							|  |  |  |         "--network=haproxy-net" | 
					
						
							|  |  |  |         "--network=minecraft-net" | 
					
						
							|  |  |  |       ]; | 
					
						
							| 
									
										
										
										
											2024-08-16 08:59:15 -04:00
										 |  |  |       cmd = [ | 
					
						
							|  |  |  |         ( | 
					
						
							|  |  |  |           "--mapping=mc.alicehuston.xyz=${defaultServer}:25565" | 
					
						
							| 
									
										
										
										
											2025-04-01 13:59:09 -04:00
										 |  |  |           + (lib.adev.mapAttrsToString (hostname: url: "," + url + "=" + hostname + ":25565") servers) | 
					
						
							| 
									
										
										
										
											2024-08-16 08:59:15 -04:00
										 |  |  |         ) | 
					
						
							|  |  |  |       ]; | 
					
						
							| 
									
										
										
										
											2024-08-16 00:46:47 -04:00
										 |  |  |     }; | 
					
						
							| 
									
										
										
										
											2025-01-26 00:46:53 -05:00
										 |  |  |     # rlcraft = { | 
					
						
							|  |  |  |     #   image = "itzg/minecraft-server:java8"; | 
					
						
							|  |  |  |     #   volumes = [ | 
					
						
							|  |  |  |     #     "${minecraft_path}/rlcraft/modpacks:/modpacks:ro" | 
					
						
							|  |  |  |     #     "${minecraft_path}/rlcraft/data:/data" | 
					
						
							|  |  |  |     #   ]; | 
					
						
							|  |  |  |     #   hostname = "rlcraft"; | 
					
						
							|  |  |  |     #   environment = defaultEnv // { | 
					
						
							|  |  |  |     #     VERSION = "1.12.2"; | 
					
						
							|  |  |  |     #     CF_SLUG = "rlcraft"; | 
					
						
							|  |  |  |     #     DIFFICULTY = "hard"; | 
					
						
							|  |  |  |     #     ENABLE_COMMAND_BLOCK = "true"; | 
					
						
							|  |  |  |     #   }; | 
					
						
							|  |  |  |     #   extraOptions = defaultOptions; | 
					
						
							|  |  |  |     #   log-driver = "local"; | 
					
						
							|  |  |  |     #   environmentFiles = [ config.sops.secrets."docker/minecraft".path ]; | 
					
						
							|  |  |  |     # }; | 
					
						
							| 
									
										
										
										
											2025-03-25 23:43:46 -04:00
										 |  |  |     # bcg-plus = { | 
					
						
							|  |  |  |     #   image = "itzg/minecraft-server:java17"; | 
					
						
							|  |  |  |     #   volumes = [ | 
					
						
							|  |  |  |     #     "${minecraft_path}/bcg-plus/modpacks:/modpacks:ro" | 
					
						
							|  |  |  |     #     "${minecraft_path}/bcg-plus/data:/data" | 
					
						
							|  |  |  |     #   ]; | 
					
						
							|  |  |  |     #   hostname = "bcg-plus"; | 
					
						
							|  |  |  |     #   environment = defaultEnv // { | 
					
						
							|  |  |  |     #     VERSION = "1.17"; | 
					
						
							|  |  |  |     #     CF_SLUG = "bcg"; | 
					
						
							|  |  |  |     #     DIFFICULTY = "normal"; | 
					
						
							|  |  |  |     #     DEBUG = "true"; | 
					
						
							|  |  |  |     #     # ENABLE_COMMAND_BLOCK = "true"; | 
					
						
							|  |  |  |     #   }; | 
					
						
							|  |  |  |     #   extraOptions = defaultOptions; | 
					
						
							|  |  |  |     #   log-driver = "local"; | 
					
						
							|  |  |  |     #   environmentFiles = [ config.sops.secrets."docker/minecraft".path ]; | 
					
						
							|  |  |  |     # }; | 
					
						
							| 
									
										
										
										
											2024-08-16 00:50:02 -04:00
										 |  |  |   }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   sops = { | 
					
						
							|  |  |  |     defaultSopsFile = ../secrets.yaml; | 
					
						
							|  |  |  |     secrets = { | 
					
						
							|  |  |  |       "docker/minecraft".owner = "docker-service"; | 
					
						
							| 
									
										
										
										
											2024-08-16 00:46:47 -04:00
										 |  |  |     }; | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | } |