From 9ba39dbff4553cac4c6fe4bc7f8b09a317bb7a2b Mon Sep 17 00:00:00 2001 From: Lukas Date: Thu, 6 Nov 2025 12:00:23 +0100 Subject: [PATCH] setup local llms with websearch --- flake.lock | 15 ++++++------ flake.nix | 8 +++--- home/lukas/common/git.nix | 8 +----- home/lukas/tower/default.nix | 1 - home/lukas/tower/ollama.nix | 8 ------ home/lukas/tower/packages.nix | 7 ++++++ hosts/segfault-tower/configuration.nix | 4 +-- modules/desktop/gnome.nix | 9 ++++--- modules/services/ollama.nix | 34 ++++++++++++++++++++++++++ modules/system/docker.nix | 1 + 10 files changed, 64 insertions(+), 31 deletions(-) delete mode 100644 home/lukas/tower/ollama.nix create mode 100644 modules/services/ollama.nix diff --git a/flake.lock b/flake.lock index 02692a1..d573f01 100644 --- a/flake.lock +++ b/flake.lock @@ -7,31 +7,32 @@ ] }, "locked": { - "lastModified": 1762041416, - "narHash": "sha256-rmJKABRXnhFjjI6RB/MnEvLTQa569zu684Th9y6UlOI=", + "lastModified": 1758463745, + "narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=", "owner": "nix-community", "repo": "home-manager", - "rev": "c0016dd14773f4ca0b467b74c7cdcc501570df4b", + "rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3", "type": "github" }, "original": { "owner": "nix-community", + "ref": "release-25.05", "repo": "home-manager", "type": "github" } }, "nixpkgs": { "locked": { - "lastModified": 1761907660, - "narHash": "sha256-kJ8lIZsiPOmbkJypG+B5sReDXSD1KGu2VEPNqhRa/ew=", + "lastModified": 1761999846, + "narHash": "sha256-IYlYnp4O4dzEpL77BD/lj5NnJy2J8qbHkNSFiPBCbqo=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "2fb006b87f04c4d3bdf08cfdbc7fab9c13d94a15", + "rev": "3de8f8d73e35724bf9abef41f1bdbedda1e14a31", "type": "github" }, "original": { "owner": "NixOS", - "ref": "nixos-unstable", + "ref": "nixos-25.05", "repo": "nixpkgs", "type": "github" } diff --git a/flake.nix b/flake.nix index a85af8b..0da5bfc 100644 --- a/flake.nix +++ b/flake.nix @@ -2,10 +2,10 @@ description = "NixOS + Home Manager config"; inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05"; home-manager = { - url = "github:nix-community/home-manager"; + url = "github:nix-community/home-manager/release-25.05"; inputs.nixpkgs.follows = "nixpkgs"; }; @@ -13,7 +13,6 @@ outputs = inputs@{ self, nixpkgs, home-manager, ... }: { - nixosConfigurations = { segfault-machine = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; @@ -26,6 +25,8 @@ home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; + + home-manager.users.lukas.imports = [ ./home/lukas/laptop/default.nix ]; @@ -42,6 +43,7 @@ modules = [ ./hosts/segfault-tower/configuration.nix + home-manager.nixosModules.home-manager { home-manager.backupFileExtension = "backup"; home-manager.useGlobalPkgs = true; diff --git a/home/lukas/common/git.nix b/home/lukas/common/git.nix index 6257371..a82b1fe 100644 --- a/home/lukas/common/git.nix +++ b/home/lukas/common/git.nix @@ -12,13 +12,7 @@ in { userName= "Lukas"; userEmail = "mail@lukas.contact"; - settings = { - - user = { - mail = "mail@lukas.contact"; - name = "Lukas"; - }; - + extraConfig = { commit.gpgsign = true; gpg.format = "ssh"; gpg.ssh.allowedSignersFile = "~/.ssh/allowed_signers"; diff --git a/home/lukas/tower/default.nix b/home/lukas/tower/default.nix index 1aa1036..2129558 100644 --- a/home/lukas/tower/default.nix +++ b/home/lukas/tower/default.nix @@ -1,7 +1,6 @@ { imports = [ ./packages.nix - # ./ollama.nix ../common/brave.nix ../common/direnv.nix ../common/emacs.nix diff --git a/home/lukas/tower/ollama.nix b/home/lukas/tower/ollama.nix deleted file mode 100644 index f585010..0000000 --- a/home/lukas/tower/ollama.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ - services.ollama = { - enable = true; - acceleration = "cuda"; - # Optional: preload models, see https://ollama.com/library - # loadModels = [ "qwen3:30b" "gpt-oss:20b" "deepseek-r1:32b" "gemma3:27b"]; - }; -} diff --git a/home/lukas/tower/packages.nix b/home/lukas/tower/packages.nix index 5fbee14..a43bf68 100644 --- a/home/lukas/tower/packages.nix +++ b/home/lukas/tower/packages.nix @@ -1,6 +1,7 @@ { pkgs, ... }: { + fonts.fontconfig.enable = true; home.packages = [ @@ -9,6 +10,8 @@ pkgs.keepassxc pkgs.telegram-desktop pkgs.element-desktop + pkgs.tidal-hifi + pkgs.tree pkgs.htop @@ -16,11 +19,15 @@ pkgs.wget pkgs.unzip + pkgs.open-webui + pkgs.librechat + pkgs.feather pkgs.firefox pkgs.ranger + pkgs.zathura pkgs.nerd-fonts.fira-code pkgs.fira-code diff --git a/hosts/segfault-tower/configuration.nix b/hosts/segfault-tower/configuration.nix index d3420f7..a2f7f09 100644 --- a/hosts/segfault-tower/configuration.nix +++ b/hosts/segfault-tower/configuration.nix @@ -13,7 +13,6 @@ ../../modules/networking/networkmanager.nix ../../modules/networking/bluetooth.nix ../../modules/system/locale.nix - # ../../modules/system/suspend-and-hibernate.nix ../../modules/system/nvidia.nix ../../modules/system/audio.nix ../../modules/system/printing.nix @@ -21,6 +20,7 @@ ../../modules/system/gpg.nix ../../modules/system/virtualbox.nix ../../modules/system/mullvad.nix + ../../modules/services/ollama.nix ]; # Bootloader. @@ -40,6 +40,6 @@ nixpkgs.config.allowUnfree = true; # Version festlegen - system.stateVersion = "25.11"; + system.stateVersion = "25.05"; nix.settings.experimental-features = [ "nix-command" "flakes" ]; } diff --git a/modules/desktop/gnome.nix b/modules/desktop/gnome.nix index 550cba0..63183b6 100644 --- a/modules/desktop/gnome.nix +++ b/modules/desktop/gnome.nix @@ -1,8 +1,11 @@ -{ config, pkgs, ... }: +{ pkgs, ... }: { - services.displayManager.gdm.enable = true; - services.desktopManager.gnome.enable = true; + services.xserver = { + displayManager.gdm.enable = true; + desktopManager.gnome.enable = true; + }; + # To disable installing GNOME's suite of applications # and only be left with GNOME shell. diff --git a/modules/services/ollama.nix b/modules/services/ollama.nix new file mode 100644 index 0000000..8bf0c21 --- /dev/null +++ b/modules/services/ollama.nix @@ -0,0 +1,34 @@ +{ + services.ollama = { + enable = true; + acceleration = "cuda"; + }; + + systemd.services.ollama.serviceConfig = { + Environment = [ "OLLAMA_HOST=0.0.0.0:11434" ]; + }; + + services.open-webui = { + enable = true; + port = 8081; + environment = { + ANONYMIZED_TELEMETRY = "False"; + DO_NOT_TRACK = "True"; + SCARF_NO_ANALYTICS = "True"; + OLLAMA_API_BASE_URL = "http://127.0.0.1:11434/api"; + OLLAMA_BASE_URL = "http://127.0.0.1:11434"; + }; + }; + + services.searx = { + enable = true; + redisCreateLocally = true; + settings.server = { + bind_address = "::1"; + port = 1111; + secret_key = "my ultra secret key"; + }; + settings.search.formats = ["html" "json"]; + }; + +} diff --git a/modules/system/docker.nix b/modules/system/docker.nix index a878015..bfae171 100644 --- a/modules/system/docker.nix +++ b/modules/system/docker.nix @@ -1,3 +1,4 @@ { virtualisation.docker.enable = true; + virtualisation.oci-containers.backend = "docker"; }