Merge branch 'main' of ssh://git.cyperpunk.de:12222/DerGrumpf/cyper-nix

This commit is contained in:
2026-06-17 20:23:16 +02:00
10 changed files with 249 additions and 166 deletions
Generated
+52 -66
View File
@@ -20,11 +20,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1778857089, "lastModified": 1780756231,
"narHash": "sha256-TclWRW2SdFeETLaiTG4BA8C8C4m/LppQEldncqyTzAQ=", "narHash": "sha256-tXQxKdG5716uB9/LIkLQqQwHKf5mRSpHoZhz3lyI2Cg=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "aquamarine", "repo": "aquamarine",
"rev": "ab2b0af63fbc9fb779d684f19149b790978be8a8", "rev": "6ecde03f47172753fe5a2f334f9d3facfb7e6784",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -36,16 +36,16 @@
"brew-src": { "brew-src": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1779646357, "lastModified": 1781226006,
"narHash": "sha256-rnnAaESXxItX4D9xCMGvs3hfDBjbbTYht7OluRcvT8k=", "narHash": "sha256-w4ZTuOnhYiDxjaynrMTASzp802QblBWmo3wpB8wVN4Y=",
"owner": "Homebrew", "owner": "Homebrew",
"repo": "brew", "repo": "brew",
"rev": "10a163ac127624caa80cc5cc5a705e97f3615b0e", "rev": "109191be4988470b51a60a5ef1998520aa24c01b",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "Homebrew", "owner": "Homebrew",
"ref": "5.1.14", "ref": "6.0.1",
"repo": "brew", "repo": "brew",
"type": "github" "type": "github"
} }
@@ -57,11 +57,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1780755633, "lastModified": 1781255309,
"narHash": "sha256-2NZLaQTroHWrXHOeBJhHD7cb8nM4BnlAMNoxIUqs/Os=", "narHash": "sha256-n2P5xkAYGylrJ3feu7L6uaCUw/+jW8rk+HO127gDbFA=",
"owner": "catppuccin", "owner": "catppuccin",
"repo": "nix", "repo": "nix",
"rev": "71770b00f2b97631339026e78b4a045cd9aee6f3", "rev": "036c78ea4cd8a42c8546c6316a944fd7d59d4341",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -77,11 +77,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1779036909, "lastModified": 1781242433,
"narHash": "sha256-zXcwYQGCT6pzinK+1dBB2ekTVtfxGZAapb3Evdcu4fY=", "narHash": "sha256-bchLZZ3sRn740zyvD2icZSnNoTaanN0nw7l6fjVXO+E=",
"owner": "lnl7", "owner": "lnl7",
"repo": "nix-darwin", "repo": "nix-darwin",
"rev": "56c666e108467d87d13508936aade6d567f2a501", "rev": "aabb2037edfc0f210723b72cd5f528aab5dd3f0b",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -209,11 +209,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1780679734, "lastModified": 1781667738,
"narHash": "sha256-KmRNvpNOb7QEORa06bVgjW9kITcx0VhsI7w0vhmZyD8=", "narHash": "sha256-OxrwHpsWf+QGbos1LMDGAcv7sjBGshcw/43th6waeYI=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "b2b7db486e06e098711dc291bb25db82850e1d16", "rev": "7664e05e2413d5e2b8c54a884eb8ea0f8a504fc2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -320,11 +320,11 @@
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1780768552, "lastModified": 1781627558,
"narHash": "sha256-J2gBzBBE9C6LMMJec8buysLAQl7QmqtP/oMrPfVioYc=", "narHash": "sha256-qqFd1ufiH/oBB2RCmt7dg5Kyca7grJguIJrNPsD91zk=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "Hyprland", "repo": "Hyprland",
"rev": "20ee7553c95dd1fa30a00564561f40f7986ffbc7", "rev": "5b47c782c9f83539a6c642d83844cdc9130a2873",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -396,11 +396,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1779209205, "lastModified": 1781442805,
"narHash": "sha256-asc7NpeB8vD66gvZeYcQkaWOs2X6Jgd29vBtP17vjxo=", "narHash": "sha256-Kt56e6Bq2sfqN8yq1RHsS6z+8QKCZelmhaeQQRtZyqU=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprland-plugins", "repo": "hyprland-plugins",
"rev": "1cb37fad68dff5f5840010c314fed5809b4ee66f", "rev": "1f90c674d51a1ef83c725cd6d02280b4c969fdf7",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -580,11 +580,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1779475241, "lastModified": 1780251518,
"narHash": "sha256-Nw4DN0A5krWNcPBvuWe5Gz2yuxsUUPiDgtu6SVPJQeU=", "narHash": "sha256-fG9xbb1SOAAJ+2kJRakp3ch+BmA/3dEg/K3PoAZTKkw=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "hyprutils", "repo": "hyprutils",
"rev": "3cd3972b2ee658a14d2610d8494e09259e530124", "rev": "40ede2e7bdec80ba5d4c443160d905e9f841ae5f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -652,11 +652,11 @@
"brew-src": "brew-src" "brew-src": "brew-src"
}, },
"locked": { "locked": {
"lastModified": 1780492467, "lastModified": 1781389246,
"narHash": "sha256-zMEJwtQPmsPPgPczFkyjWHgd1z0HagOPS2Wt2WDYLJY=", "narHash": "sha256-ORqLAo/hoJdsZC7UPAuEHev6S0+XIqKEC7vjo5prz1k=",
"owner": "zhaofengli", "owner": "zhaofengli",
"repo": "nix-homebrew", "repo": "nix-homebrew",
"rev": "562332f97de9f5ba51aa647d70462e88222b2988", "rev": "de7953a08ed4bb9245be043e468561c17b89130d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -675,11 +675,11 @@
"nixpkgs-nixcord": "nixpkgs-nixcord" "nixpkgs-nixcord": "nixpkgs-nixcord"
}, },
"locked": { "locked": {
"lastModified": 1780751320, "lastModified": 1781659360,
"narHash": "sha256-3PlWrZkSwElqYHMnWi4d0A+GxlvCXk0JaMsTGghmQGE=", "narHash": "sha256-bwTlMeMALwHREYkYBd9swITfW270tt6GzyY1j+QAqIU=",
"owner": "kaylorben", "owner": "kaylorben",
"repo": "nixcord", "repo": "nixcord",
"rev": "2b70dbed679d2705696deb36f0778c9ef9f1ded2", "rev": "9dd239d5f8d651ccd94efcf1e3bd384ad41084ca",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -726,11 +726,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1779357205, "lastModified": 1780749050,
"narHash": "sha256-cCO8aTqss5x9Ky8GWkpY0Hy5fyTZEbtifSUV8QjSzic=", "narHash": "sha256-3av0pIjlOWQ6rDbNOmpUSvbNnJkGORQKKjb4LtCZsIY=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "f83fc3c307e74bc5fd5adb7eb6b8b13ffd2a36e1", "rev": "a799d3e3886da994fa307f817a6bc705ae538eeb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -773,11 +773,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1780243769, "lastModified": 1781577229,
"narHash": "sha256-x5UQuRsH3MqI0U9afaXSNqzTPSeZlRLvFAav2Ux1pNw=", "narHash": "sha256-lrp67w8AulE9Ks53n27I45ADSzbOCn4H+CNW1Ck8B+8=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "331800de5053fcebacf6813adb5db9c9dca22a0c", "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -787,34 +787,20 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_3": {
"locked": {
"lastModified": 1780336545,
"narHash": "sha256-vhVhuXzFrIOfcssC/9hDHx7MHzDKjF3keHuREOQqQiQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "4df1b885d76a54e1aa1a318f8d16fd6005b6401f",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixvim": { "nixvim": {
"inputs": { "inputs": {
"flake-parts": "flake-parts_2", "flake-parts": "flake-parts_2",
"nixpkgs": "nixpkgs_3", "nixpkgs": [
"nixpkgs"
],
"systems": "systems_3" "systems": "systems_3"
}, },
"locked": { "locked": {
"lastModified": 1780646548, "lastModified": 1781637822,
"narHash": "sha256-Ckyl/l1XBmEwnaHcHD8PvBZk1uph0NqwbJ//CAvB7iE=", "narHash": "sha256-6Fwwt8BBGF5rqwGPhj/9ZMyyjXeJQzeHHJQfPuqJP3I=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "816a15282e58678dde831477964987d0262d4293", "rev": "d43c763fd9fae0912bdb4103cd842f26fea5b0ed",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -831,11 +817,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1780766476, "lastModified": 1781694117,
"narHash": "sha256-BlI1qrW7wqI+pniqRebMttqN/w0H6XHqITGB9JPSQNQ=", "narHash": "sha256-TobjUrIR9hSn3PdjooxvNYjuQuCbZ+HIQzExWatX6Bo=",
"owner": "nix-community", "owner": "nix-community",
"repo": "NUR", "repo": "NUR",
"rev": "050c04c7c01ad5de7e60f32b66ce0599e3c17d8e", "rev": "fea207887cf1f76cb19452ffd6978b82311d9746",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -913,11 +899,11 @@
"systems": "systems_4" "systems": "systems_4"
}, },
"locked": { "locked": {
"lastModified": 1780422259, "lastModified": 1781425310,
"narHash": "sha256-dWGk4SEdI189kQW5cE4Uo1Mc+P+kQEdgMcyMgTtmQOA=", "narHash": "sha256-GTBka4Df/ZOacmisI/DI2LICyNChEqn/giah83LucdM=",
"owner": "Gerg-L", "owner": "Gerg-L",
"repo": "spicetify-nix", "repo": "spicetify-nix",
"rev": "8414bbf2fcc7bc0a22c675e498e3c7365c1aec0a", "rev": "aeaf7c81a45d3761da61cb05bfc370ac6d1b0441",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1015,11 +1001,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1778265244, "lastModified": 1780133819,
"narHash": "sha256-8jlPtGSsv/CQY6tVVyLF4Jjd0gnS+Zbn9yk/V13A9nM=", "narHash": "sha256-0YPKIY3dlnR7SPq7Z8ekFVvzFsfeiAtEj+QUI3KHrlI=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland", "repo": "xdg-desktop-portal-hyprland",
"rev": "813ea5ca9a1702a9a2d1f5836bc00172ef698968", "rev": "4a170c0ba96fd37374f93d8f91c9ed91814828ac",
"type": "github" "type": "github"
}, },
"original": { "original": {
+1
View File
@@ -51,6 +51,7 @@
# declarative Neovim # declarative Neovim
nixvim = { nixvim = {
url = "github:nix-community/nixvim"; url = "github:nix-community/nixvim";
inputs.nixpkgs.follows = "nixpkgs";
}; };
# declarative Discord # declarative Discord
+1
View File
@@ -18,6 +18,7 @@
./neovim ./neovim
./python.nix ./python.nix
./fonts.nix ./fonts.nix
./opencode.nix
inputs.sops-nix.homeManagerModules.sops inputs.sops-nix.homeManagerModules.sops
] ]
++ lib.optionals (!isDarwin && !isServer) [ ++ lib.optionals (!isDarwin && !isServer) [
+20 -12
View File
@@ -5,18 +5,18 @@
plugins = { plugins = {
markdown-preview.enable = true; markdown-preview.enable = true;
render-markdown.enable = true; render-markdown.enable = true;
avante = { avante = {
enable = true; enable = true;
autoLoad = true; autoLoad = true;
settings = { settings = {
provider = "groq"; provider = "ollama";
providers.groq = { providers = {
groq = {
__inherited_from = "openai"; __inherited_from = "openai";
api_key_name = "cmd:cat /home/phil/.config/sops-nix/secrets/GROQ_API_KEY"; api_key_name = "cmd:cat /home/phil/.config/sops-nix/secrets/GROQ_API_KEY";
endpoint = "https://api.groq.com/openai/v1/"; endpoint = "https://api.groq.com/openai/v1/";
model = "qwen/qwen3-32b"; # "llama-3.3-70b-versatile"; model = "qwen/qwen3-32b";
system_promt = "You are a helpful coding assistant. Always respond in plain markdown format without using tool calls or JSON structures."; system_promt = "You are a helpful coding assistant. Always respond in plain markdown format without using tool calls or JSON structures.";
disable_tools = true; disable_tools = true;
extra_request_body = { extra_request_body = {
@@ -28,6 +28,22 @@
}; };
}; };
ollama = {
endpoint = "http://100.109.179.25:11434"; # tailscale IP, no /v1 suffix
model = "qwen2.5:3b"; # swap for "llama3.2:3b" or "deepseek-r1:1.5b"
timeout = 60000; # local + small model can be slow on first load
disable_tools = true; # these small models aren't reliable at tool calling
is_env_set.__raw = ''require("avante.providers.ollama").check_endpoint_alive'';
extra_request_body = {
options = {
temperature = 0.7;
num_ctx = 8192;
keep_alive = "5m";
};
};
};
};
render = { render = {
markdown = true; markdown = true;
syntax = true; syntax = true;
@@ -35,7 +51,6 @@
code = true; code = true;
link = true; link = true;
}; };
behaviour = { behaviour = {
enable_cursor_planning_mode = false; enable_cursor_planning_mode = false;
auto_suggestions = false; auto_suggestions = false;
@@ -46,7 +61,6 @@
use_selection_as_context = true; use_selection_as_context = true;
max_context_tokens = 2000; max_context_tokens = 2000;
}; };
mappings = { mappings = {
ask = "<leader>aa"; ask = "<leader>aa";
edit = "<leader>ae"; edit = "<leader>ae";
@@ -79,11 +93,9 @@
reverse_switch_windows = "<S-Tab>"; reverse_switch_windows = "<S-Tab>";
}; };
}; };
hints = { hints = {
enabled = true; enabled = true;
}; };
windows = { windows = {
position = "right"; position = "right";
wrap = true; wrap = true;
@@ -93,22 +105,18 @@
rounded = true; rounded = true;
}; };
}; };
highlights = { highlights = {
diff = { diff = {
current = "DiffText"; current = "DiffText";
incoming = "DiffAdd"; incoming = "DiffAdd";
}; };
}; };
diff = { diff = {
autojump = true; autojump = true;
list_opener = "copen"; list_opener = "copen";
}; };
}; };
}; };
extraPackages = with pkgs; [ curl ];
}; };
}; };
} }
+26 -6
View File
@@ -2,12 +2,32 @@ _: {
programs.nixvim = { programs.nixvim = {
plugins.diffview = { plugins.diffview = {
enable = true; enable = true;
keymaps = { settings.keymaps.view = [
"]x" = "<cmd>DiffviewConflictNext<CR>"; {
"[x" = "<cmd>DiffviewConflictPrev<CR>"; mode = "n";
"do" = "<cmd>DiffviewFocusOurs<CR>"; key = "]x";
"dt" = "<cmd>DiffviewFocusTheirs<CR>"; action = "<cmd>DiffviewConflictNext<CR>";
}; description = "Next conflict";
}
{
mode = "n";
key = "[x";
action = "<cmd>DiffviewConflictPrev<CR>";
description = "Previous conflict";
}
{
mode = "n";
key = "do";
action = "<cmd>DiffviewFocusOurs<CR>";
description = "Focus ours";
}
{
mode = "n";
key = "dt";
action = "<cmd>DiffviewFocusTheirs<CR>";
description = "Focus theirs";
}
];
}; };
}; };
} }
+32
View File
@@ -0,0 +1,32 @@
_: {
programs.opencode = {
enable = true;
settings = {
enabled_providers = [ "ollama" ];
model = "ollama/llama3.2:3b";
provider = {
ollama = {
npm = "@ai-sdk/openai-compatible";
name = "Ollama (tailscale)";
options = {
baseURL = "http://100.109.179.25:11434/v1";
};
models = {
"llama3.2:3b" = {
name = "Llama 3.2 3B";
};
"qwen2.5:3b" = {
name = "Qwen 2.5 3B";
};
"deepseek-r1:1.5b" = {
name = "DeepSeek-R1 1.5B";
};
};
};
};
};
};
}
+2 -1
View File
@@ -11,10 +11,11 @@
../../nixos/roles/gitea.nix ../../nixos/roles/gitea.nix
../../nixos/roles/vaultwarden.nix ../../nixos/roles/vaultwarden.nix
../../nixos/roles/frontpage ../../nixos/roles/frontpage
../../nixos/roles/paperless-ngx.nix #../../nixos/roles/paperless-ngx.nix
../../nixos/roles/octoprint.nix ../../nixos/roles/octoprint.nix
../../nixos/roles/matrix/postgres-backup.nix ../../nixos/roles/matrix/postgres-backup.nix
../../nixos/roles/kanidm.nix ../../nixos/roles/kanidm.nix
../../nixos/roles/ollama.nix
]; ];
networking = { networking = {
+16 -4
View File
@@ -17,7 +17,9 @@
}; };
}; };
systemd.services.mautrix-discord-env = { systemd = {
services = {
mautrix-discord-env = {
before = [ "mautrix-discord-registration.service" ]; before = [ "mautrix-discord-registration.service" ];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
serviceConfig = { serviceConfig = {
@@ -34,7 +36,15 @@
''; '';
}; };
services.postgresql = { mautrix-discord-registration.serviceConfig.UMask = lib.mkForce "0750";
};
tmpfiles.rules = [
"z /var/lib/mautrix-discord/discord-registration.yaml 0640 mautrix-discord mautrix-discord -"
];
};
services = {
postgresql = {
ensureUsers = [ ensureUsers = [
{ {
name = "mautrix-discord"; name = "mautrix-discord";
@@ -44,7 +54,7 @@
ensureDatabases = [ "mautrix-discord" ]; ensureDatabases = [ "mautrix-discord" ];
}; };
services.mautrix-discord = { mautrix-discord = {
enable = true; enable = true;
environmentFile = "/run/mautrix-discord/env"; environmentFile = "/run/mautrix-discord/env";
settings = { settings = {
@@ -90,5 +100,7 @@
}; };
}; };
}; };
systemd.services.mautrix-discord-registration.serviceConfig.UMask = lib.mkForce "0022"; };
users.users.matrix-synapse.extraGroups = [ "mautrix-discord" ];
} }
+10 -10
View File
@@ -74,16 +74,16 @@ in
"calvin.cyperpunk.de" = mkWsProxy 15006; "calvin.cyperpunk.de" = mkWsProxy 15006;
"auth.cyperpunk.de" = mkHttpsProxy 8444; "auth.cyperpunk.de" = mkHttpsProxy 8444;
"home.cyperpunk.de" = { #"home.cyperpunk.de" = {
forceSSL = true; # forceSSL = true;
enableACME = true; # enableACME = true;
locations."/" = { # locations."/" = {
root = "/var/www/home.cyperpunk.de"; # root = "/var/www/home.cyperpunk.de";
extraConfig = '' # extraConfig = ''
try_files $uri $uri/ =404; # try_files $uri $uri/ =404;
''; # '';
}; # };
}; #};
"www.cyperpunk.de" = { "www.cyperpunk.de" = {
forceSSL = true; forceSSL = true;
+22
View File
@@ -0,0 +1,22 @@
_: {
services.ollama = {
enable = true;
host = "0.0.0.0";
port = 11434;
openFirewall = true;
loadModels = [
"llama3.2:3b"
"qwen2.5:3b"
"deepseek-r1:1.5b"
];
syncModels = true;
environmentVariables = {
OLLAMA_CONTEXT_LENGTH = "16384";
};
};
}