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..c64074e --- /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";