From 578f0231ca9fadea0827c2616a6dfcb8dcab7b48 Mon Sep 17 00:00:00 2001 From: Lilith Date: Wed, 24 Jul 2024 00:36:50 +0200 Subject: [PATCH 1/6] containers --- flake.lock | 24 ++++++++++++------------ hosts/lilith-pc/default.nix | 5 +++++ system/containers/default.nix | 32 ++++++++++++++++++++++++++++++++ system/containers/ollama.nix | 5 +++++ system/full.nix | 3 ++- system/options.nix | 4 +++- 6 files changed, 59 insertions(+), 14 deletions(-) create mode 100644 system/containers/default.nix create mode 100644 system/containers/ollama.nix diff --git a/flake.lock b/flake.lock index 91773710..2b2c0c23 100644 --- a/flake.lock +++ b/flake.lock @@ -5,11 +5,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1718921313, - "narHash": "sha256-TFJah1RW5qnYW7kajjAFPAS5j/0q0R3vz9zPjrRA0Mc=", + "lastModified": 1721074762, + "narHash": "sha256-RhqFBMLh6G5vAo7Jz9mdsworI50E4FAAg7rPho4CNfY=", "owner": "Aylur", "repo": "ags", - "rev": "646d5ad073ff7f8b1d50cfbd40f5b8a250fcd59d", + "rev": "8194f0c9546a150525a2022c17aed51df1464b80", "type": "github" }, "original": { @@ -346,11 +346,11 @@ ] }, "locked": { - "lastModified": 1720734513, - "narHash": "sha256-neWQ8eNtLTd+YMesb7WjKl1SVCbDyCm46LUgP/g/hdo=", + "lastModified": 1721135958, + "narHash": "sha256-H548rpPMsn25LDKn1PCFmPxmWlClJJGnvdzImHkqjuY=", "owner": "nix-community", "repo": "home-manager", - "rev": "90ae324e2c56af10f20549ab72014804a3064c7f", + "rev": "afd2021bedff2de92dfce0e257a3d03ae65c603d", "type": "github" }, "original": { @@ -451,11 +451,11 @@ }, "nixpkgs-stable_2": { "locked": { - "lastModified": 1721059467, - "narHash": "sha256-0Yx4eXowxw5TATf92DZu2qKbBYXPxYh849h9tL/TQR0=", + "lastModified": 1721150952, + "narHash": "sha256-LRuNRlV1JelXkufntUbaVDpI+CEOgHAnI+MTToOT9Hk=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "be45415f0f321f030f8c76723fd15d4b0f3a02fb", + "rev": "4830e090c333af770f3edf2aa4d5a2b183f6455e", "type": "github" }, "original": { @@ -499,11 +499,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1721016451, - "narHash": "sha256-Cypl9ORr5UjtBsbjXMTJRepTe362yNVrPrntUvHiTaw=", + "lastModified": 1721080040, + "narHash": "sha256-USDsS90/88RJibP3gEcH1AaVt+JpnX4XCUD9bAJP5I4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "a14c5d651cee9ed70f9cd9e83f323f1e531002db", + "rev": "b2c1f10bfbb3f617ea8e8669ac13f3f56ceb2ea2", "type": "github" }, "original": { diff --git a/hosts/lilith-pc/default.nix b/hosts/lilith-pc/default.nix index cf48e93e..ecc0c378 100644 --- a/hosts/lilith-pc/default.nix +++ b/hosts/lilith-pc/default.nix @@ -4,6 +4,11 @@ extraConfig = { config.gaming.enable = true; + config.docker = { + enable = true; + ollama.enable = true; + }; + config.hyprlandOverrides = { settings = { input = { diff --git a/system/containers/default.nix b/system/containers/default.nix new file mode 100644 index 00000000..bcd74928 --- /dev/null +++ b/system/containers/default.nix @@ -0,0 +1,32 @@ +{ pkgs, lib, config, conf, ...}: { + imports = [ + + ] ++ lib.optional config.docker.ollama.enable ./ollama.nix + ; + + environment.systemPackages = with pkgs; [ + arion + docker-client + ]; + + virtualization = { + docker.enable = false; + podman.enable = true; + podman.dockerSocket.enable = true; + podman.defaultNetwork.dnsname.enable = true; + + arion.projects.ollama = lib.mkIf config.containers.ollama.enable { + settings.services = { + ollama = { + service = { + image = "ollama/ollama:sha256:4325d935cd6e07cfa840eb193aad0594ba6cbc97ca9d0778f6716507cb3955ed"; + useHostStore = true; + }; + }; + }; + }; + }; + + users.users.${conf.user}.extraGroups = ["podman"]; +} + diff --git a/system/containers/ollama.nix b/system/containers/ollama.nix new file mode 100644 index 00000000..8da0ff1f --- /dev/null +++ b/system/containers/ollama.nix @@ -0,0 +1,5 @@ +{...}: { + projects.ollama = { + + } +} diff --git a/system/full.nix b/system/full.nix index 633bd9f5..14e02217 100644 --- a/system/full.nix +++ b/system/full.nix @@ -18,5 +18,6 @@ ./syncthing.nix ./wayland.nix ./zsh.nix - ]; + ] ++ lib.optional config.containers.enable ./containers + ; } diff --git a/system/options.nix b/system/options.nix index 88ce587b..95ee29f1 100644 --- a/system/options.nix +++ b/system/options.nix @@ -1,6 +1,8 @@ {lib, ...}: { options.gaming.enable = lib.mkEnableOption "Enable gaming"; - config.gaming.enable = lib.mkDefault false; + + options.containers.enable = lib.mkEnableOption "Enable podman"; + options.containers.ollama.enable = lib.mkEnableOption "Run Ollama container"; options.hyprlandOverrides = lib.mkOption { # type = lib.types.attributeSet; From 81a3c9ac6788b1f0f06366dc4b069664d17fcbf4 Mon Sep 17 00:00:00 2001 From: Lilith Date: Wed, 24 Jul 2024 00:37:08 +0200 Subject: [PATCH 2/6] containers --- system/containers/default.nix | 5 ----- 1 file changed, 5 deletions(-) diff --git a/system/containers/default.nix b/system/containers/default.nix index bcd74928..cadbe2c8 100644 --- a/system/containers/default.nix +++ b/system/containers/default.nix @@ -1,9 +1,4 @@ { pkgs, lib, config, conf, ...}: { - imports = [ - - ] ++ lib.optional config.docker.ollama.enable ./ollama.nix - ; - environment.systemPackages = with pkgs; [ arion docker-client From a7d3e5b7b9c66fa1436c20ce8427b9d9b1f1a412 Mon Sep 17 00:00:00 2001 From: Lilith Date: Wed, 24 Jul 2024 01:01:20 +0200 Subject: [PATCH 3/6] containers --- system/containers/default.nix | 28 ++++------------------------ system/containers/ollama.nix | 5 ----- system/env.nix | 2 +- system/full.nix | 6 +++--- 4 files changed, 8 insertions(+), 33 deletions(-) delete mode 100644 system/containers/ollama.nix diff --git a/system/containers/default.nix b/system/containers/default.nix index cadbe2c8..c6b2df7d 100644 --- a/system/containers/default.nix +++ b/system/containers/default.nix @@ -1,27 +1,7 @@ -{ pkgs, lib, config, conf, ...}: { - environment.systemPackages = with pkgs; [ - arion - docker-client - ]; - - virtualization = { - docker.enable = false; - podman.enable = true; - podman.dockerSocket.enable = true; - podman.defaultNetwork.dnsname.enable = true; - - arion.projects.ollama = lib.mkIf config.containers.ollama.enable { - settings.services = { - ollama = { - service = { - image = "ollama/ollama:sha256:4325d935cd6e07cfa840eb193aad0594ba6cbc97ca9d0778f6716507cb3955ed"; - useHostStore = true; - }; - }; - }; +{ config, lib, ...}: { + config = lib.mkIf config.containers.enable { + virtualization.oci-containers.containers.ollama = lib.mkIf config.containers.ollama.enable { + image = "ollama/ollama@sha256:4325d935cd6e07cfa840eb193aad0594ba6cbc97ca9d0778f6716507cb3955ed"; }; }; - - users.users.${conf.user}.extraGroups = ["podman"]; } - diff --git a/system/containers/ollama.nix b/system/containers/ollama.nix deleted file mode 100644 index 8da0ff1f..00000000 --- a/system/containers/ollama.nix +++ /dev/null @@ -1,5 +0,0 @@ -{...}: { - projects.ollama = { - - } -} diff --git a/system/env.nix b/system/env.nix index 957336d9..c630d856 100644 --- a/system/env.nix +++ b/system/env.nix @@ -2,7 +2,7 @@ environment.variables = { EDITOR = "hx"; VISUAL = "hx"; - FLAKE = conf.home + /nixos; + FLAKE = "${conf.home}/nixos"; ELECTRON_OZONE_PLATFORM_HINT = "auto"; }; } diff --git a/system/full.nix b/system/full.nix index 14e02217..854733a2 100644 --- a/system/full.nix +++ b/system/full.nix @@ -1,4 +1,4 @@ -{lib, config, ...}: { +{lib, config, conf, ...}: { imports = [ ./audio.nix ./env.nix @@ -18,6 +18,6 @@ ./syncthing.nix ./wayland.nix ./zsh.nix - ] ++ lib.optional config.containers.enable ./containers - ; + ./containers + ]; } From e326eef6f43a51c9b72dafe64c60769eca69e9ba Mon Sep 17 00:00:00 2001 From: Lilith Date: Wed, 24 Jul 2024 01:03:36 +0200 Subject: [PATCH 4/6] containers --- hosts/lilith-pc/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hosts/lilith-pc/default.nix b/hosts/lilith-pc/default.nix index ecc0c378..9646b669 100644 --- a/hosts/lilith-pc/default.nix +++ b/hosts/lilith-pc/default.nix @@ -4,7 +4,7 @@ extraConfig = { config.gaming.enable = true; - config.docker = { + config.containers = { enable = true; ollama.enable = true; }; From 6bd365f84e88d944771b49d4a29721b2e920efd4 Mon Sep 17 00:00:00 2001 From: Lilith Date: Wed, 24 Jul 2024 01:12:33 +0200 Subject: [PATCH 5/6] ollama --- hosts/lilith-pc/default.nix | 5 +---- system/containers/default.nix | 7 ------- system/full.nix | 3 +-- system/ollama.nix | 6 ++++++ system/options.nix | 3 +-- 5 files changed, 9 insertions(+), 15 deletions(-) delete mode 100644 system/containers/default.nix create mode 100644 system/ollama.nix diff --git a/hosts/lilith-pc/default.nix b/hosts/lilith-pc/default.nix index 9646b669..5d8a67f4 100644 --- a/hosts/lilith-pc/default.nix +++ b/hosts/lilith-pc/default.nix @@ -4,10 +4,7 @@ extraConfig = { config.gaming.enable = true; - config.containers = { - enable = true; - ollama.enable = true; - }; + config.ollama.enable = true; config.hyprlandOverrides = { settings = { diff --git a/system/containers/default.nix b/system/containers/default.nix deleted file mode 100644 index c6b2df7d..00000000 --- a/system/containers/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ config, lib, ...}: { - config = lib.mkIf config.containers.enable { - virtualization.oci-containers.containers.ollama = lib.mkIf config.containers.ollama.enable { - image = "ollama/ollama@sha256:4325d935cd6e07cfa840eb193aad0594ba6cbc97ca9d0778f6716507cb3955ed"; - }; - }; -} diff --git a/system/full.nix b/system/full.nix index 854733a2..3852050b 100644 --- a/system/full.nix +++ b/system/full.nix @@ -18,6 +18,5 @@ ./syncthing.nix ./wayland.nix ./zsh.nix - ./containers - ]; + ] ++ (lib.optional config.ollama.enable ./ollama.nix); } diff --git a/system/ollama.nix b/system/ollama.nix new file mode 100644 index 00000000..6dfac9f1 --- /dev/null +++ b/system/ollama.nix @@ -0,0 +1,6 @@ +{...}: { + services.ollama = { + enable = true; + acceleration = "rocm"; + }; +} diff --git a/system/options.nix b/system/options.nix index 95ee29f1..c9d3d518 100644 --- a/system/options.nix +++ b/system/options.nix @@ -1,8 +1,7 @@ {lib, ...}: { options.gaming.enable = lib.mkEnableOption "Enable gaming"; - options.containers.enable = lib.mkEnableOption "Enable podman"; - options.containers.ollama.enable = lib.mkEnableOption "Run Ollama container"; + options.ollama.enable = lib.mkEnableOption "Install Ollama for local LLMs"; options.hyprlandOverrides = lib.mkOption { # type = lib.types.attributeSet; From bd49791e06f3ab5f04a4c0097b7fc6a6a1f39494 Mon Sep 17 00:00:00 2001 From: Lilith Date: Wed, 24 Jul 2024 01:15:10 +0200 Subject: [PATCH 6/6] ollama --- system/full.nix | 5 ++++- system/ollama.nix | 10 ++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/system/full.nix b/system/full.nix index 3852050b..ff59c43a 100644 --- a/system/full.nix +++ b/system/full.nix @@ -18,5 +18,8 @@ ./syncthing.nix ./wayland.nix ./zsh.nix - ] ++ (lib.optional config.ollama.enable ./ollama.nix); + + + ./ollama.nix + ]; } diff --git a/system/ollama.nix b/system/ollama.nix index 6dfac9f1..52f29ae2 100644 --- a/system/ollama.nix +++ b/system/ollama.nix @@ -1,6 +1,8 @@ -{...}: { - services.ollama = { - enable = true; - acceleration = "rocm"; +{ options, lib, ...}: { + options = lib.mkIf options.ollama.enable { + services.ollama = { + enable = true; + acceleration = "rocm"; + }; }; }