nixos/whale2: Add Valheim server 😳
This commit is contained in:
		@@ -1,4 +1,8 @@
 | 
			
		||||
{ lib, ... }: {
 | 
			
		||||
{ lib, ... }:
 | 
			
		||||
let
 | 
			
		||||
  inherit (builtins) mapAttrs;
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  nixos.systems.whale2 = {
 | 
			
		||||
    system = "x86_64-linux";
 | 
			
		||||
    nixpkgs = "mine";
 | 
			
		||||
@@ -25,9 +29,20 @@
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    extraAssignments = mapAttrs (n: i: {
 | 
			
		||||
      internal = {
 | 
			
		||||
        name = n;
 | 
			
		||||
        domain = lib.my.colony.domain;
 | 
			
		||||
        ipv4.address = "${lib.my.colony.start.oci.v4}${toString i}";
 | 
			
		||||
        ipv6.address = "${lib.my.colony.start.oci.v6}${toString i}";
 | 
			
		||||
      };
 | 
			
		||||
    }) {
 | 
			
		||||
      valheim-oci = 2;
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    configuration = { lib, pkgs, modulesPath, config, assignments, allAssignments, ... }:
 | 
			
		||||
      let
 | 
			
		||||
        inherit (builtins) mapAttrs toJSON;
 | 
			
		||||
        inherit (builtins) toJSON;
 | 
			
		||||
        inherit (lib) mkIf mkMerge mkForce;
 | 
			
		||||
        inherit (lib.my) networkdAssignment;
 | 
			
		||||
      in
 | 
			
		||||
@@ -35,7 +50,7 @@
 | 
			
		||||
        imports = [
 | 
			
		||||
          "${modulesPath}/profiles/qemu-guest.nix"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
          ./valheim.nix
 | 
			
		||||
        ];
 | 
			
		||||
 | 
			
		||||
        config = mkMerge [
 | 
			
		||||
@@ -75,6 +90,9 @@
 | 
			
		||||
              podman = {
 | 
			
		||||
                enable = true;
 | 
			
		||||
              };
 | 
			
		||||
              oci-containers = {
 | 
			
		||||
                backend = "podman";
 | 
			
		||||
              };
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            environment = {
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										38
									
								
								nixos/boxes/colony/vms/whale2/valheim.nix
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								nixos/boxes/colony/vms/whale2/valheim.nix
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,38 @@
 | 
			
		||||
{ lib, config, allAssignments, ... }:
 | 
			
		||||
let
 | 
			
		||||
  inherit (lib.my) dockerNetAssignment;
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
  config = {
 | 
			
		||||
    virtualisation.oci-containers.containers = {
 | 
			
		||||
      valheim = {
 | 
			
		||||
        image = "lloesche/valheim-server@sha256:8d910b15e3ab645a31c85799338d3dc043cabe891a34b43cbd574a1453837205";
 | 
			
		||||
 | 
			
		||||
        environment = {
 | 
			
		||||
          SERVER_NAME = "amogus sus";
 | 
			
		||||
          SERVER_PUBLIC = "true";
 | 
			
		||||
          WORLD_NAME = "simpland2";
 | 
			
		||||
          ADMINLIST_IDS = "76561198049818986";
 | 
			
		||||
          TZ = "Europe/Dublin";
 | 
			
		||||
        };
 | 
			
		||||
        environmentFiles = [ config.age.secrets."whale2/valheim.env".path ];
 | 
			
		||||
 | 
			
		||||
        volumes = [
 | 
			
		||||
          "data:/config"
 | 
			
		||||
          "server:/opt/valheim"
 | 
			
		||||
        ];
 | 
			
		||||
 | 
			
		||||
        extraOptions = [
 | 
			
		||||
          ''--network=colony:${dockerNetAssignment allAssignments "valheim-oci"}''
 | 
			
		||||
          "--cap-add=SYS_NICE"
 | 
			
		||||
        ];
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    my = {
 | 
			
		||||
      secrets.files = {
 | 
			
		||||
        "whale2/valheim.env" = {};
 | 
			
		||||
      };
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user