From 1c2dd9bcb0ee29a4db0f4e2cb60c6b070e5ac4b2 Mon Sep 17 00:00:00 2001 From: Simon Gardling Date: Mon, 7 Oct 2024 21:46:36 -0400 Subject: [PATCH] misc fixes --- configuration.nix | 6 +++--- flake.lock | 14 +++++++------- flake.nix | 9 +++++++-- secrets/Jellyfin.Plugin.ListenBrainz.xml | Bin 1393 -> 1392 bytes services/llm.nix | 19 +++++++++++++++++++ services/minecraft.nix | 2 +- services/quadlet.nix | 8 +++++--- 7 files changed, 42 insertions(+), 16 deletions(-) create mode 100644 services/llm.nix diff --git a/configuration.nix b/configuration.nix index 7923c9b..be3ee62 100644 --- a/configuration.nix +++ b/configuration.nix @@ -17,6 +17,7 @@ ./services/immich.nix ./services/gitea.nix ./services/minecraft.nix + ./services/llm.nix ]; systemd.targets = { @@ -26,8 +27,6 @@ hybrid-sleep.enable = false; }; - powerManagement.powertop.enable = true; - nix = { #garbage collection and cleanup stuff gc = { @@ -64,11 +63,11 @@ compressor = "zstd"; compressorArgs = [ "-19" ]; }; + kernelModules = [ # kernel module for case fan control "nct6775" ]; - }; environment.etc = { @@ -230,6 +229,7 @@ "minecraft" "gitea" "jellyfin" + "ollama" ]; hashedPasswordFile = "/etc/nixos/secrets/hashedPass"; diff --git a/flake.lock b/flake.lock index 96c6bab..5c3b03d 100644 --- a/flake.lock +++ b/flake.lock @@ -58,11 +58,11 @@ }, "nixos-hardware": { "locked": { - "lastModified": 1728056216, - "narHash": "sha256-IrO06gFUDTrTlIP3Sz+mRB6WUoO2YsgMtOD3zi0VEt0=", + "lastModified": 1728269138, + "narHash": "sha256-oKxDImsOvgUZMY4NwXVyUc/c1HiU2qInX+b5BU0yXls=", "owner": "NixOS", "repo": "nixos-hardware", - "rev": "b7ca02c7565fbf6d27ff20dd6dbd49c5b82eef28", + "rev": "ecfcd787f373f43307d764762e139a7cdeb9c22b", "type": "github" }, "original": { @@ -74,16 +74,16 @@ }, "nixpkgs": { "locked": { - "lastModified": 1728018373, - "narHash": "sha256-NOiTvBbRLIOe5F6RbHaAh6++BNjsb149fGZd1T4+KBg=", + "lastModified": 1728348559, + "narHash": "sha256-jVgMjAEhwvnuI1WZWoZfM8Luh3zsjn4ZsfOHKKF7kKI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "bc947f541ae55e999ffdb4013441347d83b00feb", + "rev": "6235ae1ef7b09fe720a7f32bd38f74ccb859305a", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-unstable", + "ref": "master", "repo": "nixpkgs", "type": "github" } diff --git a/flake.nix b/flake.nix index 6f07bbf..9c57d1a 100644 --- a/flake.nix +++ b/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"; @@ -39,6 +39,7 @@ torrent = 6011; minecraft = 25565; gitea = 3281; + ollama = 11434; }; https = { @@ -76,6 +77,10 @@ data_dir = service_configs.services_dir + "/jellyfin"; cache_dir = service_configs.services_dir + "/jellyfin_cache"; }; + + ollama = { + data_dir = service_configs.services_dir + "/ollama"; + }; }; in { diff --git a/secrets/Jellyfin.Plugin.ListenBrainz.xml b/secrets/Jellyfin.Plugin.ListenBrainz.xml index 806cdae0ebeec313436b7f4a499b1d345051606c..aa01cea075978240e0a03c38b35fd26324c219f6 100644 GIT binary patch literal 1392 zcmZQ@_Y83kiVO&0xGfd_@U8*V=H|qhwAK3`eV_4)v%|6QL~hQfcB$j9KP}2|zI#f7 z_xH8cr>B*7@i4}1QT@5Zzg1X^|Fd$`N=FG!>$UIBG&QbCvDakZq@Q-)nBgq%{4FaZ zdUk$VbH?QLnmyW8VUw>ptYMg5`sGI3Px&T+mO7JT4-$`koNgf}ApQA<-JS%8V|$kL z?fG|gmO_T$cHuSpSEXc2o7;F<bc9|Nk%4r-)S9t#Jj78 z&&uUzPlZ_Y>GLgTKDRU0Un;S&+aAh)XkW@@Ilsj329>GL7j~9gd&Nt72;{P)phXWNV)E?2|%ryT7) zS(B%kZYM1g`A$SV&g_CzeNBeP&Hcgirx;9fGI}Rm8u56Ymx_)=%+hs<|DGfXIbQTy z*De$1JKIU=O;5bA`qP?>|LbxN{%Oe6lsxb{+`@SM-GdKUcAmVT^VUe;vh{_fs%(2h z{DxBs@549_tw}4FeG_1$Cp|qS^43Y#Gb>)z{P%rp@;$Eeu1=C{Tu4jibG@6{Y`f($ z7CfD<$o|^SrsUJk(2COCYCD?#3S=2t=e^@p&tzUy`b1%txPhjyQ1|NGn9}X~AFIlK zGx2u0`rYM@={~WvUG_jt_Q{PMT{ouiF?j8nxPE<;{MG;QZ#*V6GZa+Ucqy28WvrIw z@lV@o6Y$xFtLN0MBQ8Si_D4VJw6nWSa%b4ol0I?r+W0B{@#{=KoG~xm6_I>7m-)rN z+T5QLx0xP`)Bn@qxKp83_rt>9+eBY;Uk;6npXzzC#oX!0+Av$rz~+|Xx>b9eWppa< zKbo4E`tywZq~rc;uBm^X->7UhLtXCEo&$B;7SF%1i|xU})jkWitToyE`Ks8uaIehe zFQYZQ1KILD7xKKaN|4#8`f}u<}_`i<@^Ru!S9rY7<`gYU}d)>zPd| zuP^IQsrqzae|yx^V>c@Qhx5OFo_|?*&$h(UJ#H$#eX_N~q2Wk0`-vCJ@^^0gu-MLQgS@nhb3%vfH-p=8Cq1V> zHYJ#eG*&wdSpjy@yOE9{>Mt&>fvu+JJnK5&L)Q z5LOJ@vFMTJw0#dtJbWtqPPj*0{kPPu;7Zv!v#FbIZVZ%^yJNhHy+M_KXZgddkG}Q6 zs)yABxY+-i{90qq;xK!Mcvx?twEHW*%Q7;j{pF4yod0Qh$k|j6d1K{|U0z#HM`=pO zT6gG|owwEfy6JQBd;2qwZhx&3(Mh~?dx_`Sn;9R{?w|b}&&>Wz+Pw64s-)e!x+Cv9 zSMLrDG1z);$t-rW>-(-MzdC@2DQ{wtgBwPj8@5nRhBvop@Fs{X$AaaG-I&n@@Pu?dIn`=c!X zVR=M7v(mxx)qG`UN7o2DgsMio_!l&$*Aidp*`&e66%)>au4)^6&iU zzx7sJAn!x!qZN-QT=6Pd-2bmLuw>$@65pI+#fNh)9oTlGRcPCmGcLbwt+=&xb9>E{ zt~(M9!5vyt?AEI&x=p*-ws}hQhgS^ptH1Na4KCY}o z3*wHt@#Xe6t=hAuXjmBt{$-a2Vz}I<0X5q53J3s7<|2;1i zIPq!CS+m*8JYyY}?<`kYwSYrI{PwY=#G}RQm8EvK{S`l6m!zpksNPrEpPy!% z{}N~6?^a&Pn8g~PK6pVV)tyJ&*O``uxqm*jw6cRX`@)>#ZfLT~ST7dWkw3R##?co)rq*0aQ<&E~|BS$Q2K8&&_8;uC*%ac6 z*LRobT;6lYc!{@)mHkoMb1{Ou1uZqduQDz?|Lt4o3dy~Kc5b>7cc(>a?prn8)n@MA z&kDOvzONE5wcu);x9>!@V|2y~owx->y!#GtIqwK?n!bM0#Zxu%IUD=`$gjNk=6#nm z=TzazdF^?L3!dd^nm*lCTvJx}ajDnqtnRF5PduerRDXvSL`*s^?Zz}`-ww&Dh~W9H zCtn}mwB^FV?U^3D8Qgd)7ij1CKJWC`uq!Eo%VI@8?5bZ?|E1@s__=t7qB%DLde8jHTlvm!w~v0a zH_xKlX%~KOni@0Vz`DFgH+!ZYZgIZck#n>?H6VY2(#_6;PQf29ugsjY;+dRO*ymLp ziRBe0?&r1}e2L6XaOyiD^m_V+pQ@ra{!X5-ST!-t`U>MAYv$<}wp(RP(Y#_Rl6oos zhVAxmMehDlpCd0Q?AVn(HKbKpJih9IS7UT)Mow)T>!Rf)?5?wy2rOaj2+i_3uQB^B z|1RkdPt`h>y-#-7x_Ht|-4mI6x3@3c=HDZ8qCl%x_ITXfrIXm7UE}rHCiK(yebAe2 z#%a&&5BBhxgsP|P)lE5fEk-zd@7w3CI_C_F=Ux}l{wFrkqt4y$!P;w<%UO#nTlZ|t zOk{Ox*<2Fm^mXmya}DJIvpa4VG2i(rJ)KYYey1MCy`n7BM4bS`sDD98eml~YLN==P zYgy=>`sMb}=-xetFM3tJh3guZeKJWZ6OPHtsO@Nusvt6FK)=*z*N94>2BB6nb|sHgf;u*8#l8ZXEDCbhh}h#=AWo#j_U`t&?BE TbNLp->WYu9E?ZgWX;=dQU8=H6 diff --git a/services/llm.nix b/services/llm.nix new file mode 100644 index 0000000..73323a2 --- /dev/null +++ b/services/llm.nix @@ -0,0 +1,19 @@ +{ + pkgs, + config, + service_configs, + ... +}: +{ + services.ollama = { + enable = true; + home = service_configs.ollama.data_dir + "/home"; + models = service_configs.ollama.data_dir + "/home/models"; + environmentVariables = { + OLLAMA_LLM_LIBRARY = "cpu_avx2"; + }; + host = "0.0.0.0"; + port = service_configs.ports.ollama; + user = "ollama"; + }; +} diff --git a/services/minecraft.nix b/services/minecraft.nix index 1ca53ed..02cea05 100644 --- a/services/minecraft.nix +++ b/services/minecraft.nix @@ -5,7 +5,7 @@ ... }: let - heap_size = "6144M"; + heap_size = "3000M"; in { nixpkgs.config.allowUnfreePredicate = diff --git a/services/quadlet.nix b/services/quadlet.nix index 5011543..e65ecd3 100644 --- a/services/quadlet.nix +++ b/services/quadlet.nix @@ -1,4 +1,4 @@ -{ service_configs, ... }: +{ service_configs, config, ... }: { virtualisation.quadlet = { containers = { @@ -31,11 +31,13 @@ containerConfig = { image = "lscr.io/linuxserver/qbittorrent:latest"; name = "qbittorrent"; + autoUpdate = "registry"; + environments = { WEBUI_PORT = service_configs.ports.torrent; DOCKER_MODS = "ghcr.io/gabe565/linuxserver-mod-vuetorrent"; - PUID = 1000; - PGID = 1000; + # PUID = 1000; + PGID = config.users.groups.${config.services.jellyfin.group}.gid; }; volumes = [