nixos_config/hosts/tesla-nixos/configuration.nix

110 lines
2.9 KiB
Nix
Raw Normal View History

2026-02-01 16:54:42 +01:00
{ config, pkgs, lib, ... }:
2025-08-12 21:00:01 +02:00
2026-02-01 15:53:16 +01:00
let
modpack = pkgs.fetchPackwizModpack {
url = "https://git.malice.zone/alisceon/tfcpack/-/raw/main/pack.toml";
2026-02-05 12:41:47 +01:00
packHash = "sha256-f3lyvM3jiCG1QH9MlGj8fSoqE3FpCxjSUnvGTHV0PvE=";
2026-02-01 15:53:16 +01:00
};
in
2025-08-12 21:00:01 +02:00
{
2025-09-29 15:56:43 +02:00
security.sudo.wheelNeedsPassword = false;
2025-08-12 21:00:01 +02:00
imports =
[ ./hardware-configuration.nix ];
networking.hostName = "tesla-nixos";
boot.initrd.enable = true;
boot.loader = {
systemd-boot = {
enable = true;
}; # end loader.systemd-boot
}; # end boot
2026-02-01 17:16:27 +01:00
environment.systemPackages = with pkgs; [
tmux
]; # end environment.systemPackages
2025-09-30 20:03:13 +02:00
virtualisation.podman.dockerCompat = false;
virtualisation.docker = {
2025-09-29 17:51:11 +02:00
enable = true;
autoPrune = {
enable = true;
dates = "daily";
2025-09-29 11:23:45 +02:00
};
daemon.settings = {
"runtimes" = {
crun = { path = "${pkgs.crun}/bin/crun"; };
2025-09-29 11:23:45 +02:00
};
"default-runtime" = "crun";
};
};
2026-02-03 19:12:40 +01:00
networking.firewall.allowedTCPPorts = [
8100 #bluemap
];
2026-02-01 15:53:16 +01:00
services.minecraft-servers = {
enable = true;
2026-02-05 12:40:46 +01:00
#managementSystem.systemd-socket.enable = true;
2026-02-01 15:53:16 +01:00
eula = true;
openFirewall = true;
2026-02-01 16:10:29 +01:00
servers.tfcpack = {
2026-02-01 15:53:16 +01:00
enable = true;
2026-02-01 17:01:59 +01:00
package = pkgs.neoforgeServers.neoforge-1_21_1-21_1_219;
2026-02-01 16:10:29 +01:00
autoStart = true;
serverProperties = {
"motd" = "TFC Pack - Tesla Nixos";
"max-players" = "20";
"view-distance" = "32";
"level-type" = "tfc\:overworld";
"spawn-protection" = "0";
2026-02-01 19:23:34 +01:00
"max-tick-time" = "-1";
2026-02-01 15:53:16 +01:00
};
2026-02-01 16:10:29 +01:00
jvmOpts = [
2026-02-01 20:12:11 +01:00
"-Xmx24G"
2026-02-01 16:10:29 +01:00
"-Xms24G"
2026-02-01 18:46:55 +01:00
"-XX:+UseZGC"
"-XX:+ZGenerational"
2026-02-01 16:10:29 +01:00
];
2026-02-01 17:01:59 +01:00
symlinks = {
"mods" = "${modpack}/mods";
}; # end symlinks
2026-02-03 18:56:27 +01:00
files = {
"config/bluemap/core.conf" = "${modpack}/config/bluemap/core.conf";
};# end symlinks
2026-02-01 17:01:59 +01:00
}; # end servers.tfcpack
2026-02-01 16:10:29 +01:00
}; # end services.minecraft-servers
2026-02-01 15:53:16 +01:00
users.users.gitlab-runner = {
2025-09-30 20:02:47 +02:00
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;
};
};
2025-09-29 11:23:45 +02:00
# 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"
];
2025-09-29 18:01:37 +02:00
};
2025-09-29 17:32:31 +02:00
};
};
2025-08-12 21:00:01 +02:00
} # end file
2025-09-29 11:23:45 +02:00