From 13dc33eeac794293871881005106001c619af35e Mon Sep 17 00:00:00 2001 From: Gabe Venberg Date: Sat, 19 Oct 2024 22:08:48 +0200 Subject: [PATCH] added factorio server to cirrostratus. --- configs/nixos/docker.nix | 15 +++++++++++++++ configs/nixos/factorio-docker.nix | 26 ++++++++++++++++++++++++++ hosts/cirrostratus/default.nix | 5 ++++- hosts/cirrostratus/restic.nix | 1 + 4 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 configs/nixos/docker.nix create mode 100644 configs/nixos/factorio-docker.nix diff --git a/configs/nixos/docker.nix b/configs/nixos/docker.nix new file mode 100644 index 0000000..141c9a0 --- /dev/null +++ b/configs/nixos/docker.nix @@ -0,0 +1,15 @@ +{ + inputs, + config, + pkgs, + lib, + ... +}: { + virtualisation.docker = { + enable = true; + daemon.settings = { + userland-proxy = false; + }; + }; + users.users.${config.host.user}.extraGroups = ["docker"]; +} diff --git a/configs/nixos/factorio-docker.nix b/configs/nixos/factorio-docker.nix new file mode 100644 index 0000000..5ed941d --- /dev/null +++ b/configs/nixos/factorio-docker.nix @@ -0,0 +1,26 @@ +{ + inputs, + config, + pkgs, + lib, + ... +}: { + virtualisation.oci-containers = { + backend = "docker"; + containers.factorio = { + image = "factoriotools/factorio:stable"; + volumes = ["/storage/factorio:/factorio"]; + hostname = "factorio"; + ports = [ + "34197:34197" + "27015:27015" + ]; + environment={ + UPDATE_MODS_ON_START="true"; + }; + }; + }; + imports = [ + ./docker.nix + ]; +} diff --git a/hosts/cirrostratus/default.nix b/hosts/cirrostratus/default.nix index ef7b850..1b0b52d 100644 --- a/hosts/cirrostratus/default.nix +++ b/hosts/cirrostratus/default.nix @@ -22,6 +22,7 @@ inputs.nixpkgs.lib.nixosSystem { ../../configs/nixos/jellyfin.nix ../../configs/nixos/syncthing.nix ../../configs/nixos/grocy.nix + ../../configs/nixos/factorio-docker.nix ({ config, pkgs, @@ -48,7 +49,7 @@ inputs.nixpkgs.lib.nixosSystem { # dns = ["1.1.1.1"]; }; }; - time.timeZone = "America/Chicago"; + time.timeZone = "America/Chicago"; services.duckdns = lib.mkIf (lib.hasAttrByPath ["sops" "secrets" "duckdns-token"] config) { enable = true; @@ -69,6 +70,8 @@ inputs.nixpkgs.lib.nixosSystem { services.tailscale.useRoutingFeatures = "server"; + # virtualisation.docker.daemon.settings.data-root="/storage/docker"; + home-manager.users.${config.host.user} = { inputs, osConfig, diff --git a/hosts/cirrostratus/restic.nix b/hosts/cirrostratus/restic.nix index 2f15f48..df28622 100644 --- a/hosts/cirrostratus/restic.nix +++ b/hosts/cirrostratus/restic.nix @@ -48,6 +48,7 @@ in { initialize = true; paths = [ "/storage/syncthing" + "/storage/factorio" ]; timerConfig = { OnCalendar = "daily";