112 lines
2.9 KiB
Nix
112 lines
2.9 KiB
Nix
{ inputs, config, pkgs, lib, ... }:
|
|
|
|
let
|
|
modpack = pkgs.fetchPackwizModpack {
|
|
url = "https://git.malice.zone/alisceon/tfcpack/-/raw/main/pack.toml";
|
|
packHash = "";
|
|
};
|
|
in
|
|
{
|
|
nixpkgs.overlays = [ inputs.nix-minecraft.overlay ];
|
|
|
|
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
|
|
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 = {
|
|
enable = true;
|
|
eula = true;
|
|
openFirewall = true;
|
|
servers.tfcpack = {
|
|
enable = true;
|
|
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:G1NewSizePercent=40"
|
|
"-XX:G1MaxNewSizePercent=50"
|
|
"-XX:G1HeapRegionSize=16M"
|
|
"-XX:G1ReservePercent=15"
|
|
"-XX:InitiatingHeapOccupancyPercent=20"
|
|
];
|
|
package = pkgs.neoforgeServers.neoforge-1_21_1-21_1_219;
|
|
};
|
|
symlinks = {
|
|
"mods" = "${modpack}/mods";
|
|
}; # end servers.minecraft-servers.neoforge
|
|
}; # 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
|
|
|