refactoring
This commit is contained in:
parent
59dd30a67d
commit
4ec6a035a5
@ -119,7 +119,7 @@
|
||||
|
||||
tmux
|
||||
|
||||
(pkgs.writeScriptBin "mc-attach" ''
|
||||
(pkgs.writeScriptBin "mc-console" ''
|
||||
#!/bin/sh
|
||||
${pkgs.tmux}/bin/tmux -S /run/minecraft/${service_configs.minecraft.server_name}.sock attach
|
||||
'')
|
||||
@ -237,9 +237,9 @@
|
||||
"render"
|
||||
|
||||
"minecraft"
|
||||
"gitea"
|
||||
"jellyfin"
|
||||
"ollama"
|
||||
config.services.gitea.group
|
||||
config.services.jellyfin.group
|
||||
config.services.caddy.group
|
||||
];
|
||||
hashedPasswordFile = "/etc/nixos/secrets/hashedPass";
|
||||
|
||||
|
||||
20
flake.lock
generated
20
flake.lock
generated
@ -43,11 +43,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1728784327,
|
||||
"narHash": "sha256-Ib1rAnxE4ZZtO3WE7E4+mwivz37gwNOW5qPToJb9RPQ=",
|
||||
"lastModified": 1729129578,
|
||||
"narHash": "sha256-iZnoPpexSDKsCNFWfF6QFsxD/jC+l6GalSqx7Q3L41M=",
|
||||
"owner": "Infinidoge",
|
||||
"repo": "nix-minecraft",
|
||||
"rev": "14f679c6eaba1ef43b6f6092ba82e24cba97c858",
|
||||
"rev": "8a5c546a755ecc089ea8355c5b7ccbe284e8f00e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@ -74,16 +74,16 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1728492678,
|
||||
"narHash": "sha256-9UTxR8eukdg+XZeHgxW5hQA9fIKHsKCdOIUycTryeVw=",
|
||||
"lastModified": 1729194116,
|
||||
"narHash": "sha256-JrdCY/CX30eyUhd7u8hmDgZLuG/HsNDqTu8RQQTpQO0=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "5633bcff0c6162b9e4b5f1264264611e950c8ec7",
|
||||
"rev": "8e8d47269fef696d0264584a33405bae4c9a4005",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"ref": "master",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
@ -95,11 +95,11 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1727065535,
|
||||
"narHash": "sha256-jX83vspAPZnnpFUylUYqP+J1RoZc9w10bbQtsEwD20A=",
|
||||
"lastModified": 1729072507,
|
||||
"narHash": "sha256-srn/XjGNtaO34/CX6H85NVIQ1ksBDOSToMiLu+22Tek=",
|
||||
"owner": "SEIAROTg",
|
||||
"repo": "quadlet-nix",
|
||||
"rev": "51e2beaaf127c8b4460d909c6c29ed9d60bfde0c",
|
||||
"rev": "5970e7be88ec6d063a79c7669a68918c4827caa0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
||||
15
flake.nix
15
flake.nix
@ -2,8 +2,8 @@
|
||||
description = "Flake for server muffin";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
# nixpkgs.url = "github:NixOS/nixpkgs/master";
|
||||
# nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/master";
|
||||
|
||||
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
nix-minecraft,
|
||||
nixos-hardware,
|
||||
...
|
||||
}:
|
||||
}@inputs:
|
||||
let
|
||||
username = "primary";
|
||||
hostname = "muffin";
|
||||
@ -34,11 +34,8 @@
|
||||
# TODO: add checks to make sure none of these collide
|
||||
ports = {
|
||||
https = 443;
|
||||
immich = 3001;
|
||||
jellyfin = 8096;
|
||||
jellyfin = 8096; # no services.jellyfin option for this
|
||||
torrent = 6011;
|
||||
minecraft = 25565;
|
||||
gitea = 3281;
|
||||
ollama = 11434;
|
||||
};
|
||||
|
||||
@ -75,8 +72,7 @@
|
||||
};
|
||||
|
||||
jellyfin = {
|
||||
data_dir = service_configs.services_dir + "/jellyfin";
|
||||
cache_dir = service_configs.services_dir + "/jellyfin_cache";
|
||||
dir = service_configs.services_dir + "/jellyfin";
|
||||
};
|
||||
|
||||
ollama = {
|
||||
@ -92,6 +88,7 @@
|
||||
hostname
|
||||
eth_interface
|
||||
service_configs
|
||||
inputs
|
||||
;
|
||||
};
|
||||
modules = [
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
{ service_configs, ... }:
|
||||
{ config, service_configs, ... }:
|
||||
{
|
||||
services.caddy = {
|
||||
enable = true;
|
||||
@ -15,7 +15,7 @@
|
||||
'';
|
||||
|
||||
"immich.gardling.com".extraConfig = ''
|
||||
reverse_proxy 127.0.0.1:${builtins.toString service_configs.ports.immich}
|
||||
reverse_proxy 127.0.0.1:${builtins.toString config.services.immich.port}
|
||||
'';
|
||||
|
||||
"jellyfin.gardling.com".extraConfig = ''
|
||||
@ -26,7 +26,7 @@
|
||||
'';
|
||||
|
||||
${service_configs.gitea.domain}.extraConfig = ''
|
||||
reverse_proxy 127.0.0.1:${builtins.toString service_configs.ports.gitea}
|
||||
reverse_proxy 127.0.0.1:${builtins.toString config.services.gitea.settings.server.HTTP_PORT}
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
@ -16,8 +16,8 @@
|
||||
settings = {
|
||||
server = {
|
||||
DOMAIN = service_configs.gitea.domain;
|
||||
ROOT_URL = "https://" + service_configs.gitea.domain;
|
||||
HTTP_PORT = service_configs.ports.gitea;
|
||||
ROOT_URL = "https://" + config.services.gitea.settings.server.DOMAIN;
|
||||
HTTP_PORT = 3281;
|
||||
LANDING_PAGE = "/explore/repos";
|
||||
};
|
||||
session = {
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
services.immich = {
|
||||
enable = true;
|
||||
mediaLocation = service_configs.immich.dir;
|
||||
port = service_configs.ports.immich;
|
||||
port = 2283;
|
||||
host = "0.0.0.0";
|
||||
database = {
|
||||
createDB = false;
|
||||
|
||||
@ -16,8 +16,8 @@
|
||||
# used for local streaming
|
||||
openFirewall = true;
|
||||
|
||||
dataDir = service_configs.jellyfin.data_dir;
|
||||
cacheDir = service_configs.jellyfin.cache_dir;
|
||||
dataDir = service_configs.jellyfin.dir;
|
||||
cacheDir = config.services.jellyfin.dataDir + "/cache";
|
||||
};
|
||||
|
||||
users.users.${config.services.jellyfin.user}.extraGroups = [
|
||||
@ -27,7 +27,7 @@
|
||||
|
||||
# https://github.com/lyarenei/jellyfin-plugin-listenbrainz/issues/107
|
||||
system.activationScripts.jellyfinListenBrain.text = ''
|
||||
cp -v /etc/nixos/secrets/Jellyfin.Plugin.ListenBrainz.xml ${service_configs.jellyfin.data_dir}/plugins/configurations/
|
||||
chown ${config.services.jellyfin.user}:${config.services.jellyfin.group} ${service_configs.jellyfin.data_dir}/plugins/configurations/Jellyfin.Plugin.ListenBrainz.xml
|
||||
cp -v /etc/nixos/secrets/Jellyfin.Plugin.ListenBrainz.xml ${config.services.jellyfin.dataDir}/plugins/configurations/
|
||||
chown ${config.services.jellyfin.user}:${config.services.jellyfin.group} ${config.services.jellyfin.dataDir}/plugins/configurations/Jellyfin.Plugin.ListenBrainz.xml
|
||||
'';
|
||||
}
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
services.ollama = {
|
||||
enable = true;
|
||||
home = service_configs.ollama.data_dir + "/home";
|
||||
models = service_configs.ollama.data_dir + "/home/models";
|
||||
models = config.services.ollama.home + "/models";
|
||||
environmentVariables = {
|
||||
OLLAMA_LLM_LIBRARY = "cpu_avx2";
|
||||
};
|
||||
|
||||
@ -24,11 +24,10 @@ in
|
||||
enable = true;
|
||||
package = pkgs.fabricServers.fabric-1_21_1;
|
||||
|
||||
# Aikar's flags
|
||||
jvmOpts = "-Xmx${heap_size} -Xms${heap_size} -XX:+AlwaysPreTouch -XX:+DisableExplicitGC -XX:+ParallelRefProcEnabled -XX:+PerfDisableSharedMem -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1HeapRegionSize=8M -XX:G1HeapWastePercent=5 -XX:G1MaxNewSizePercent=40 -XX:G1MixedGCCountTarget=4 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1NewSizePercent=30 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:G1ReservePercent=20 -XX:InitiatingHeapOccupancyPercent=15 -XX:MaxGCPauseMillis=200 -XX:MaxTenuringThreshold=1 -XX:SurvivorRatio=32";
|
||||
jvmOpts = "-Xmx${heap_size} -Xms${heap_size} -XX:+UseZGC -XX:+ZGenerational";
|
||||
|
||||
serverProperties = {
|
||||
server-port = service_configs.ports.minecraft;
|
||||
server-port = 25565;
|
||||
enforce-whitelist = true;
|
||||
gamemode = "survival";
|
||||
white-list = true;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user