mirror of
https://github.com/gensokyo-zone/infrastructure.git
synced 2026-02-09 04:19:19 -08:00
chore: nf-fmt-nix
This commit is contained in:
parent
7cdcaad10d
commit
d04959b11a
5 changed files with 87 additions and 44 deletions
|
|
@ -72,7 +72,10 @@ in {
|
||||||
return = "302 https://wiki.${domain}/minecraft/";
|
return = "302 https://wiki.${domain}/minecraft/";
|
||||||
};
|
};
|
||||||
"/minecraft/map" = {xvars, ...}: let
|
"/minecraft/map" = {xvars, ...}: let
|
||||||
defaultMap = if minecraft.ports.bluemap.enable then "bmap" else "dmap";
|
defaultMap =
|
||||||
|
if minecraft.ports.bluemap.enable
|
||||||
|
then "bmap"
|
||||||
|
else "dmap";
|
||||||
in {
|
in {
|
||||||
return = "302 ${xvars.get.scheme}://${xvars.get.host}/minecraft/${defaultMap}/";
|
return = "302 ${xvars.get.scheme}://${xvars.get.host}/minecraft/${defaultMap}/";
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,8 @@
|
||||||
{config, lib, ...}: let
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
in {
|
in {
|
||||||
users = {
|
users = {
|
||||||
groups.backups = {
|
groups.backups = {
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,10 @@
|
||||||
{pkgs, config, systemConfig, lib, ...}: let
|
{
|
||||||
|
pkgs,
|
||||||
|
config,
|
||||||
|
systemConfig,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
inherit (lib.modules) mkIf mkMerge mkDefault;
|
inherit (lib.modules) mkIf mkMerge mkDefault;
|
||||||
inherit (lib.attrsets) mapAttrs' mapAttrsToList nameValuePair;
|
inherit (lib.attrsets) mapAttrs' mapAttrsToList nameValuePair;
|
||||||
inherit (lib.lists) concatMap toList;
|
inherit (lib.lists) concatMap toList;
|
||||||
|
|
@ -34,7 +40,8 @@
|
||||||
ls = "${pkgs.coreutils}/bin/ls";
|
ls = "${pkgs.coreutils}/bin/ls";
|
||||||
tail = "${pkgs.coreutils}/bin/tail";
|
tail = "${pkgs.coreutils}/bin/tail";
|
||||||
mkLatestDb = database: ''${ls} ${mkSharedPath "plex/Databases/${database}"}* | ${tail} -n1'';
|
mkLatestDb = database: ''${ls} ${mkSharedPath "plex/Databases/${database}"}* | ${tail} -n1'';
|
||||||
in concatMapStringsSep " &&\n" mkLatestDb databases;
|
in
|
||||||
|
concatMapStringsSep " &&\n" mkLatestDb databases;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
postgresql = {
|
postgresql = {
|
||||||
|
|
@ -58,7 +65,14 @@
|
||||||
in {
|
in {
|
||||||
services.restic.backups = let
|
services.restic.backups = let
|
||||||
isBackup = config.networking.hostName == "hakurei";
|
isBackup = config.networking.hostName == "hakurei";
|
||||||
mkBackupB2 = name: subpath': { config, enable ? config.enable, user ? config.user or null, subpath ? subpath', compression ? "max", settings ? {} }: let
|
mkBackupB2 = name: subpath': {
|
||||||
|
config,
|
||||||
|
enable ? config.enable,
|
||||||
|
user ? config.user or null,
|
||||||
|
subpath ? subpath',
|
||||||
|
compression ? "max",
|
||||||
|
settings ? {},
|
||||||
|
}: let
|
||||||
tags = [
|
tags = [
|
||||||
"infra"
|
"infra"
|
||||||
"shared-${name}"
|
"shared-${name}"
|
||||||
|
|
@ -72,7 +86,8 @@ in {
|
||||||
paths = map mkSharedPath (toList subpath);
|
paths = map mkSharedPath (toList subpath);
|
||||||
extraBackupArgs = mkMerge [
|
extraBackupArgs = mkMerge [
|
||||||
(mkIf (compression != "auto") [
|
(mkIf (compression != "auto") [
|
||||||
"--compression" compression
|
"--compression"
|
||||||
|
compression
|
||||||
])
|
])
|
||||||
(concatMap (tag: ["--tag" tag]) tags)
|
(concatMap (tag: ["--tag" tag]) tags)
|
||||||
];
|
];
|
||||||
|
|
@ -82,13 +97,24 @@ in {
|
||||||
RandomizedDelaySec = "4h";
|
RandomizedDelaySec = "4h";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
in mkIf (enable || isBackup) (mkMerge [ conf settings ]);
|
in
|
||||||
|
mkIf (enable || isBackup) (mkMerge [conf settings]);
|
||||||
backups = mapAttrs' (subpath: service: let
|
backups = mapAttrs' (subpath: service: let
|
||||||
name = replaceStrings [ "/" ] [ "-" ] subpath;
|
name = replaceStrings ["/"] ["-"] subpath;
|
||||||
in nameValuePair "${name}-b2" (mkBackupB2 name subpath service)) sharedServices;
|
in
|
||||||
in backups;
|
nameValuePair "${name}-b2" (mkBackupB2 name subpath service))
|
||||||
|
sharedServices;
|
||||||
|
in
|
||||||
|
backups;
|
||||||
users.groups.${group} = {
|
users.groups.${group} = {
|
||||||
members = mapAttrsToList (_: { config, enable ? config.enable, user ? config.user or null, ... }: mkIf (enable && user != null) user) sharedServices;
|
members = mapAttrsToList (_: {
|
||||||
|
config,
|
||||||
|
enable ? config.enable,
|
||||||
|
user ? config.user or null,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
mkIf (enable && user != null) user)
|
||||||
|
sharedServices;
|
||||||
};
|
};
|
||||||
sops.secrets = let
|
sops.secrets = let
|
||||||
sopsFile = mkDefault ../secrets/restic.yaml;
|
sopsFile = mkDefault ../secrets/restic.yaml;
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,8 @@
|
||||||
repo = "minecraft-modpack";
|
repo = "minecraft-modpack";
|
||||||
branch = "marka-${versions.majorMinor mcVersion}";
|
branch = "marka-${versions.majorMinor mcVersion}";
|
||||||
pages = true;
|
pages = true;
|
||||||
packUrl = if pages
|
packUrl =
|
||||||
|
if pages
|
||||||
then "https://${owner}.github.io/${repo}/pack.toml"
|
then "https://${owner}.github.io/${repo}/pack.toml"
|
||||||
else "https://raw.githubusercontent.com/${owner}/${repo}/refs/heads/${branch}/pack.toml";
|
else "https://raw.githubusercontent.com/${owner}/${repo}/refs/heads/${branch}/pack.toml";
|
||||||
};
|
};
|
||||||
|
|
@ -42,12 +43,13 @@ in {
|
||||||
broadcast-console-to-ops = false;
|
broadcast-console-to-ops = false;
|
||||||
op-permission-level = 2;
|
op-permission-level = 2;
|
||||||
};
|
};
|
||||||
in mkMerge [
|
in
|
||||||
(mapDefaults props)
|
mkMerge [
|
||||||
(mkIf enableDynmap {
|
(mapDefaults props)
|
||||||
max-tick-time = 60000 * 12;
|
(mkIf enableDynmap {
|
||||||
})
|
max-tick-time = 60000 * 12;
|
||||||
];
|
})
|
||||||
|
];
|
||||||
allowPlayers = {
|
allowPlayers = {
|
||||||
katrynn = {
|
katrynn = {
|
||||||
uuid = "356d8cf2-246a-4c07-b547-422aea06c0ab";
|
uuid = "356d8cf2-246a-4c07-b547-422aea06c0ab";
|
||||||
|
|
@ -99,18 +101,21 @@ in {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
preStart = let
|
preStart = let
|
||||||
forgeDir = {
|
forgeDir =
|
||||||
neoforge = "neoforged/neoforge";
|
{
|
||||||
forge = "minecraftforge/forge";
|
neoforge = "neoforged/neoforge";
|
||||||
}.${forge};
|
forge = "minecraftforge/forge";
|
||||||
in mkMerge [
|
}
|
||||||
"${pkgs.coreutils}/bin/ln -sf $PWD/libraries/net/${forgeDir}/*/unix_args.txt $RUNTIME_DIRECTORY/unix_args.txt"
|
.${forge};
|
||||||
(mkIf packwizUpdate ''
|
in
|
||||||
if ! java -jar packwiz-installer-bootstrap.jar -g -s server ${modpack.packUrl}; then
|
mkMerge [
|
||||||
echo "packwiz update failed" >&2
|
"${pkgs.coreutils}/bin/ln -sf $PWD/libraries/net/${forgeDir}/*/unix_args.txt $RUNTIME_DIRECTORY/unix_args.txt"
|
||||||
fi
|
(mkIf packwizUpdate ''
|
||||||
'')
|
if ! java -jar packwiz-installer-bootstrap.jar -g -s server ${modpack.packUrl}; then
|
||||||
];
|
echo "packwiz update failed" >&2
|
||||||
|
fi
|
||||||
|
'')
|
||||||
|
];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
BindPaths = [
|
BindPaths = [
|
||||||
"${backupsDir}:${cfg.dataDir}/simplebackups"
|
"${backupsDir}:${cfg.dataDir}/simplebackups"
|
||||||
|
|
@ -124,15 +129,16 @@ in {
|
||||||
};
|
};
|
||||||
tmpfiles.rules = let
|
tmpfiles.rules = let
|
||||||
inherit (config.systemd.services.minecraft-java-server.gensokyo-zone) cacheMounts;
|
inherit (config.systemd.services.minecraft-java-server.gensokyo-zone) cacheMounts;
|
||||||
in mkMerge [
|
in
|
||||||
[
|
mkMerge [
|
||||||
#["d ${backupsDir} 775 ${cfg.user} ${cfg.group} - -"]
|
[
|
||||||
"d ${cacheMounts."minecraft/logs".source} 750 ${cfg.user} ${cfg.group} - -"
|
#["d ${backupsDir} 775 ${cfg.user} ${cfg.group} - -"]
|
||||||
"d ${cacheMounts."minecraft/mods".source} 750 ${cfg.user} ${cfg.group} - -"
|
"d ${cacheMounts."minecraft/logs".source} 750 ${cfg.user} ${cfg.group} - -"
|
||||||
]
|
"d ${cacheMounts."minecraft/mods".source} 750 ${cfg.user} ${cfg.group} - -"
|
||||||
(mkIf enableDynmap ["d ${cacheMounts."minecraft/dynmap".source} 750 ${cfg.user} ${cfg.group} - -"])
|
]
|
||||||
(mkIf enableBluemap ["d ${cacheMounts."minecraft/bluemap".source} 750 ${cfg.user} ${cfg.group} - -"])
|
(mkIf enableDynmap ["d ${cacheMounts."minecraft/dynmap".source} 750 ${cfg.user} ${cfg.group} - -"])
|
||||||
];
|
(mkIf enableBluemap ["d ${cacheMounts."minecraft/bluemap".source} 750 ${cfg.user} ${cfg.group} - -"])
|
||||||
|
];
|
||||||
};
|
};
|
||||||
networking.firewall = mkIf cfg.enable {
|
networking.firewall = mkIf cfg.enable {
|
||||||
interfaces.local = {
|
interfaces.local = {
|
||||||
|
|
|
||||||
|
|
@ -25,9 +25,11 @@ in {
|
||||||
systemd.services.plex = mkIf cfg.enable {
|
systemd.services.plex = mkIf cfg.enable {
|
||||||
gensokyo-zone = {
|
gensokyo-zone = {
|
||||||
sharedMounts.plex.path = mkDefault cfg.dataDir;
|
sharedMounts.plex.path = mkDefault cfg.dataDir;
|
||||||
cacheMounts = mapAttrs' (name: _: nameValuePair "plex/${name}" {
|
cacheMounts = mapAttrs' (name: _:
|
||||||
path = mkDefault "${cfg.dataDir}/${name}";
|
nameValuePair "plex/${name}" {
|
||||||
}) plexCaches;
|
path = mkDefault "${cfg.dataDir}/${name}";
|
||||||
|
})
|
||||||
|
plexCaches;
|
||||||
};
|
};
|
||||||
# /var/lib/plex/mesa_shader_cache
|
# /var/lib/plex/mesa_shader_cache
|
||||||
environment.MESA_SHADER_CACHE_DIR = mkDefault cfg.dataDir;
|
environment.MESA_SHADER_CACHE_DIR = mkDefault cfg.dataDir;
|
||||||
|
|
@ -36,8 +38,10 @@ in {
|
||||||
ln = "${pkgs.coreutils}/bin/ln";
|
ln = "${pkgs.coreutils}/bin/ln";
|
||||||
install = "${pkgs.coreutils}/bin/install";
|
install = "${pkgs.coreutils}/bin/install";
|
||||||
# systemd doesn't seem to like spaces so use a symlink instead...
|
# systemd doesn't seem to like spaces so use a symlink instead...
|
||||||
mkCacheSetup = name: { path ? "Plex Media Server/${subpath}", subpath ? name }:
|
mkCacheSetup = name: {
|
||||||
''${ln} -srfT "$PLEX_DATADIR/"${escapeShellArg name} "$PLEX_DATADIR/"${escapeShellArg path}'';
|
path ? "Plex Media Server/${subpath}",
|
||||||
|
subpath ? name,
|
||||||
|
}: ''${ln} -srfT "$PLEX_DATADIR/"${escapeShellArg name} "$PLEX_DATADIR/"${escapeShellArg path}'';
|
||||||
cacheSetup = mapAttrsToList mkCacheSetup (filterAttrs (_: cache: cache.path or "" != null) plexCaches);
|
cacheSetup = mapAttrsToList mkCacheSetup (filterAttrs (_: cache: cache.path or "" != null) plexCaches);
|
||||||
preStartScript = pkgs.writeShellScript "plex-run-prestart" ''
|
preStartScript = pkgs.writeShellScript "plex-run-prestart" ''
|
||||||
set -eu
|
set -eu
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue