This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

neoprism: replace kanvibe with kannix

- Add kannix flake input (local git repo)
- 2configs/kannix.nix: kannix service on port 4243, nginx at kannix.lassul.us
- Git integration enabled (repos + worktrees in /var/lib/kannix/)
- SSH keys for kannix user
- Backup updated: /var/lib/kannix instead of /var/lib/kanvibe

+150 -8
+84 -3
flake.lock
··· 132 132 "url": "https://git.clan.lol/clan/data-mesher/archive/main.tar.gz" 133 133 } 134 134 }, 135 + "diff2html-css": { 136 + "flake": false, 137 + "locked": { 138 + "narHash": "sha256-4laymVEnJy8ZQBBsJv5XXRg/6sA/gO1FpY6bBRm9z34=", 139 + "type": "file", 140 + "url": "https://cdn.jsdelivr.net/npm/diff2html@3.4.56/bundles/css/diff2html.min.css" 141 + }, 142 + "original": { 143 + "type": "file", 144 + "url": "https://cdn.jsdelivr.net/npm/diff2html@3.4.56/bundles/css/diff2html.min.css" 145 + } 146 + }, 147 + "diff2html-js": { 148 + "flake": false, 149 + "locked": { 150 + "narHash": "sha256-Rc/n1Z3lrdOYh83ZxtQzy5YD1VhuB9m+YOBkQ8a9OTA=", 151 + "type": "file", 152 + "url": "https://cdn.jsdelivr.net/npm/diff2html@3.4.56/bundles/js/diff2html-ui.min.js" 153 + }, 154 + "original": { 155 + "type": "file", 156 + "url": "https://cdn.jsdelivr.net/npm/diff2html@3.4.56/bundles/js/diff2html-ui.min.js" 157 + } 158 + }, 135 159 "disko": { 136 160 "inputs": { 137 161 "nixpkgs": [ ··· 313 337 } 314 338 }, 315 339 "flake-utils_2": { 340 + "inputs": { 341 + "systems": "systems_3" 342 + }, 343 + "locked": { 344 + "lastModified": 1731533236, 345 + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", 346 + "owner": "numtide", 347 + "repo": "flake-utils", 348 + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", 349 + "type": "github" 350 + }, 351 + "original": { 352 + "owner": "numtide", 353 + "repo": "flake-utils", 354 + "type": "github" 355 + } 356 + }, 357 + "flake-utils_3": { 316 358 "locked": { 317 359 "lastModified": 1676283394, 318 360 "narHash": "sha256-XX2f9c3iySLCw54rJ/CZs+ZK6IQy7GXNY4nSOyu2QG4=", ··· 390 432 "type": "github" 391 433 } 392 434 }, 435 + "kannix": { 436 + "inputs": { 437 + "diff2html-css": "diff2html-css", 438 + "diff2html-js": "diff2html-js", 439 + "flake-utils": "flake-utils_2", 440 + "nixpkgs": [ 441 + "nixpkgs" 442 + ] 443 + }, 444 + "locked": { 445 + "lastModified": 1773427235, 446 + "narHash": "sha256-IT1SDGP5fRxrWj0zpuSSClzyqH8HsPezNaGpA0NmC9Q=", 447 + "ref": "refs/heads/master", 448 + "rev": "c2c64242355a354fd2c0146a436bcc91a0a208ab", 449 + "revCount": 41, 450 + "type": "git", 451 + "url": "file:/home/lass/src/kannix" 452 + }, 453 + "original": { 454 + "type": "git", 455 + "url": "file:/home/lass/src/kannix" 456 + } 457 + }, 393 458 "le_menu": { 394 459 "inputs": { 395 460 "flake-parts": "flake-parts_2", ··· 420 485 "nixpkgs": [ 421 486 "nixpkgs" 422 487 ], 423 - "systems": "systems_3", 488 + "systems": "systems_4", 424 489 "treefmt-nix": "treefmt-nix_3" 425 490 }, 426 491 "locked": { ··· 559 624 }, 560 625 "nix-writers": { 561 626 "inputs": { 562 - "flake-utils": "flake-utils_2", 627 + "flake-utils": "flake-utils_3", 563 628 "nixpkgs": [ 564 629 "stockholm", 565 630 "nixpkgs" ··· 655 720 "nixpkgs": [ 656 721 "nixpkgs" 657 722 ], 658 - "systems": "systems_4" 723 + "systems": "systems_5" 659 724 }, 660 725 "locked": { 661 726 "lastModified": 1772402258, ··· 718 783 "clan-core": "clan-core", 719 784 "disko": "disko", 720 785 "extra-container": "extra-container", 786 + "kannix": "kannix", 721 787 "le_menu": "le_menu", 722 788 "llm-agents": "llm-agents", 723 789 "nether": "nether", ··· 848 914 } 849 915 }, 850 916 "systems_4": { 917 + "locked": { 918 + "lastModified": 1681028828, 919 + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 920 + "owner": "nix-systems", 921 + "repo": "default", 922 + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 923 + "type": "github" 924 + }, 925 + "original": { 926 + "owner": "nix-systems", 927 + "repo": "default", 928 + "type": "github" 929 + } 930 + }, 931 + "systems_5": { 851 932 "locked": { 852 933 "lastModified": 1681028828, 853 934 "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+3
flake.nix
··· 75 75 76 76 nixos-mailserver.url = "gitlab:simple-nixos-mailserver/nixos-mailserver/master"; 77 77 nixos-mailserver.inputs.nixpkgs.follows = "nixpkgs"; 78 + 79 + kannix.url = "git+file:/home/lass/src/kannix"; 80 + kannix.inputs.nixpkgs.follows = "nixpkgs"; 78 81 }; 79 82 80 83 outputs =
+59
2configs/kannix.nix
··· 1 + { 2 + self, 3 + config, 4 + pkgs, 5 + lib, 6 + ... 7 + }: 8 + let 9 + port = 4243; 10 + stateDir = "/var/lib/kannix"; 11 + in 12 + { 13 + imports = [ 14 + self.inputs.kannix.nixosModules.default 15 + ]; 16 + 17 + services.kannix = { 18 + enable = true; 19 + package = self.inputs.kannix.packages.${pkgs.system}.default; 20 + host = "127.0.0.1"; 21 + inherit port; 22 + inherit stateDir; 23 + columns = [ 24 + "Backlog" 25 + "In Progress" 26 + "Review" 27 + "Done" 28 + ]; 29 + reposDir = "${stateDir}/repos"; 30 + worktreeDir = "${stateDir}/worktrees"; 31 + }; 32 + 33 + # SSH access for the kannix user 34 + users.users.kannix.openssh.authorizedKeys.keys = [ 35 + self.keys.ssh.barnacle.public 36 + self.keys.ssh.yubi_pgp.public 37 + self.keys.ssh.yubi1.public 38 + self.keys.ssh.yubi2.public 39 + self.keys.ssh.solo2.public 40 + self.keys.ssh.xerxes.public 41 + self.keys.ssh.massulus.public 42 + ]; 43 + 44 + services.nginx.virtualHosts."kannix.lassul.us" = { 45 + enableACME = true; 46 + forceSSL = true; 47 + locations."/" = { 48 + proxyPass = "http://127.0.0.1:${toString port}"; 49 + proxyWebsockets = true; 50 + extraConfig = '' 51 + proxy_set_header Host $host; 52 + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 53 + proxy_set_header X-Forwarded-Proto $scheme; 54 + proxy_read_timeout 3600s; 55 + proxy_send_timeout 3600s; 56 + ''; 57 + }; 58 + }; 59 + }
+2 -3
machines/neoprism/backup.nix
··· 31 31 "/var/lib/matrix-synapse/media_store/local_content" 32 32 "/var/lib/radicale" 33 33 "/home/bot" 34 - "/var/lib/kanvibe" 34 + "/var/lib/kannix" 35 35 "/var/vmail" 36 36 "/var/dkim" 37 37 "/var/sieve" ··· 41 41 "/home/bot/.cache" 42 42 "/home/bot/.nix-defexpr" 43 43 "/home/bot/.nix-profile" 44 - "/var/lib/kanvibe/.cache" 45 - "/var/lib/kanvibe/.npm" 44 + "/var/lib/kannix/.cache" 46 45 ]; 47 46 repo = "u550643@u550643.your-storagebox.de:/./neoprism"; 48 47 encryption.mode = "none";
+2 -2
machines/neoprism/config.nix
··· 68 68 # opencrow matrix bot 69 69 ../../2configs/opencrow.nix 70 70 71 - # kanvibe (kanban board) 72 - ../../2configs/kanvibe.nix 71 + # kannix (kanban board) 72 + ../../2configs/kannix.nix 73 73 74 74 # backups 75 75 ./backup.nix