diff --git a/flake.lock b/flake.lock deleted file mode 100644 index e948561..0000000 --- a/flake.lock +++ /dev/null @@ -1,1116 +0,0 @@ -{ - "nodes": { - "amiaBot": { - "flake": false, - "locked": { - "lastModified": 1787968873, - "narHash": "sha256-4yj/DVb8coxS99S3DWODO6Z2ALwlPv+XCo+XYt0fwnk=", - "ref": "refs/heads/main", - "rev": "1bb9e25c08a737923c8e27e07731f92ee6717a10", - "revCount": 43, - "type": "git", - "url": "ssh://forgejo@mizuki.guru/imnyang/amia" - }, - "original": { - "type": "git", - "url": "ssh://forgejo@mizuki.guru/imnyang/amia" - } - }, - "api": { - "flake": false, - "locked": { - "lastModified": 1787723012, - "narHash": "sha256-F50Xo5GYC+4DJRUoCqli9hqVNBUjGIgcuj+3ie3o5FE=", - "ref": "refs/heads/main", - "rev": "ba2b89230305842efd8ed0b6627acb26ab0ad4d7", - "revCount": 35, - "type": "git", - "url": "ssh://forgejo@mizuki.guru/imnyang/api.git" - }, - "original": { - "type": "git", - "url": "ssh://forgejo@mizuki.guru/imnyang/api.git" - } - }, - "brew-src": { - "flake": false, - "locked": { - "lastModified": 1786945682, - "narHash": "sha256-VBESSoJccikdhxh3vp3SQeG7cZXTOulMvVkoSqNDEhs=", - "owner": "Homebrew", - "repo": "brew", - "rev": "5b90e281d4e0c8fbd6ca4d8358276fb305b8d0bd", - "type": "github" - }, - "original": { - "owner": "Homebrew", - "ref": "6.0.18", - "repo": "brew", - "type": "github" - } - }, - "catppuccin": { - "inputs": { - "nixpkgs": "nixpkgs" - }, - "locked": { - "lastModified": 1786696832, - "narHash": "sha256-wjdfX+jCJCJsteGD75xEfsDR3yATFFEx4mwelhlDXdU=", - "owner": "catppuccin", - "repo": "nix", - "rev": "35d78c213b65e38789bcb359aae2380fcb4dc3e8", - "type": "github" - }, - "original": { - "owner": "catppuccin", - "repo": "nix", - "type": "github" - } - }, - "cfwithoutincident": { - "flake": false, - "locked": { - "lastModified": 1787069836, - "narHash": "sha256-2cfWoKl2d9caaaYgbUo7oOKsqxpAezssyp0IqFqxAqA=", - "ref": "refs/heads/main", - "rev": "c759097e3ada0324e56e7aca067a6d30b9b491fa", - "revCount": 5, - "type": "git", - "url": "https://git.mizuki.guru/imnyang/cfwithoutincident.git" - }, - "original": { - "type": "git", - "url": "https://git.mizuki.guru/imnyang/cfwithoutincident.git" - } - }, - "codex-app": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs_2" - }, - "locked": { - "lastModified": 1788100217, - "narHash": "sha256-d6Mcm0MUzuY/1A30vktTgdUiT84CtklN7TPOs5nLbFs=", - "owner": "ilysenko", - "repo": "codex-desktop-linux", - "rev": "241435e57b27da16e1a4381dabeb9c63876dfab2", - "type": "github" - }, - "original": { - "owner": "ilysenko", - "repo": "codex-desktop-linux", - "type": "github" - } - }, - "darwin": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1786845137, - "narHash": "sha256-oQFip+v0luP8NIxJzmiW4Wu8bILsbFWom5l0zonl8hQ=", - "owner": "nix-darwin", - "repo": "nix-darwin", - "rev": "4cff07de74b50e64bdd68cd4e722ab5b6b35ee48", - "type": "github" - }, - "original": { - "owner": "nix-darwin", - "repo": "nix-darwin", - "type": "github" - } - }, - "flake-compat": { - "flake": false, - "locked": { - "lastModified": 1767039857, - "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_2": { - "flake": false, - "locked": { - "lastModified": 1767039857, - "narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=", - "owner": "NixOS", - "repo": "flake-compat", - "rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab", - "type": "github" - }, - "original": { - "owner": "NixOS", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-parts": { - "inputs": { - "nixpkgs-lib": "nixpkgs-lib" - }, - "locked": { - "lastModified": 1785627969, - "narHash": "sha256-4dtXQk/NMePegK/nWp5NSeuZKLATItOq61lpEvmXqGw=", - "owner": "hercules-ci", - "repo": "flake-parts", - "rev": "427bf4bd9435fdf21321c8cc628c24efc14c0f7a", - "type": "github" - }, - "original": { - "owner": "hercules-ci", - "repo": "flake-parts", - "type": "github" - } - }, - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_2": { - "inputs": { - "systems": "systems_2" - }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_3": { - "inputs": { - "systems": "systems_3" - }, - "locked": { - "lastModified": 1731533236, - "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "home-manager": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1788229478, - "narHash": "sha256-G0F2rFORVcFkEvVdE/qWQTnYekIc77YP5/vRF9nZlxU=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "1dc2d1f720ab17fc7981e087346bf54b26d284b1", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "home-manager", - "type": "github" - } - }, - "imnyang": { - "inputs": { - "nixpkgs": "nixpkgs_3" - }, - "locked": { - "lastModified": 1787709404, - "narHash": "sha256-yY5C7FZwO+YqUoHbsDuqTHShjNbjiZRvJ9ufSqzkvss=", - "ref": "refs/heads/main", - "rev": "7289f30692ff7bc9cb9ae848ff8968ce7c7d71d8", - "revCount": 73, - "type": "git", - "url": "https://git.mizuki.guru/imnyang/nix-packages.git" - }, - "original": { - "type": "git", - "url": "https://git.mizuki.guru/imnyang/nix-packages.git" - } - }, - "imnyang_2": { - "inputs": { - "nixpkgs": "nixpkgs_13" - }, - "locked": { - "lastModified": 1778582554, - "narHash": "sha256-cTh1Ki0o1/n7fFvuT0XOuiERC+uNxvYf306YsnIk3SU=", - "ref": "refs/heads/main", - "rev": "0ec3a0b5650fde3a1cec8b39d0a8655728e8bea4", - "revCount": 42, - "type": "git", - "url": "https://git.mizuki.guru/imnyang/nix-packages.git" - }, - "original": { - "type": "git", - "url": "https://git.mizuki.guru/imnyang/nix-packages.git" - } - }, - "millennium": { - "inputs": { - "millennium-src": "millennium-src", - "nixpkgs": "nixpkgs_4" - }, - "locked": { - "dir": "packages/nix", - "lastModified": 1788227373, - "narHash": "sha256-0qrdhT+DMGAe+MnrJ4TN6dMpfqzNLJKy7lxb017qXM4=", - "owner": "SteamClientHomebrew", - "repo": "Millennium", - "rev": "d0f88ac144265e5dad207c13c5b4fb0aaaac5134", - "type": "github" - }, - "original": { - "dir": "packages/nix", - "owner": "SteamClientHomebrew", - "repo": "Millennium", - "type": "github" - } - }, - "millennium-src": { - "flake": false, - "locked": { - "lastModified": 1787082953, - "narHash": "sha256-zgr4cdJfye4qunpD3ClNnZ9D1WPGQAXV0CnYwEbB52s=", - "owner": "SteamClientHomebrew", - "repo": "Millennium", - "rev": "513b02e809b0eb120ecf0ae12e548798dd756323", - "type": "github" - }, - "original": { - "owner": "SteamClientHomebrew", - "repo": "Millennium", - "rev": "513b02e809b0eb120ecf0ae12e548798dd756323", - "type": "github" - } - }, - "mizuki-nc": { - "inputs": { - "nixpkgs": "nixpkgs_5" - }, - "locked": { - "lastModified": 1782378344, - "narHash": "sha256-25d8nVL5f3W1apIZ4amMAPpipgpH7gPyZAqsTGcJE34=", - "ref": "refs/heads/main", - "rev": "70b1c9a2befc933c63f2b3197655b4f1166f9fbb", - "revCount": 1, - "type": "git", - "url": "https://git.mizuki.guru/imnyang/mizuki.guru.git" - }, - "original": { - "rev": "70b1c9a2befc933c63f2b3197655b4f1166f9fbb", - "type": "git", - "url": "https://git.mizuki.guru/imnyang/mizuki.guru.git" - } - }, - "muvel": { - "inputs": { - "nixpkgs": "nixpkgs_6" - }, - "locked": { - "lastModified": 1787844484, - "narHash": "sha256-kskLu8I0fEuvItuHgTa4NvfcCAGc1xksgQrOs3frGuU=", - "owner": "imnyang", - "repo": "muvel-nix", - "rev": "142e832aa14d18c70d926f21ff7c7449a3143772", - "type": "github" - }, - "original": { - "owner": "imnyang", - "repo": "muvel-nix", - "type": "github" - } - }, - "nix-flatpak": { - "locked": { - "lastModified": 1783368811, - "narHash": "sha256-0H8jDwR4Kegb3heaTrH1ftbgKfZVDT8JE+46uXxDy/Q=", - "owner": "gmodena", - "repo": "nix-flatpak", - "rev": "20d42f0ee98c9fe9f85e8d1de474f1409ed10d05", - "type": "github" - }, - "original": { - "owner": "gmodena", - "repo": "nix-flatpak", - "type": "github" - } - }, - "nix-homebrew": { - "inputs": { - "brew-src": "brew-src" - }, - "locked": { - "lastModified": 1787330919, - "narHash": "sha256-LslMncqN7uOOH5S88WZtO/EVt2HwD8ltUnfyANk+mC0=", - "owner": "zhaofengli", - "repo": "nix-homebrew", - "rev": "b00218e4aec0e5bf07d61a0bb13f842faa582d7b", - "type": "github" - }, - "original": { - "owner": "zhaofengli", - "repo": "nix-homebrew", - "type": "github" - } - }, - "nixcord": { - "inputs": { - "flake-parts": "flake-parts", - "nixpkgs": "nixpkgs_7", - "nixpkgs-nixcord": "nixpkgs-nixcord", - "treefmt-nix": "treefmt-nix" - }, - "locked": { - "lastModified": 1788232088, - "narHash": "sha256-xCdfhDBuO98OhrGsI3+0Qg0OspmlE4Ahvk9hZlro65c=", - "owner": "4evy", - "repo": "nixcord", - "rev": "38f911bde61ef009fbba1143ed2773dc11ed3649", - "type": "github" - }, - "original": { - "owner": "4evy", - "repo": "nixcord", - "type": "github" - } - }, - "nixos-wsl": { - "inputs": { - "flake-compat": "flake-compat", - "nixpkgs": "nixpkgs_8" - }, - "locked": { - "lastModified": 1784642409, - "narHash": "sha256-hcbDqFuySAJawljt5r0sKBCJKYnbtGD0T/ZIozH1Dq0=", - "owner": "nix-community", - "repo": "NixOS-WSL", - "rev": "eaeb18da90024448a60eb1ec7132eafa4003404e", - "type": "github" - }, - "original": { - "owner": "nix-community", - "ref": "main", - "repo": "NixOS-WSL", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1786534138, - "narHash": "sha256-Cwffw7dPM56d8spt4/queFQ1cKg69D9qrsp+wfwKvfo=", - "rev": "044bfe75bfe4c7bbe043dc17b5e42ea823b84a09", - "type": "tarball", - "url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.11pre1052792.044bfe75bfe4/nixexprs.tar.xz" - }, - "original": { - "type": "tarball", - "url": "https://channels.nixos.org/nixpkgs-unstable/nixexprs.tar.xz" - } - }, - "nixpkgs-2511": { - "locked": { - "lastModified": 1782847189, - "narHash": "sha256-twXPFqFsrrY5r28Zh7Homgcp2gUMBgQ6WDS98Q/3xFI=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "b6018f87da91d19d0ab4cf979885689b469cdd41", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-25.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-lib": { - "locked": { - "lastModified": 1785031560, - "narHash": "sha256-OmshNvn2vupOFpYinLUu+1Dnpu4n7Q5N3ggGVNHpkUI=", - "owner": "nix-community", - "repo": "nixpkgs.lib", - "rev": "0e79af5e3d4dcfcd676ab5ba3f95d2e3352e078c", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nixpkgs.lib", - "type": "github" - } - }, - "nixpkgs-libxml2": { - "locked": { - "lastModified": 1751274312, - "narHash": "sha256-/bVBlRpECLVzjV19t5KMdMFWSwKLtb5RyXdjz3LJT+g=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "50ab793786d9de88ee30ec4e4c24fb4236fc2674", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-24.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-nixcord": { - "locked": { - "lastModified": 1786711500, - "narHash": "sha256-QvnceIGTBeDvDd9oCn+GvdsnkquliuwbVgpiRH68qaQ=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "02e08985a27c65ffd33d434eeb2e660a2e4dc84d", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-26.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_10": { - "locked": { - "lastModified": 1772963539, - "narHash": "sha256-9jVDGZnvCckTGdYT53d/EfznygLskyLQXYwJLKMPsZs=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "9dcb002ca1690658be4a04645215baea8b95f31d", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_11": { - "locked": { - "lastModified": 1787900134, - "narHash": "sha256-5GWj0FI2uOwKNpXkmpWrSFDe1rCaNBCUQ8d+HDtFQPI=", - "rev": "83199d0d373dd3ac2b9a1996b1d0263f76ab7a4c", - "type": "tarball", - "url": "https://releases.nixos.org/nixos/unstable/nixos-26.11pre1063296.83199d0d373d/nixexprs.tar.xz" - }, - "original": { - "type": "tarball", - "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz" - } - }, - "nixpkgs_12": { - "locked": { - "lastModified": 1787900134, - "narHash": "sha256-VYXO0XZlgj06dxJZRhrD3WoSsvq/c7+/Akyoa22pefw=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "83199d0d373dd3ac2b9a1996b1d0263f76ab7a4c", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_13": { - "locked": { - "lastModified": 1777954456, - "narHash": "sha256-hGdgeU2Nk87RAuZyYjyDjFL6LK7dAZN5RE9+hrDTkDU=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "549bd84d6279f9852cae6225e372cc67fb91a4c1", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_2": { - "locked": { - "lastModified": 1772773019, - "narHash": "sha256-E1bxHxNKfDoQUuvriG71+f+s/NT0qWkImXsYZNFFfCs=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "aca4d95fce4914b3892661bcb80b8087293536c6", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { - "locked": { - "lastModified": 1779508470, - "narHash": "sha256-Ap9KJX+5xHIn3bPIpfNgT6MEXdAECECwo4/rmlQD74M=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "29916453413845e54a65b8a1cf996842300cd299", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_4": { - "locked": { - "lastModified": 1781577229, - "narHash": "sha256-lrp67w8AulE9Ks53n27I45ADSzbOCn4H+CNW1Ck8B+8=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", - "type": "github" - }, - "original": { - "owner": "nixos", - "repo": "nixpkgs", - "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", - "type": "github" - } - }, - "nixpkgs_5": { - "locked": { - "lastModified": 1781577229, - "narHash": "sha256-lrp67w8AulE9Ks53n27I45ADSzbOCn4H+CNW1Ck8B+8=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "567a49d1913ce81ac6e9582e3553dd90a955875f", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_6": { - "locked": { - "lastModified": 1785104993, - "narHash": "sha256-eKbrvPoAOFutbYMdbB3r5EQVmFxKv24iKqHPPUXA0gM=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "8623c4c20aa4ca2f5fb81510d2944066c3fb0d96", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-26.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_7": { - "locked": { - "lastModified": 1786711500, - "narHash": "sha256-QvnceIGTBeDvDd9oCn+GvdsnkquliuwbVgpiRH68qaQ=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "02e08985a27c65ffd33d434eeb2e660a2e4dc84d", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-26.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_8": { - "locked": { - "lastModified": 1783776592, - "narHash": "sha256-UgCQzxeWI75XM8G+hPrPh+MKzEPjG3SpAj7dtqSbksA=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "e7a3ca8092b61ff85b6a45bf863ea2b2d6a661b3", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_9": { - "locked": { - "lastModified": 1788179007, - "narHash": "sha256-hn1oU2rue2SYK8dAr8+WNZWtbsz1S2W5mnHlSEuh3bo=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "34ab99075ac4f7e40cf037eef32cb1c360bb85e9", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "notion-desktop": { - "inputs": { - "flake-utils": "flake-utils_2", - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1768704570, - "narHash": "sha256-5yguPW33Gp2uYVKUgIiE5kgtct+/Sy5rsgI4Tu1yMHM=", - "owner": "heytcass", - "repo": "notion-mac-flake", - "rev": "8cc1e702d64270bd6517bf9fb640f80844d371fd", - "type": "github" - }, - "original": { - "owner": "heytcass", - "repo": "notion-mac-flake", - "type": "github" - } - }, - "numen": { - "inputs": { - "nixpkgs": [ - "vicinae", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1788096061, - "narHash": "sha256-kjnCgTn45XzFmoiHZYFZsToyc+TXHQ43Nk0UkEbhw68=", - "owner": "vicinaehq", - "repo": "numen", - "rev": "0ed1b2bfddd6adfa367acfa46148e2b9c5a5b818", - "type": "github" - }, - "original": { - "owner": "vicinaehq", - "ref": "v0.6.1", - "repo": "numen", - "type": "github" - } - }, - "paring": { - "inputs": { - "flake-utils": "flake-utils_3", - "nixpkgs": "nixpkgs_10" - }, - "locked": { - "lastModified": 1773918161, - "narHash": "sha256-m+BNlxiBcf/t3hROBNQ+Ni1dITej/Ixpafw83+gWrYE=", - "ref": "refs/heads/master", - "rev": "4d251d65e72d00f168354aca95a26fc04d12a936", - "revCount": 45, - "type": "git", - "url": "https://git.pari.ng/paring/nix-packages.git" - }, - "original": { - "type": "git", - "url": "https://git.pari.ng/paring/nix-packages.git" - } - }, - "plasma-manager": { - "inputs": { - "home-manager": [ - "home-manager" - ], - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1785762349, - "narHash": "sha256-jZhZkzAwc7f3exzcTDJWP2WCAchCv0iNC3UF/QsahdQ=", - "owner": "nix-community", - "repo": "plasma-manager", - "rev": "a19a2a029fa180911bd89c554dca1616e10f4c1d", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "plasma-manager", - "type": "github" - } - }, - "quadlet-nix": { - "locked": { - "lastModified": 1785695563, - "narHash": "sha256-kE3JCUeQA4CXlLl5TglmKceOJP+ZF/CwkHngiZ3yS00=", - "owner": "SEIAROTg", - "repo": "quadlet-nix", - "rev": "b6ff6c4d6b36b8e29bce417b668597fab3e03160", - "type": "github" - }, - "original": { - "owner": "SEIAROTg", - "repo": "quadlet-nix", - "type": "github" - } - }, - "root": { - "inputs": { - "amiaBot": "amiaBot", - "api": "api", - "catppuccin": "catppuccin", - "cfwithoutincident": "cfwithoutincident", - "codex-app": "codex-app", - "darwin": "darwin", - "home-manager": "home-manager", - "imnyang": "imnyang", - "millennium": "millennium", - "mizuki-nc": "mizuki-nc", - "muvel": "muvel", - "nix-flatpak": "nix-flatpak", - "nix-homebrew": "nix-homebrew", - "nixcord": "nixcord", - "nixos-wsl": "nixos-wsl", - "nixpkgs": "nixpkgs_9", - "nixpkgs-2511": "nixpkgs-2511", - "notion-desktop": "notion-desktop", - "paring": "paring", - "plasma-manager": "plasma-manager", - "quadlet-nix": "quadlet-nix", - "rustfs": "rustfs", - "sops-nix": "sops-nix", - "spicetify-nix": "spicetify-nix", - "vicinae": "vicinae", - "vicinae-extensions": "vicinae-extensions", - "vscode-nigo": "vscode-nigo" - } - }, - "rustfs": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1786633267, - "narHash": "sha256-2xMfAqVcFGUv5KSTPyPQo8lYFEhpRz79U1SeZDyDQ0g=", - "owner": "rustfs", - "repo": "rustfs-flake", - "rev": "0eeef21f2410ba0e47fbbf44b3ba70fc8f19d468", - "type": "github" - }, - "original": { - "owner": "rustfs", - "repo": "rustfs-flake", - "type": "github" - } - }, - "sops-nix": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1786629091, - "narHash": "sha256-gkig4nPi1CWc4Z50GBsjE4ygSE7hMpl/TwID2an2Cck=", - "owner": "Mic92", - "repo": "sops-nix", - "rev": "a8627b21b9107c5711c96b84f32a9a4b3d45295f", - "type": "github" - }, - "original": { - "owner": "Mic92", - "repo": "sops-nix", - "type": "github" - } - }, - "soulver-cpp": { - "inputs": { - "nixpkgs": [ - "vicinae", - "nixpkgs" - ], - "nixpkgs-libxml2": "nixpkgs-libxml2" - }, - "locked": { - "lastModified": 1783621734, - "narHash": "sha256-YBFO+aurlz2y2hTRN1Kl0RjX6JzHn0mYBmt4zb436Yg=", - "owner": "vicinaehq", - "repo": "soulver-cpp", - "rev": "00e926e2bd03118638c88981f6a67bfa107210c2", - "type": "github" - }, - "original": { - "owner": "vicinaehq", - "repo": "soulver-cpp", - "type": "github" - } - }, - "spicetify-nix": { - "inputs": { - "nixpkgs": "nixpkgs_11", - "systems": "systems_4" - }, - "locked": { - "lastModified": 1788083617, - "narHash": "sha256-aXMDRUxm/9se+vgKViKdDcClk1k3qA3sUwT0kAYo3Fg=", - "owner": "Gerg-L", - "repo": "spicetify-nix", - "rev": "bf4ed54253a61c8324a5b461638c42db77c0b980", - "type": "github" - }, - "original": { - "owner": "Gerg-L", - "repo": "spicetify-nix", - "type": "github" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "systems_2": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "systems_3": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "systems_4": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "systems_5": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "systems_6": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "treefmt-nix": { - "inputs": { - "nixpkgs": [ - "nixcord", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1785945821, - "narHash": "sha256-NLSyTCW4K4ofhNBllt3omPasm6QpralXH1DBZOc91Dw=", - "owner": "numtide", - "repo": "treefmt-nix", - "rev": "ae7910970dddc408fe6ab1c8e4b277bb21d72dc0", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "treefmt-nix", - "type": "github" - } - }, - "vicinae": { - "inputs": { - "nixpkgs": "nixpkgs_12", - "numen": "numen", - "soulver-cpp": "soulver-cpp", - "systems": "systems_5" - }, - "locked": { - "lastModified": 1788212181, - "narHash": "sha256-egOvbAGAFfrDwblt5fl73IGOdR1x6x4Dqr5J68jD+Wo=", - "owner": "vicinaehq", - "repo": "vicinae", - "rev": "8a882f7be84c47b5d7dbc1c500fd22763aea5a7d", - "type": "github" - }, - "original": { - "owner": "vicinaehq", - "repo": "vicinae", - "type": "github" - } - }, - "vicinae-extensions": { - "inputs": { - "flake-compat": "flake-compat_2", - "nixpkgs": [ - "nixpkgs" - ], - "systems": "systems_6", - "vicinae": "vicinae_2" - }, - "locked": { - "lastModified": 1788128057, - "narHash": "sha256-hWweiuJ0Ybq5ZNostG2Ky0/J4yGeDOHg/kSLNPyMiQI=", - "owner": "vicinaehq", - "repo": "extensions", - "rev": "9558aec33311c6759a14ffe8ef65dd1be669aebb", - "type": "github" - }, - "original": { - "owner": "vicinaehq", - "repo": "extensions", - "type": "github" - } - }, - "vicinae_2": { - "inputs": { - "nixpkgs": [ - "vicinae-extensions", - "nixpkgs" - ], - "systems": [ - "vicinae-extensions", - "systems" - ] - }, - "locked": { - "lastModified": 1780277152, - "narHash": "sha256-P3YrDLnggsMsSoiX/ox3CS6GkZtY37XQVon/QR6Agw8=", - "owner": "vicinaehq", - "repo": "vicinae", - "rev": "67290dff5b2191a6cb6dd78b31d623eeef3acdec", - "type": "github" - }, - "original": { - "owner": "vicinaehq", - "repo": "vicinae", - "type": "github" - } - }, - "vscode-nigo": { - "inputs": { - "imnyang": "imnyang_2", - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1778582610, - "narHash": "sha256-XzmvwRG9Ztjls52qYSDsq5U0x6jD6lRJfnp/A2TWv4M=", - "ref": "main", - "rev": "43b78f086143ade3fe37da41b9bc804055660022", - "revCount": 10, - "type": "git", - "url": "https://git.pari.ng/imnyang/vscode-nigo.git" - }, - "original": { - "ref": "main", - "type": "git", - "url": "https://git.pari.ng/imnyang/vscode-nigo.git" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/flake.nix b/flake.nix index 9708821..e4fd518 100644 --- a/flake.nix +++ b/flake.nix @@ -36,6 +36,8 @@ nixcord.url = "github:4evy/nixcord"; + concord.url = "github:chojs23/concord"; + vscode-nigo = { url = "git+https://git.pari.ng/imnyang/vscode-nigo.git?ref=main"; inputs.nixpkgs.follows = "nixpkgs"; diff --git a/hosts/server/hikari/hako/home.nix b/hosts/server/hikari/hako/home.nix index bcf93b9..d9c9f10 100644 --- a/hosts/server/hikari/hako/home.nix +++ b/hosts/server/hikari/hako/home.nix @@ -6,6 +6,34 @@ let nr = import "${inputs.self}/modules/mizukios/features/packages/nr.nix" { inherit pkgs; }; nrr = import "${inputs.self}/modules/mizukios/features/packages/nrr.nix" { inherit pkgs; }; + concord = pkgs.writeShellScriptBin "concord" '' + set -eu + + runtime_dir="''${XDG_RUNTIME_DIR:-/tmp}" + session_dir="$(mktemp -d "$runtime_dir/concord-session.XXXXXX")" + + cleanup() { + rm -rf -- "$session_dir" + } + + trap cleanup EXIT + trap 'exit 129' HUP + trap 'exit 130' INT + trap 'exit 143' TERM + + config_home="$session_dir/config" + state_home="$session_dir/state" + mkdir -p "$config_home" "$state_home" + + cat > "$config_home/config.toml" <<'EOF' +[credentials] +store = "plain" +EOF + + XDG_CONFIG_HOME="$config_home" \ + XDG_STATE_HOME="$state_home" \ + "${inputs.concord.packages.${pkgs.system}.default}/bin/concord" "$@" + ''; in { home.stateVersion = "26.05"; @@ -13,6 +41,7 @@ in home.homeDirectory = "/home/imnyang"; home.packages = [ + concord nr nrr ]; diff --git a/hosts/server/hikari/hako/services/caddy.nix b/hosts/server/hikari/hako/services/caddy.nix index 0cd8a82..628947e 100644 --- a/hosts/server/hikari/hako/services/caddy.nix +++ b/hosts/server/hikari/hako/services/caddy.nix @@ -95,8 +95,8 @@ let ''; }; - # These were previously served by *.imnya.ng. Listing them explicitly lets - # stock Caddy obtain an individual certificate without a DNS challenge. + # Keep these explicit hosts for their existing per-host content. The + # wildcard host below handles any other one-level subdomain. staticHosts = [ "26layer7beginner.imnya.ng" "alt.imnya.ng" @@ -149,7 +149,20 @@ in enable = true; email = "imnyang@pm.me"; openFirewall = true; - package = pkgs.caddy; + package = pkgs.caddy.withPlugins { + plugins = [ + "github.com/caddy-dns/cloudflare@v0.2.4" + "github.com/aksdb/caddy-cgi/v2@v2.2.6" + "github.com/shift72/caddy-geo-ip@v0.6.0" + "github.com/lolPants/caddy-requestid@v1.1.2" + "github.com/WeidiDeng/caddy-cloudflare-ip@v0.0.0-20231130002422-f53b62aa13cb" + "github.com/caddyserver/ntlm-transport@v0.1.2" + "github.com/ueffel/caddy-brotli@v1.6.0" + "github.com/RussellLuo/caddy-ext/ratelimit@v0.3.0" + "github.com/neodyme-labs/user_agent_parse@v0.0.1" + ]; + hash = "sha256-r4MgRk8HpKYx7f8FmA3PKgD/5ZNTIHpQvlE+zRbP0lw="; + }; globalConfig = '' admin unix//run/caddy/admin.socket @@ -170,6 +183,15 @@ in }) staticHosts ) // { + "*.imnya.ng".extraConfig = withErrors '' + tls { + dns cloudflare {env.CLOUDFLARE_API_TOKEN} + } + + root * /var/static/{host} + file_server + ''; + "api.imnya.ng".extraConfig = reverseProxyWithHeaders "127.0.0.1:10118"; "docs.imnya.ng".extraConfig = reverseProxy "100.70.1.1:3939"; "panel.imnya.ng".extraConfig = reverseProxy "127.0.0.1:32981"; @@ -372,6 +394,9 @@ in requires = [ "mnt-static.mount" ]; after = [ "mnt-static.mount" "systemd-tmpfiles-setup.service" ]; serviceConfig = { + # Keep the manually provisioned token outside NixOS-managed /etc. + # /var/lib/caddy is persistent across system generations. + EnvironmentFile = "/var/lib/caddy/cloudflare.env"; RuntimeDirectory = "caddy"; RuntimeDirectoryMode = "0755"; }; diff --git a/hosts/server/hikari/hako/services/forgejo.nix b/hosts/server/hikari/hako/services/forgejo.nix index 062f0e0..5ec7dfe 100644 --- a/hosts/server/hikari/hako/services/forgejo.nix +++ b/hosts/server/hikari/hako/services/forgejo.nix @@ -82,7 +82,7 @@ DISABLE_REGISTRATION = false; ALLOW_ONLY_EXTERNAL_REGISTRATION = true; ENABLE_CAPTCHA = false; - REQUIRE_SIGNIN_VIEW = false; + REQUIRE_SIGNIN_VIEW = lib.mkForce false; DEFAULT_KEEP_EMAIL_PRIVATE = false; DEFAULT_ALLOW_CREATE_ORGANIZATION = true; DEFAULT_ENABLE_TIMETRACKING = true; diff --git a/hosts/server/hikari/hako/services/quadlet/authentik.nix b/hosts/server/hikari/hako/services/quadlet/authentik.nix index 05f623c..15500ed 100644 --- a/hosts/server/hikari/hako/services/quadlet/authentik.nix +++ b/hosts/server/hikari/hako/services/quadlet/authentik.nix @@ -2,6 +2,7 @@ let inherit (config.virtualisation.quadlet) containers networks; + authentikVersion = "2026.5.6"; authentikEnv = config.sops.secrets."containers/authentik.env".path; outpostEnv = config.sops.secrets."containers/authentik-outpost.env".path; in @@ -53,7 +54,7 @@ in authentik-server = { containerConfig = { - image = "ghcr.io/goauthentik/server:2026.5.0"; + image = "ghcr.io/goauthentik/server:${authentikVersion}"; exec = "server"; networks = [ networks.authentik.ref ]; publishPorts = [ @@ -65,6 +66,11 @@ in "/home/imnyang/Docker/authentik/custom-templates:/templates:Z" ]; environmentFiles = [ authentikEnv ]; + environments = { + # Authentik 2026.5 defaults to [::], but hako is reached over IPv4. + AUTHENTIK_LISTEN__HTTP = "0.0.0.0:9000"; + AUTHENTIK_LISTEN__HTTPS = "0.0.0.0:9443"; + }; }; unitConfig = { @@ -77,7 +83,7 @@ in authentik-worker = { containerConfig = { - image = "ghcr.io/goauthentik/server:2026.5.0"; + image = "ghcr.io/goauthentik/server:${authentikVersion}"; exec = "worker"; user = "root"; networks = [ networks.authentik.ref ]; @@ -85,9 +91,11 @@ in "/home/imnyang/Docker/authentik/certs:/certs:Z" "/home/imnyang/Docker/authentik/media:/media:Z" "/home/imnyang/Docker/authentik/custom-templates:/templates:Z" - "/var/run/docker.sock:/var/run/docker.sock" ]; environmentFiles = [ authentikEnv ]; + environments = { + AUTHENTIK_LISTEN__HTTP = "0.0.0.0:9000"; + }; }; unitConfig = { @@ -100,7 +108,7 @@ in authentik-outpost-ldap = { containerConfig = { - image = "ghcr.io/goauthentik/ldap:2026.5.0"; + image = "ghcr.io/goauthentik/ldap:${authentikVersion}"; entrypoint = [ "/ldap" ]; user = "1000"; networks = [ networks.authentik.ref ]; @@ -109,6 +117,15 @@ in "636:6636" ]; environmentFiles = [ outpostEnv ]; + environments = { + # Keep the outpost-to-core API traffic on the private Podman network. + # The public hostname resolves through Cloudflare and hairpins back + # through the reverse proxy, which currently returns 502 from hako. + AUTHENTIK_HOST = "http://authentik-server:9000"; + AUTHENTIK_INSECURE = "true"; + AUTHENTIK_LISTEN__LDAP = "0.0.0.0:3389"; + AUTHENTIK_LISTEN__LDAPS = "0.0.0.0:6636"; + }; }; unitConfig = { diff --git a/hosts/server/natsu/services/caddy.nix b/hosts/server/natsu/services/caddy.nix index 9182353..05e7de3 100644 --- a/hosts/server/natsu/services/caddy.nix +++ b/hosts/server/natsu/services/caddy.nix @@ -1,95 +1,4 @@ { pkgs, ... }: - -let - streamPlayer = pkgs.writeTextDir "index.html" '' - - -
- - -