Compare commits
1 commit
956c5bd258
...
90809ec826
| Author | SHA1 | Date | |
|---|---|---|---|
| 90809ec826 |
4 changed files with 17 additions and 108 deletions
|
|
@ -22,7 +22,6 @@
|
||||||
./services/foundryvtt.nix
|
./services/foundryvtt.nix
|
||||||
./services/gitea.nix
|
./services/gitea.nix
|
||||||
./services/metrics
|
./services/metrics
|
||||||
./services/minecraft.nix
|
|
||||||
./services/nextcloud.nix
|
./services/nextcloud.nix
|
||||||
./services/webserver.nix
|
./services/webserver.nix
|
||||||
./services/wireguard.nix
|
./services/wireguard.nix
|
||||||
|
|
@ -71,6 +70,8 @@
|
||||||
8448
|
8448
|
||||||
# starbound
|
# starbound
|
||||||
21025
|
21025
|
||||||
|
# Minecraft
|
||||||
|
25565
|
||||||
|
|
||||||
config.services.coturn.listening-port
|
config.services.coturn.listening-port
|
||||||
config.services.coturn.tls-listening-port
|
config.services.coturn.tls-listening-port
|
||||||
|
|
@ -79,6 +80,9 @@
|
||||||
];
|
];
|
||||||
|
|
||||||
allowedUDPPorts = [
|
allowedUDPPorts = [
|
||||||
|
# More minecraft
|
||||||
|
25565
|
||||||
|
|
||||||
config.services.coturn.listening-port
|
config.services.coturn.listening-port
|
||||||
config.services.coturn.tls-listening-port
|
config.services.coturn.tls-listening-port
|
||||||
config.services.coturn.alt-listening-port
|
config.services.coturn.alt-listening-port
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@ in
|
||||||
|
|
||||||
{
|
{
|
||||||
name = "Victorialogs - tlater.net";
|
name = "Victorialogs - tlater.net";
|
||||||
url = "http://${config.services.victorialogs.bindAddress}";
|
url = "http://127.0.0.1::9428";
|
||||||
type = "victoriametrics-logs-datasource";
|
type = "victoriametrics-logs-datasource";
|
||||||
access = "proxy";
|
access = "proxy";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,31 +4,19 @@
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
cfg = config.services.victorialogs;
|
listenAddress = config.services.victorialogs.listenAddress;
|
||||||
|
bindAddress = (lib.optionalString (lib.hasPrefix ":" listenAddress) "127.0.0.1") + listenAddress;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
options.services.victorialogs.bindAddress = lib.mkOption {
|
services.victorialogs.enable = true;
|
||||||
readOnly = true;
|
|
||||||
type = lib.types.str;
|
services.journald.upload = {
|
||||||
description = ''
|
enable = true;
|
||||||
Final address on which victorialogs listens.
|
settings.Upload = {
|
||||||
'';
|
URL = "http://${bindAddress}/insert/journald";
|
||||||
|
NetworkTimeoutSec = "20s";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = {
|
systemd.services."systemd-journal-upload".after = [ "victorialogs.service" ];
|
||||||
services.victorialogs = {
|
|
||||||
enable = true;
|
|
||||||
bindAddress =
|
|
||||||
(lib.optionalString (lib.hasPrefix ":" cfg.listenAddress) "127.0.0.1") + cfg.listenAddress;
|
|
||||||
};
|
|
||||||
|
|
||||||
services.journald.upload = {
|
|
||||||
enable = true;
|
|
||||||
settings.Upload = {
|
|
||||||
URL = "http://${cfg.bindAddress}/insert/journald";
|
|
||||||
NetworkTimeoutSec = "20s";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
systemd.services."systemd-journal-upload".after = [ "victorialogs.service" ];
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,83 +0,0 @@
|
||||||
{
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
services.minecraft-server = {
|
|
||||||
enable = true;
|
|
||||||
eula = true;
|
|
||||||
# jvmOpts are set using a file for forge
|
|
||||||
# jvmOpts = "-Xmx8G -Xms8G";
|
|
||||||
openFirewall = true;
|
|
||||||
|
|
||||||
declarative = true;
|
|
||||||
|
|
||||||
whitelist = {
|
|
||||||
tlater = "140d177a-966f-41b8-a4c0-e305babd291b";
|
|
||||||
romino25 = "59cd1648-14a4-4bcf-8f5a-2e1bde678f2c";
|
|
||||||
lasi25 = "0ab6e3d1-544a-47e7-8538-2e6c248e49a4";
|
|
||||||
};
|
|
||||||
|
|
||||||
serverProperties = {
|
|
||||||
allow-flight = true;
|
|
||||||
difficulty = "hard";
|
|
||||||
motd = "tlater.net";
|
|
||||||
spawn-protection = 1;
|
|
||||||
white-list = true;
|
|
||||||
enable-query = true;
|
|
||||||
enable-status = true;
|
|
||||||
|
|
||||||
# Allows the server to write chunks without hogging the main
|
|
||||||
# thread...
|
|
||||||
sync-chunk-writes = false;
|
|
||||||
# Disables chat reporting, because we don't need any of that
|
|
||||||
# drama on a lil' friends-only server.
|
|
||||||
enforce-secure-profile = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
package = pkgs.writeShellApplication {
|
|
||||||
name = "minecraft-server";
|
|
||||||
runtimeInputs = with pkgs; [ jdk17_headless ];
|
|
||||||
|
|
||||||
text = ''
|
|
||||||
exec /var/lib/minecraft/run.sh $@
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.services.minecraft-server = {
|
|
||||||
path = with pkgs; [ jdk17_headless ];
|
|
||||||
|
|
||||||
# Since we read from our own HTTP server, we need to wait for it
|
|
||||||
# to be up
|
|
||||||
after = [ "nginx.service" ];
|
|
||||||
|
|
||||||
serviceConfig = {
|
|
||||||
# Use packwiz to install mods
|
|
||||||
ExecStartPre = [
|
|
||||||
"${pkgs.jdk17_headless}/bin/java -jar ${config.services.minecraft-server.dataDir}/packwiz-installer-bootstrap.jar -g -s server 'https://minecraft.${config.services.nginx.domain}/cobblemon-pack/pack.toml'"
|
|
||||||
];
|
|
||||||
# Forge requires some bonus JVM options, which they include in a
|
|
||||||
# little `run.sh` script
|
|
||||||
ExecStart = lib.mkForce "${config.services.minecraft-server.dataDir}/run.sh --nogui";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.tmpfiles.settings."10-minecraft" = {
|
|
||||||
"/srv/minecraft".d = {
|
|
||||||
user = "nginx";
|
|
||||||
group = "minecraft";
|
|
||||||
mode = "0775";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.nginx.virtualHosts."minecraft.${config.services.nginx.domain}" = {
|
|
||||||
forceSSL = true;
|
|
||||||
useACMEHost = "tlater.net";
|
|
||||||
enableHSTS = true;
|
|
||||||
|
|
||||||
root = "/srv/minecraft";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue