Nix Flakes configuration for MacOS, NixOS and WSL
1let
2 sharedPackages = pkgs: with pkgs; [
3 dbeaver-bin # Database client
4 bruno # IDE for testing apis
5 helix # TUI code editor
6 jujutsu # VCS
7 lazygit # TUI git
8 podman # container tool -> replacement of docker
9 podman-compose # compose provider for podman
10 ];
11in
12{
13 allowedUnfreePackages = [ "cuda_cudart" "cuda_nvcc" "cuda_cccl" "libcublas" ];
14
15 flake.nixosModules.development = { pkgs, ... }: {
16 environment.systemPackages = with pkgs; [
17 zed-editor # GUI code editor
18 ] ++ (sharedPackages pkgs);
19
20 # Setup local LLM
21 services.ollama = {
22 enable = true;
23 acceleration = "cuda";
24 };
25 };
26
27 flake.darwinModules.development = { pkgs, ... }: {
28 systemPackages = [ pkgs.ollama ] ++ (sharedPackages pkgs);
29
30 # Ensure homebrew is enabled
31 homebrew.enable = true;
32 homebrew.cask = [
33 "zed" # GUI code editor
34 ];
35
36 # Setup local LLM
37 launchd.user.agents.ollama = {
38 serviceConfig = {
39 ProgramArguments = [ "${pkgs.ollama}/bin/ollama" "serve" ];
40 RunAtLoad = true;
41 KeepAlive = true;
42 StandardOutPath = "/tmp/ollama.log";
43 StandardErrorPath = "/tmp/ollama.log";
44 };
45 };
46 };
47}