Compare commits

...

6 Commits

7 changed files with 196 additions and 72 deletions

144
flake.lock generated
View File

@@ -96,11 +96,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1788980173, "lastModified": 1789199081,
"narHash": "sha256-ZxJFUIepyYWurAU1/YUfHFMq4S5phGcpzxvjGuxAnYs=", "narHash": "sha256-xjgAQNbUE/ZohOdPQuyZziyK9p1bOtmLp+qRq2CS5tw=",
"owner": "opengamingcollective", "owner": "opengamingcollective",
"repo": "cardwire", "repo": "cardwire",
"rev": "d51c690ab0b80abd9553dfb4aea8f6271c01143e", "rev": "4c994896b01b45178921617baee5d7038edc2a7d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -115,11 +115,11 @@
"nixpkgs": "nixpkgs_4" "nixpkgs": "nixpkgs_4"
}, },
"locked": { "locked": {
"lastModified": 1788840090, "lastModified": 1789682424,
"narHash": "sha256-X9esxhmOHPuDC65S2g3qfR+YlJsDvWp6UXzVLkzRp7I=", "narHash": "sha256-b0/YFB7nUJ87N8x1QvmFAKn1+YOlIeWRx8fog//0n/E=",
"owner": "9001", "owner": "9001",
"repo": "copyparty", "repo": "copyparty",
"rev": "bfc3cff8482a70653ad380bd94660013d2569ff5", "rev": "c688bb2e4684e21e30b430142708e08f6f60ab9e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -170,11 +170,11 @@
"utils": "utils" "utils": "utils"
}, },
"locked": { "locked": {
"lastModified": 1788879443, "lastModified": 1789404474,
"narHash": "sha256-qb9sL86UCUEd3SYAda4ItN1NV0vhMSdbpA64WckvVI0=", "narHash": "sha256-UXFQ7tFiwn8sPz0EV4CBB2PCf/ZiGIHWn/6MXk81Lxs=",
"owner": "serokell", "owner": "serokell",
"repo": "deploy-rs", "repo": "deploy-rs",
"rev": "414ac5f35d79aabe5a0bf52451d8cf61eadf6c88", "rev": "e760371d631165e7d8de5b0dcf148e21ec4c16f0",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -615,11 +615,11 @@
"uv2nix": "uv2nix" "uv2nix": "uv2nix"
}, },
"locked": { "locked": {
"lastModified": 1789079731, "lastModified": 1789726237,
"narHash": "sha256-C4mA8pILn/ms4pJQkUhvD9VT1w48YMr9285I8kCdQPs=", "narHash": "sha256-RzeoYUaG1cLGGGUTs68t4ycE0H6qR8PbKCuqIUsBRrg=",
"owner": "NousResearch", "owner": "NousResearch",
"repo": "hermes-agent", "repo": "hermes-agent",
"rev": "6c3d4a4af70d76b7365bf19e9420ffdcbb9830ad", "rev": "debfc7420b61a96ad97fc03b18cca74d7e72697d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -656,11 +656,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1789071706, "lastModified": 1789695075,
"narHash": "sha256-S+oyh2YSP9V5bSjWbbK0N7GxdxxMwgBfUOtUdVcAWc4=", "narHash": "sha256-HREFWgmCTp28ZdMkSFOW2QW8uI17v5CNc04W46h6aPo=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "150f9ce4ddd41544ea42eb9d6043a75bd615fa24", "rev": "4ac5a2ae9025eab1ebece4f9df8c315fd84a738a",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -698,11 +698,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1788642154, "lastModified": 1789267039,
"narHash": "sha256-sPpQFVaFTDqO/4vvCAhuAhqTgqN/ygu+9eJcs5eB0js=", "narHash": "sha256-LWiBv9yAYFi2LPbUhDGHPGKYskJQjj2fw12OlyO1uQo=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "fd0956c99c41ae3c13a73a638f1f7e963aebc4ab", "rev": "ec172013fa62135f58fb58dd17ae9651e8f39727",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -787,11 +787,11 @@
"xdph": "xdph" "xdph": "xdph"
}, },
"locked": { "locked": {
"lastModified": 1789046904, "lastModified": 1789653023,
"narHash": "sha256-wWPN/kmzwp4kHBtC6JmVUJHg2Np2VtyfS53mFrI90us=", "narHash": "sha256-6BBWoaIXic8TfWaDIFDKF0WL3yNgep4gKuXIBE04nLU=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "Hyprland", "repo": "Hyprland",
"rev": "f05d73f35795ded80d7e1264a37e41b461625f9f", "rev": "d50ca8950ac8753c54e50b6d44f4461df14bfabb",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1132,11 +1132,11 @@
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1789643193, "lastModified": 1789722857,
"narHash": "sha256-Vd9M6YDpwLDTI2JgQxNdnx8xvWJ8mVI5tehu/yFvoMA=", "narHash": "sha256-EsZGNrQiCZDI+yV/4Eyrjb7Blsd7ZB5995Nkp3eHDBc=",
"owner": "numtide", "owner": "numtide",
"repo": "llm-agents.nix", "repo": "llm-agents.nix",
"rev": "e07b7ec56fcbb9d93383319aae2d3aedcd4631d1", "rev": "ddc89534b9a73cd99ff4d33656569ce3be6e6490",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1154,11 +1154,11 @@
"scenefx": "scenefx" "scenefx": "scenefx"
}, },
"locked": { "locked": {
"lastModified": 1789043466, "lastModified": 1789728193,
"narHash": "sha256-FRAl59B6xpOhO8rSgMWnwlxLz9E6yQJWXHKOoweIEm8=", "narHash": "sha256-lCzbINFGohW/iaBIwHyhvvVJNPxpCCgObRfJ7AXjs2o=",
"owner": "DreamMaoMao", "owner": "DreamMaoMao",
"repo": "mango", "repo": "mango",
"rev": "13138a717636b3761afdb90cd153466f69d4fcc8", "rev": "1ffb30a8dccd690b38fb15cdb69e8835190b923c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1222,11 +1222,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1788680125, "lastModified": 1789286446,
"narHash": "sha256-amGSoDobwmp4CFvCn841ws2iuitus+HUJdD/gKgsrJA=", "narHash": "sha256-xVstyCdg0DpzjyrEacm72VJAIP9DMhfWJdPDzhWxHuo=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nix-index-database", "repo": "nix-index-database",
"rev": "116ad1c2adb642405ef8916f6a94c8626f971344", "rev": "a74e173407559083a412ea89a1cc58ea389c3b65",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1272,11 +1272,11 @@
"treefmt-nix": "treefmt-nix_2" "treefmt-nix": "treefmt-nix_2"
}, },
"locked": { "locked": {
"lastModified": 1789029226, "lastModified": 1789720789,
"narHash": "sha256-dk2p8SjpJ2sRHHpmSA+ps4d2uhQjtkdKGC2+RcyZYPE=", "narHash": "sha256-CcHyMp1gnBUuM1isHwWUDUA5CPoi3RB4Y9tmF9g2KhI=",
"owner": "kaylorben", "owner": "kaylorben",
"repo": "nixcord", "repo": "nixcord",
"rev": "177141d589014f014ac2b05cd8e2235886868e2f", "rev": "270c659d292d2ae47051d5411426bdd58b7c75e1",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1290,11 +1290,11 @@
"nixpkgs": "nixpkgs_13" "nixpkgs": "nixpkgs_13"
}, },
"locked": { "locked": {
"lastModified": 1788942796, "lastModified": 1789583720,
"narHash": "sha256-CLoJCCRi9sogsyGXYn8rOCWBLKAntfKUB9Rli/YXgEY=", "narHash": "sha256-Jd7AoNhd9EkvS1YqjwdwncTMFT/YMxmYYI2GsyEBVCo=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "83bbc895120516d6e86885a188c04beced6535d9", "rev": "c9b56a2497c22c90884388ba476900cbe45de808",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1399,11 +1399,11 @@
}, },
"nixpkgs-nixcord": { "nixpkgs-nixcord": {
"locked": { "locked": {
"lastModified": 1788921488, "lastModified": 1789459628,
"narHash": "sha256-8+xWRxEkD6l217cIUdRxfeUGS9lQX0hVtUuNVsBaDzk=", "narHash": "sha256-JOaadoI/IC9qEvwlnjwAhwdcWkCDqEeOJ+cOtUH/8RQ=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "6aefcda9401be8acc2b74244fb3b37520ea1f0a8", "rev": "b67c7a60c3732edd4b947a7df8af06215851a614",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1463,11 +1463,11 @@
}, },
"nixpkgs_12": { "nixpkgs_12": {
"locked": { "locked": {
"lastModified": 1788921488, "lastModified": 1789459628,
"narHash": "sha256-8+xWRxEkD6l217cIUdRxfeUGS9lQX0hVtUuNVsBaDzk=", "narHash": "sha256-JOaadoI/IC9qEvwlnjwAhwdcWkCDqEeOJ+cOtUH/8RQ=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "6aefcda9401be8acc2b74244fb3b37520ea1f0a8", "rev": "b67c7a60c3732edd4b947a7df8af06215851a614",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1492,11 +1492,11 @@
}, },
"nixpkgs_14": { "nixpkgs_14": {
"locked": { "locked": {
"lastModified": 1789006805, "lastModified": 1789546076,
"narHash": "sha256-xB8mKMOx1IA9vTDNLmJZ6n4wCMq/cuWBBOzGCRnqxrU=", "narHash": "sha256-zVxLZiSnmaaPLwnhj7pwmqe3axBg/C6nG5JZsJMh2g4=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "8ce4ef6cb6f871616146b9fe26d2a5ae594e94fe", "rev": "b1b875982b17dabde9b4a37f3e229e74913e6db3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1508,11 +1508,11 @@
}, },
"nixpkgs_15": { "nixpkgs_15": {
"locked": { "locked": {
"lastModified": 1789006805, "lastModified": 1789546076,
"narHash": "sha256-xB8mKMOx1IA9vTDNLmJZ6n4wCMq/cuWBBOzGCRnqxrU=", "narHash": "sha256-zVxLZiSnmaaPLwnhj7pwmqe3axBg/C6nG5JZsJMh2g4=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "8ce4ef6cb6f871616146b9fe26d2a5ae594e94fe", "rev": "b1b875982b17dabde9b4a37f3e229e74913e6db3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1540,11 +1540,11 @@
}, },
"nixpkgs_17": { "nixpkgs_17": {
"locked": { "locked": {
"lastModified": 1788752844, "lastModified": 1789426278,
"narHash": "sha256-VaWGJ6+cIYN2erfSecbRV+4ljI185Ty2wUrXyvQbgOw=", "narHash": "sha256-GnotcvKtbTMnoVx6G4E7ZdUX6487Dky74dqq3pU7iRk=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "dc5d91f840324650bac8c379428c7037a416959a", "rev": "efe6f071ede9d21c37462d2d6682d5e670099684",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1794,11 +1794,11 @@
"nixpkgs": "nixpkgs_15" "nixpkgs": "nixpkgs_15"
}, },
"locked": { "locked": {
"lastModified": 1789084691, "lastModified": 1789727305,
"narHash": "sha256-UtuGlGxMFKbYvxScj6tyoVOKIBAQNCjA1G89CxKJFZo=", "narHash": "sha256-Dg8slMcLJ+jLqqlQDTQDveZ4yC1mPhY9RxsDYiyhU4I=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nur", "repo": "nur",
"rev": "9f8512940a289f3aae3867d46d532d735a0571a3", "rev": "432fe2ee4eeb4149fe7dba786d8e276e38da49ad",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1812,11 +1812,11 @@
"nixpkgs": "nixpkgs_16" "nixpkgs": "nixpkgs_16"
}, },
"locked": { "locked": {
"lastModified": 1789072415, "lastModified": 1789725995,
"narHash": "sha256-gz7YFtWDHi8dJtK/LNLUzJ9U5gkMXxGK7q4L07lsSlE=", "narHash": "sha256-tmPbB7kt3ylnbG7xbHAsAtPOXrkcZeVlLy1uqMnEs3A=",
"owner": "anomalyco", "owner": "anomalyco",
"repo": "opencode", "repo": "opencode",
"rev": "193de13a88d62a6409c6d385831180f1def527dc", "rev": "3dd1b3053979971d8eb03ef37b29de07b892d95c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -2125,11 +2125,11 @@
"serpantinum-wallpapers": "serpantinum-wallpapers" "serpantinum-wallpapers": "serpantinum-wallpapers"
}, },
"locked": { "locked": {
"lastModified": 1789079718, "lastModified": 1789672578,
"narHash": "sha256-YtxvaKxIj5vW1rzcmeDhZaFU5IdZ/2dBTpf59migtSs=", "narHash": "sha256-PJK/dk30dWVDU22c7uuao0lQwBp+A7/F60KPPLvhhR4=",
"owner": "ilyamiro", "owner": "ilyamiro",
"repo": "serpantinum", "repo": "serpantinum",
"rev": "7fdcc2f722b1589e754b9dc9e215b8f78b261190", "rev": "a6e2267e32be01230b9f61ae701c41d632b212cc",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -2141,11 +2141,11 @@
"serpantinum-wallpapers": { "serpantinum-wallpapers": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1787675697, "lastModified": 1789127588,
"narHash": "sha256-ADvKHmQDsX50opqeiyEAB3uxUTjuCyDym0pGQCy7Sws=", "narHash": "sha256-L3xRtDXH1ERwVIP+ztT6qn7YYh3aHpfpy1/nvyjvKIc=",
"owner": "ilyamiro", "owner": "ilyamiro",
"repo": "shell-wallpapers", "repo": "shell-wallpapers",
"rev": "1cb526443872fbf283a3f8305c3aa647545c02e4", "rev": "4f5994aff60403f88d3f0378e6f9c9d0a00b0289",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -2159,11 +2159,11 @@
"nixpkgs": "nixpkgs_18" "nixpkgs": "nixpkgs_18"
}, },
"locked": { "locked": {
"lastModified": 1788914643, "lastModified": 1789691124,
"narHash": "sha256-4GuMPW90JSxXWDPUB9M+1m7fYbe3H0apOd86/zBQ2Kw=", "narHash": "sha256-k+I+R6uwHX3VcJ7326qLV6vCahZUgsVl+i8sSU/Stxk=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "13616fff713a9f94055c66f15687ebdc17a335df", "rev": "1e73e8f7176d65e1b55e324de099bbfff4b2c574",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -2564,11 +2564,11 @@
"vicinae": "vicinae" "vicinae": "vicinae"
}, },
"locked": { "locked": {
"lastModified": 1788877077, "lastModified": 1789530923,
"narHash": "sha256-Os614eK4hYC8l9cECt2zBiQbrdv+9q2AyrliHfiEf5A=", "narHash": "sha256-fJn+0rlse0n1QrTR9pqx5dm3pbsZidMd/xLKscbBG/s=",
"owner": "vicinaehq", "owner": "vicinaehq",
"repo": "extensions", "repo": "extensions",
"rev": "ee117bc64f341ed71b4a27e311f343b12a75f43d", "rev": "5882e1bbdfcf64279cbd1ed86a50aabed6f716d3",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -2611,11 +2611,11 @@
}, },
"locked": { "locked": {
"dir": "nix", "dir": "nix",
"lastModified": 1788934506, "lastModified": 1789638297,
"narHash": "sha256-8WiIkSOHkV3GWyTZKUr1QX26qQPYeCq0PsK4yCIyku8=", "narHash": "sha256-hMYtOUp/mlKJ0mlFkyOQtKAPjZGH060LLDNuj5csIvg=",
"owner": "wez", "owner": "wez",
"repo": "wezterm", "repo": "wezterm",
"rev": "9fa147c9532c7b175335f6453a4dd7ad7e6473b2", "rev": "b09b56c29c1e367e598b60ca266e2cc9038751e0",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -15,6 +15,18 @@
opencode-git = inputs.opencode.packages.${prev.stdenv.hostPlatform.system}.default; opencode-git = inputs.opencode.packages.${prev.stdenv.hostPlatform.system}.default;
nix-index-small = nix-index-small =
inputs.nix-index-database.packages.${prev.stdenv.hostPlatform.system}.nix-index-with-small-db; inputs.nix-index-database.packages.${prev.stdenv.hostPlatform.system}.nix-index-with-small-db;
davinci-resolve = prev.davinci-resolve.override {
runCommandLocal = name: env: cmd:
if prev.lib.hasSuffix "-src.zip" name
then
prev.runCommandLocal name (env
// {
outputHash = "sha256-+3SB32EHpH9/0hM3h8CrO6f7V4ZAmxUFh3P8m6QDeO0=";
})
cmd
else prev.runCommandLocal name env cmd;
};
}; };
stable-packages = final: _prev: { stable-packages = final: _prev: {

View File

@@ -81,6 +81,12 @@
}; };
configurePangolin = true; configurePangolin = true;
}; };
coder = {
enable = true;
domain = "coder.lab.tux.rs";
configurePangolin = true;
};
}; };
virtualisation = { virtualisation = {

View File

@@ -34,6 +34,7 @@
".config/vesktop" ".config/vesktop"
".config/sops" ".config/sops"
".config/nix" ".config/nix"
".config/coderv2"
".config/obs-studio" ".config/obs-studio"
".config/easyeffects" ".config/easyeffects"
".config/DankMaterialShell" ".config/DankMaterialShell"
@@ -55,6 +56,8 @@
".claude" ".claude"
".orca" ".orca"
".config/orca" ".config/orca"
".zcode"
".config/ZCode"
]; ];
files = [ files = [
@@ -147,6 +150,8 @@
impala impala
llm-agents.claude-code llm-agents.claude-code
llm-agents.orca llm-agents.orca
llm-agents.zcode
coder
]; ];
# !!! DO NOT CHANGE THIS !!! # !!! DO NOT CHANGE THIS !!!

View File

@@ -34,6 +34,7 @@
".config/vesktop" ".config/vesktop"
".config/sops" ".config/sops"
".config/nix" ".config/nix"
".config/coderv2"
".config/obs-studio" ".config/obs-studio"
".config/easyeffects" ".config/easyeffects"
".config/DankMaterialShell" ".config/DankMaterialShell"
@@ -55,6 +56,8 @@
".claude" ".claude"
".orca" ".orca"
".config/orca" ".config/orca"
".zcode"
".config/ZCode"
]; ];
files = [ files = [
@@ -148,6 +151,8 @@
impala impala
llm-agents.claude-code llm-agents.claude-code
llm-agents.orca llm-agents.orca
llm-agents.zcode
coder
]; ];
# !!! DO NOT CHANGE THIS !!! # !!! DO NOT CHANGE THIS !!!

View File

@@ -57,6 +57,7 @@
"/etc/ssh/ssh_host_ed25519_key.pub" "/etc/ssh/ssh_host_ed25519_key.pub"
"/etc/ssh/ssh_host_rsa_key" "/etc/ssh/ssh_host_rsa_key"
"/etc/ssh/ssh_host_rsa_key.pub" "/etc/ssh/ssh_host_rsa_key.pub"
"/etc/ly/save.txt"
] ]
++ cfg.impermanence.files; ++ cfg.impermanence.files;
}; };

