63 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| {
 | |
|   flake.modules.nixos.factorio-server =
 | |
|     { config, ... }:
 | |
|     let
 | |
|       sopsFile = ../../secrets/secrets-loptland.yaml;
 | |
|     in
 | |
|     {
 | |
|       sops = {
 | |
|         secrets = {
 | |
|           "factorio/token" = {
 | |
|             restartUnits = [ "factorio.service" ];
 | |
|             inherit sopsFile;
 | |
|           };
 | |
|           "factorio/username" = {
 | |
|             restartUnits = [ "factorio.service" ];
 | |
|             inherit sopsFile;
 | |
|           };
 | |
|           "factorio/game_password" = {
 | |
|             restartUnits = [ "factorio.service" ];
 | |
|             inherit sopsFile;
 | |
|           };
 | |
|         };
 | |
|         templates."extraSettingsFile.json".content = ''
 | |
|           {
 | |
|             "name": "Pyanodons Holli",
 | |
|             "description": "Trying to run a factorio-headless-server on my nix system",
 | |
|             "tags": ["vanilla"],
 | |
|             "max_players": 10,
 | |
|             "game_password": "${config.sops.placeholder."factorio/game_password"}",
 | |
|             "allow_commands": "admins-only",
 | |
|             "autosave_slots": 5,
 | |
|             "ignore_player_limit_for_returning_players": true,
 | |
|             "username" : "${config.sops.placeholder."factorio/username"}",
 | |
|             "token": "${config.sops.placeholder."factorio/token"}"
 | |
|           }
 | |
|         '';
 | |
|         templates."extraSettingsFile.json".mode = "0444";
 | |
|       };
 | |
| 
 | |
|       systemd.tmpfiles.rules = [
 | |
|         "Z /var/lib/factorio/mods 770 65400 65400 - -"
 | |
|         "Z /var/lib/factorio/saves 770 65400 65400 - -"
 | |
|       ];
 | |
| 
 | |
|       services.factorio = {
 | |
|         enable = true;
 | |
|         openFirewall = true;
 | |
|         public = true;
 | |
|         lan = true;
 | |
|         nonBlockingSaving = true;
 | |
|         autosave-interval = 5;
 | |
|         saveName = "Pyanodons";
 | |
|         loadLatestSave = true;
 | |
|         admins = [
 | |
|           "daholli"
 | |
|           "galbrain"
 | |
|           "geigeabc"
 | |
|         ];
 | |
|         extraSettingsFile = config.sops.templates."extraSettingsFile.json".path;
 | |
|       };
 | |
| 
 | |
|     };
 | |
| }
 |