{ config, pkgs, lib, ... }: let modpack = pkgs.fetchPackwizModpack { url = "https://git.malice.zone/alisceon/tfcpack/-/raw/main/pack.toml"; packHash = "sha256-uXva8KgImxMq/7Fs3STjKovAxvTZUlN1xLtkEzKCsUw="; }; in { security.sudo.wheelNeedsPassword = false; imports = [ ./hardware-configuration.nix ]; networking.hostName = "tesla-nixos"; boot.initrd.enable = true; boot.loader = { systemd-boot = { enable = true; }; # end loader.systemd-boot }; # end boot environment.systemPackages = with pkgs; [ tmux ]; # end environment.systemPackages virtualisation.oci-containers.containers = { isponsorblocktv = { image = "ghcr.io/dmunozv04/isponsorblocktv:latest"; autoStart = true; volumes = [ "/home/alisceon/isponsorblocktv:/app/data" ]; }; # end isponsorblocktv }; virtualisation.podman.dockerCompat = false; virtualisation.docker = { enable = true; autoPrune = { enable = true; dates = "daily"; }; daemon.settings = { "runtimes" = { crun = { path = "${pkgs.crun}/bin/crun"; }; }; "default-runtime" = "crun"; }; }; services.minecraft-servers = { managementSystem.systemd-socket.enable = true; enable = true; eula = true; openFirewall = true; servers.tfcpack = { enable = true; package = pkgs.neoforgeServers.neoforge-1_21_1-21_1_219; autoStart = true; serverProperties = { "motd" = "TFC Pack - Tesla Nixos"; "max-players" = "20"; "view-distance" = "32"; "level-type" = "tfc\:overworld"; "spawn-protection" = "0"; }; jvmOpts = [ "-Xmx30G" "-Xms24G" "-XX:+UnlockExperimentalVMOptions" "-XX:G1NewSizePercent=40" "-XX:G1MaxNewSizePercent=50" "-XX:G1HeapRegionSize=16M" "-XX:G1ReservePercent=15" "-XX:InitiatingHeapOccupancyPercent=20" ]; symlinks = { "mods" = "${modpack}/mods"; }; # end symlinks }; # end servers.tfcpack }; # end services.minecraft-servers users.users.gitlab-runner = { isNormalUser = true; home = "/var/lib/gitlab-runner"; createHome = true; shell = pkgs.bashInteractive; extraGroups = [ "docker" "wheel" ]; group = "gitlab-runner"; }; users.groups.gitlab-runner = { }; users.groups.docker = { }; systemd.services."enable-linger-gitlab-runner" = { description = "Enable linger for gitlab-runner"; wantedBy = [ "multi-user.target" ]; serviceConfig = { Type = "oneshot"; ExecStart = "${pkgs.systemd}/bin/loginctl enable-linger gitlab-runner"; RemainAfterExit = true; }; }; # GitLab Runner configured to use the local Docker daemon services.gitlab-runner = { enable = true; services = { ci-nspawn-docker = { authenticationTokenConfigFile = "/var/lib/gitlab-runner/token-env"; executor = "docker"; dockerImage = "alpine:3"; dockerPrivileged = true; dockerVolumes = [ "/var/lib/gitlab-runner/cache:/cache" ]; }; }; }; } # end file