View File

@@ -0,0 +1,95 @@
{
flake.modules.nixos.services = {
config,
lib,
options,
...
}:
with lib; let
cfg = config.tnix.services.coder;
port = toString cfg.port;
in {
options.tnix.services.coder = {
enable = mkEnableOption "Coder";
host = mkOption {
type = types.str;
default = "127.0.0.1";
description = "Host on which Coder listens";
};
port = mkOption {
type = types.port;
default = 1116;
description = "Port on which Coder listens";
};
environment = options.services.coder.environment;
domain = mkOption {
type = types.str;
default = "";
description = "Domain on which Coder is available";
};
configureNginx = mkOption {
type = types.bool;
default = false;
description = "Whether to configure Nginx as a reverse proxy for Coder";
};
configurePangolin = mkOption {
type = types.bool;
default = false;
description = "Whether to configure Pangolin as a reverse proxy for Coder";
};
};
config = mkIf cfg.enable {
users.users.coder.extraGroups = ["docker"];
services = {
coder = {
enable = true;
accessUrl = "https://${cfg.domain}";
listenAddress = "${cfg.host}:${port}";
environment = cfg.environment;
};
nginx.virtualHosts.${cfg.domain} = mkIf cfg.configureNginx {
forceSSL = acmeHost != "";
useACMEHost = mkIf (acmeHost != "") acmeHost;
locations."/" = {
proxyPass = "http://${cfg.host}:${port}";
proxyWebsockets = true;
};
};
newt.blueprint.proxy-resources = mkIf cfg.configurePangolin {
gitea = {
auth = {
sso-enabled = false;
};
full-domain = cfg.domain;
name = "coder";
protocol = "http";
targets = [
{
hostname = "localhost";
method = "http";
port = cfg.port;
healthcheck = {
hostname = "localhost";
port = cfg.port;
scheme = "http";
method = "GET";
path = "/";
};
}
];
};
};
};
};
};
}