From 102c4b2dca964659f0bd7026619a84a57461063d Mon Sep 17 00:00:00 2001 From: imnyang Date: Tue, 1 Sep 2026 22:04:30 +0900 Subject: [PATCH 1/5] wow --- hosts/server/hikari/hako/services/forgejo.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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; From 427c0003543471bdd793242eb10f1c5fc4b791ea Mon Sep 17 00:00:00 2001 From: imnyang Date: Wed, 2 Sep 2026 00:26:30 +0900 Subject: [PATCH 2/5] wow --- hosts/server/hikari/hako/services/caddy.nix | 29 ++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/hosts/server/hikari/hako/services/caddy.nix b/hosts/server/hikari/hako/services/caddy.nix index 0cd8a82..1e21210 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.2" + "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-z9/LF2gws+H0pKL6F62QfklD0W8DKWCccnXLOOs3+jY="; + }; 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,7 @@ in requires = [ "mnt-static.mount" ]; after = [ "mnt-static.mount" "systemd-tmpfiles-setup.service" ]; serviceConfig = { + EnvironmentFile = "-/etc/caddy/cloudflare.env"; RuntimeDirectory = "caddy"; RuntimeDirectoryMode = "0755"; }; From 1def54ac152e72df4f543e2a08789fee6ff1196a Mon Sep 17 00:00:00 2001 From: imnyang Date: Wed, 2 Sep 2026 00:51:22 +0900 Subject: [PATCH 3/5] wow --- hosts/server/natsu/services/caddy.nix | 112 +------------------------- 1 file changed, 2 insertions(+), 110 deletions(-) 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" '' - - - - - - Mizuki Stream - - - -
- -
- - rtmp://stream.mizuki.guru:1935/live -
-
- - - - - - ''; -in { services.caddy = { enable = true; @@ -182,25 +91,8 @@ in reverse_proxy 127.0.0.1:31774 ''; - virtualHosts."stream.mizuki.guru".extraConfig = '' - handle /live/* { - reverse_proxy 127.0.0.1:10023 - } - - handle /play/* { - root * ${streamPlayer} - rewrite * /index.html - file_server - } - - handle / { - root * ${streamPlayer} - file_server - } - - handle { - respond "Not Found" 404 - } + virtualHosts."pass.imnya.ng".extraConfig = '' + reverse_proxy 127.0.0.1:10302 ''; virtualHosts."netbird.mizuki.guru".extraConfig = '' From 006bcb47ce574d0b0d1aa69abfdebff181801269 Mon Sep 17 00:00:00 2001 From: imnyang Date: Mon, 7 Sep 2026 11:16:13 +0900 Subject: [PATCH 4/5] wow --- flake.lock | 1 + hosts/server/hikari/hako/services/caddy.nix | 8 +++--- .../hako/services/quadlet/authentik.nix | 25 ++++++++++++++++--- 3 files changed, 27 insertions(+), 7 deletions(-) diff --git a/flake.lock b/flake.lock index ae4b8a8..d42ee42 100644 --- a/flake.lock +++ b/flake.lock @@ -1104,3 +1104,4 @@ "root": "root", "version": 7 } + diff --git a/hosts/server/hikari/hako/services/caddy.nix b/hosts/server/hikari/hako/services/caddy.nix index 1e21210..628947e 100644 --- a/hosts/server/hikari/hako/services/caddy.nix +++ b/hosts/server/hikari/hako/services/caddy.nix @@ -151,7 +151,7 @@ in openFirewall = true; package = pkgs.caddy.withPlugins { plugins = [ - "github.com/caddy-dns/cloudflare@v0.2.2" + "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" @@ -161,7 +161,7 @@ in "github.com/RussellLuo/caddy-ext/ratelimit@v0.3.0" "github.com/neodyme-labs/user_agent_parse@v0.0.1" ]; - hash = "sha256-z9/LF2gws+H0pKL6F62QfklD0W8DKWCccnXLOOs3+jY="; + hash = "sha256-r4MgRk8HpKYx7f8FmA3PKgD/5ZNTIHpQvlE+zRbP0lw="; }; globalConfig = '' @@ -394,7 +394,9 @@ in requires = [ "mnt-static.mount" ]; after = [ "mnt-static.mount" "systemd-tmpfiles-setup.service" ]; serviceConfig = { - EnvironmentFile = "-/etc/caddy/cloudflare.env"; + # 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/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 = { From 13b730e341b51984d2778cfafa9bc6cf71a89109 Mon Sep 17 00:00:00 2001 From: imnyang Date: Mon, 7 Sep 2026 11:27:09 +0900 Subject: [PATCH 5/5] wow --- flake.lock | 388 +++++++++++++++++++----------- flake.nix | 2 + hosts/server/hikari/hako/home.nix | 29 +++ 3 files changed, 283 insertions(+), 136 deletions(-) diff --git a/flake.lock b/flake.lock index d42ee42..3154459 100644 --- a/flake.lock +++ b/flake.lock @@ -35,16 +35,16 @@ "brew-src": { "flake": false, "locked": { - "lastModified": 1785710351, - "narHash": "sha256-DTL5T9+HlblsnXCEdxRpEo/2NBHD3t48BS7r+PTf090=", + "lastModified": 1787796349, + "narHash": "sha256-5s+MJAFyemD6lvrtL2c0jQ7P/XChdx1MPXzoCaQY+ic=", "owner": "Homebrew", "repo": "brew", - "rev": "7b0f22a4ab77567edef114c8dfc423fb96e2fbaa", + "rev": "3e3da86e4eaccd23f4ce43df9b0a31b16c707347", "type": "github" }, "original": { "owner": "Homebrew", - "ref": "6.0.15", + "ref": "6.0.20", "repo": "brew", "type": "github" } @@ -54,11 +54,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1786088497, - "narHash": "sha256-lUkfsIy1inAB7dxARG2i3seNDHkSmRejEhhH2NYXDJ4=", + "lastModified": 1786696832, + "narHash": "sha256-wjdfX+jCJCJsteGD75xEfsDR3yATFFEx4mwelhlDXdU=", "owner": "catppuccin", "repo": "nix", - "rev": "9e5cacc4e3a2d01c828fc4b29e88fb577241d70f", + "rev": "35d78c213b65e38789bcb359aae2380fcb4dc3e8", "type": "github" }, "original": { @@ -70,11 +70,11 @@ "cfwithoutincident": { "flake": false, "locked": { - "lastModified": 1787005362, - "narHash": "sha256-VnpE5Tnq7Q4tTpNTJCWR9+SVEf6OZAgKBEROtGHD+lI=", + "lastModified": 1787069836, + "narHash": "sha256-2cfWoKl2d9caaaYgbUo7oOKsqxpAezssyp0IqFqxAqA=", "ref": "refs/heads/main", - "rev": "e5c54597c52f0344f696ec24c618710d2fa250ba", - "revCount": 2, + "rev": "c759097e3ada0324e56e7aca067a6d30b9b491fa", + "revCount": 5, "type": "git", "url": "https://git.mizuki.guru/imnyang/cfwithoutincident.git" }, @@ -89,11 +89,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1786291227, - "narHash": "sha256-zCyH66s71sQmbV4/Etms5OLOHjTMQOMTDzXAS3g077o=", + "lastModified": 1788681010, + "narHash": "sha256-wLX35/1cbmg79G+z9Yi6hjqXVn+vfUNwdnVBIjaBcTQ=", "owner": "ilysenko", "repo": "codex-desktop-linux", - "rev": "05bbbc6cb4b7729e01b15348c0082a086816da84", + "rev": "80366e51b5d7068951017a30f07a3499758fb2ac", "type": "github" }, "original": { @@ -102,6 +102,42 @@ "type": "github" } }, + "concord": { + "inputs": { + "crane": "crane", + "flake-utils": "flake-utils_2", + "nixpkgs": "nixpkgs_3", + "rust-overlay": "rust-overlay" + }, + "locked": { + "lastModified": 1788530944, + "narHash": "sha256-FtehDr5TVgUIUL+i3XH60gulH6wPdauOwrmq5Su0wE8=", + "owner": "chojs23", + "repo": "concord", + "rev": "fdc4912e2af7ae2bc246913ed6656bebf4fc3e08", + "type": "github" + }, + "original": { + "owner": "chojs23", + "repo": "concord", + "type": "github" + } + }, + "crane": { + "locked": { + "lastModified": 1778106249, + "narHash": "sha256-cM/AuKy5tMhwOOQIbha8ZRRMHVfNf7cv2aljIw+qoCg=", + "owner": "ipetkov", + "repo": "crane", + "rev": "6d015ea29630b7ad2402841386da2cb617a470a7", + "type": "github" + }, + "original": { + "owner": "ipetkov", + "repo": "crane", + "type": "github" + } + }, "darwin": { "inputs": { "nixpkgs": [ @@ -109,11 +145,11 @@ ] }, "locked": { - "lastModified": 1785389976, - "narHash": "sha256-0tLW8Ff5yt8AH97jw4ZpFJ0OCJ122zIlgWGDmOfU/VU=", + "lastModified": 1786845137, + "narHash": "sha256-oQFip+v0luP8NIxJzmiW4Wu8bILsbFWom5l0zonl8hQ=", "owner": "nix-darwin", "repo": "nix-darwin", - "rev": "15abb8c98f336cd8bd840d71059adebabe60bf04", + "rev": "4cff07de74b50e64bdd68cd4e722ab5b6b35ee48", "type": "github" }, "original": { @@ -159,11 +195,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1782949081, - "narHash": "sha256-vp6Y/Grm98ESt6ceOkWiHWyZRDV3J1RID4w+6NWK9yA=", + "lastModified": 1785627969, + "narHash": "sha256-4dtXQk/NMePegK/nWp5NSeuZKLATItOq61lpEvmXqGw=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "17c9d6cdfc60c64f4ee8d306f9bc0b4ccb51481e", + "rev": "427bf4bd9435fdf21321c8cc628c24efc14c0f7a", "type": "github" }, "original": { @@ -226,6 +262,24 @@ "type": "github" } }, + "flake-utils_4": { + "inputs": { + "systems": "systems_4" + }, + "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": [ @@ -233,11 +287,11 @@ ] }, "locked": { - "lastModified": 1786286733, - "narHash": "sha256-7dN93WKkEERgutPtTjK7SY3ZarO2LAU33A1+vKu+7cc=", + "lastModified": 1788651960, + "narHash": "sha256-v9wJd32eZ2bvhBzVOd7TIjLQd011P7nwOhjKtWlci5I=", "owner": "nix-community", "repo": "home-manager", - "rev": "367f7ef80856d18438953d54dda235d42a46ba31", + "rev": "2c0350c759688177331b8f5242311fae8877bdb3", "type": "github" }, "original": { @@ -248,14 +302,14 @@ }, "imnyang": { "inputs": { - "nixpkgs": "nixpkgs_3" + "nixpkgs": "nixpkgs_4" }, "locked": { - "lastModified": 1779757090, - "narHash": "sha256-6DceKYQwk2o23dxMD1JQ3+CPHSv80d2khNQC6qJ+W+8=", + "lastModified": 1787709404, + "narHash": "sha256-yY5C7FZwO+YqUoHbsDuqTHShjNbjiZRvJ9ufSqzkvss=", "ref": "refs/heads/main", - "rev": "96d4beeb6b8c22de1dc290ef85a75e740c5e0876", - "revCount": 72, + "rev": "7289f30692ff7bc9cb9ae848ff8968ce7c7d71d8", + "revCount": 73, "type": "git", "url": "https://git.mizuki.guru/imnyang/nix-packages.git" }, @@ -285,15 +339,15 @@ "millennium": { "inputs": { "millennium-src": "millennium-src", - "nixpkgs": "nixpkgs_4" + "nixpkgs": "nixpkgs_5" }, "locked": { "dir": "packages/nix", - "lastModified": 1785944047, - "narHash": "sha256-5J7dUkGh2cxuAuwalNnNoX1NvuFGkqiGYDU5gg4tkHE=", + "lastModified": 1788565178, + "narHash": "sha256-bjItIyGxVAUqaSpr2tdN/YTd8BP2DY+wAmun136LrZs=", "owner": "SteamClientHomebrew", "repo": "Millennium", - "rev": "1b61200b88b7479f8f9c1788364092f2cf270b20", + "rev": "5cbebb86628767f365de987c451a2839afe153bc", "type": "github" }, "original": { @@ -306,23 +360,23 @@ "millennium-src": { "flake": false, "locked": { - "lastModified": 1783268941, - "narHash": "sha256-MJLJ0I48HXgfOpISTAbDMYMUdWj9A6M+jGQz4uAvwyw=", + "lastModified": 1787082953, + "narHash": "sha256-zgr4cdJfye4qunpD3ClNnZ9D1WPGQAXV0CnYwEbB52s=", "owner": "SteamClientHomebrew", "repo": "Millennium", - "rev": "f37f05bdbd4727d873a1ad83ce72d062ef9a0c48", + "rev": "513b02e809b0eb120ecf0ae12e548798dd756323", "type": "github" }, "original": { "owner": "SteamClientHomebrew", "repo": "Millennium", - "rev": "f37f05bdbd4727d873a1ad83ce72d062ef9a0c48", + "rev": "513b02e809b0eb120ecf0ae12e548798dd756323", "type": "github" } }, "mizuki-nc": { "inputs": { - "nixpkgs": "nixpkgs_5" + "nixpkgs": "nixpkgs_6" }, "locked": { "lastModified": 1782378344, @@ -341,14 +395,14 @@ }, "muvel": { "inputs": { - "nixpkgs": "nixpkgs_6" + "nixpkgs": "nixpkgs_7" }, "locked": { - "lastModified": 1785240044, - "narHash": "sha256-k2NeeoGaLJ9o8SwDGoH7r7e+8YiYG2qTMJx6ORfKwTE=", + "lastModified": 1787844484, + "narHash": "sha256-kskLu8I0fEuvItuHgTa4NvfcCAGc1xksgQrOs3frGuU=", "owner": "imnyang", "repo": "muvel-nix", - "rev": "c07bdb4bb3e897e07924457f36ec215a8d4649a2", + "rev": "142e832aa14d18c70d926f21ff7c7449a3143772", "type": "github" }, "original": { @@ -377,11 +431,11 @@ "brew-src": "brew-src" }, "locked": { - "lastModified": 1786217209, - "narHash": "sha256-rusAj5QBnbSwXG6csns6dwxTeCOGRcj08VmlnhUQ6ZY=", + "lastModified": 1788444135, + "narHash": "sha256-ChwTDZPvTmEgZdS30dUfgdXlzAPtZAUWwEH/PfDXZmg=", "owner": "zhaofengli", "repo": "nix-homebrew", - "rev": "486357ea434dc0061ea52121ff99b1d33096c811", + "rev": "ec8417a617de4d3c739aed40837e308ebd667165", "type": "github" }, "original": { @@ -393,16 +447,16 @@ "nixcord": { "inputs": { "flake-parts": "flake-parts", - "nixpkgs": "nixpkgs_7", + "nixpkgs": "nixpkgs_8", "nixpkgs-nixcord": "nixpkgs-nixcord", "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1786767826, - "narHash": "sha256-4iyzSHy8YJN4GLtSBjLemNDTCZuZW16q3RvllSTjTtg=", + "lastModified": 1788682587, + "narHash": "sha256-BRai5YktxQbce79p9AEenHrOd6AJOxZO8B/ZUhDG2LA=", "owner": "4evy", "repo": "nixcord", - "rev": "0d7dc7ca169f7d453216b0bafbad2a43211e8c3c", + "rev": "70f6f5fc5b063021393b25e1ae940edb827e1c48", "type": "github" }, "original": { @@ -414,7 +468,7 @@ "nixos-wsl": { "inputs": { "flake-compat": "flake-compat", - "nixpkgs": "nixpkgs_8" + "nixpkgs": "nixpkgs_9" }, "locked": { "lastModified": 1784642409, @@ -433,11 +487,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1785747939, - "narHash": "sha256-NqaCaIITVSDaBYdcWcfCyEu1erL7paTPEQbISQp9xwQ=", - "rev": "104240a772428cc2e20d8fd86c9ddbb886bbaff2", + "lastModified": 1786534138, + "narHash": "sha256-Cwffw7dPM56d8spt4/queFQ1cKg69D9qrsp+wfwKvfo=", + "rev": "044bfe75bfe4c7bbe043dc17b5e42ea823b84a09", "type": "tarball", - "url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.11pre1046984.104240a77242/nixexprs.tar.xz" + "url": "https://releases.nixos.org/nixpkgs/nixpkgs-26.11pre1052792.044bfe75bfe4/nixexprs.tar.xz" }, "original": { "type": "tarball", @@ -462,11 +516,11 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1782614948, - "narHash": "sha256-ePjCwr1sNm9NYUqywL7QfK3JnlS015msC+eBu2zKlp8=", + "lastModified": 1785031560, + "narHash": "sha256-OmshNvn2vupOFpYinLUu+1Dnpu4n7Q5N3ggGVNHpkUI=", "owner": "nix-community", "repo": "nixpkgs.lib", - "rev": "db3f255737b94216eb71cce308e2912cf6bc2d7c", + "rev": "0e79af5e3d4dcfcd676ab5ba3f95d2e3352e078c", "type": "github" }, "original": { @@ -493,11 +547,11 @@ }, "nixpkgs-nixcord": { "locked": { - "lastModified": 1785386831, - "narHash": "sha256-sPS3CaXH8RAT3FZRuy4VcV47iuYIWMMfa0GbyJKC3o4=", + "lastModified": 1786711500, + "narHash": "sha256-QvnceIGTBeDvDd9oCn+GvdsnkquliuwbVgpiRH68qaQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "21ea275a7c46aef9d4d6ddc962e6d562e9d94183", + "rev": "02e08985a27c65ffd33d434eeb2e660a2e4dc84d", "type": "github" }, "original": { @@ -508,6 +562,22 @@ } }, "nixpkgs_10": { + "locked": { + "lastModified": 1788614874, + "narHash": "sha256-7QYjT2vHLuX9Z1pdxHXDKCbh1CR3D/2rywB9Tx0MPRg=", + "owner": "nixos", + "repo": "nixpkgs", + "rev": "c043004d1c6985732bcc1cbc5a9c9aecbbb4e0f0", + "type": "github" + }, + "original": { + "owner": "nixos", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_11": { "locked": { "lastModified": 1772963539, "narHash": "sha256-9jVDGZnvCckTGdYT53d/EfznygLskyLQXYwJLKMPsZs=", @@ -523,42 +593,26 @@ "type": "github" } }, - "nixpkgs_11": { + "nixpkgs_12": { "locked": { - "lastModified": 1786106723, - "narHash": "sha256-CgKDSHL6rqAAQkkvg1xaZDQXb77+4XW73iGcUMJ+2w0=", - "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", + "lastModified": 1788614874, + "narHash": "sha256-PRK1fSEiAcO29DkUoOlsVLGYRK3h1YKVr+qQJB0VcYQ=", + "rev": "c043004d1c6985732bcc1cbc5a9c9aecbbb4e0f0", "type": "tarball", - "url": "https://releases.nixos.org/nixos/unstable/nixos-26.11pre1049422.f13ff45afd1b/nixexprs.tar.xz" + "url": "https://releases.nixos.org/nixos/unstable/nixos-26.11pre1068089.c043004d1c69/nixexprs.tar.xz" }, "original": { "type": "tarball", "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz" } }, - "nixpkgs_12": { - "locked": { - "lastModified": 1772542754, - "narHash": "sha256-WGV2hy+VIeQsYXpsLjdr4GvHv5eECMISX1zKLTedhdg=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "8c809a146a140c5c8806f13399592dbcb1bb5dc4", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "nixpkgs_13": { "locked": { - "lastModified": 1778869304, - "narHash": "sha256-30sZNZoA1cqF5JNO9fVX+wgiQYjB7HJqqJ4ztCDeBZE=", + "lastModified": 1787900134, + "narHash": "sha256-VYXO0XZlgj06dxJZRhrD3WoSsvq/c7+/Akyoa22pefw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "d233902339c02a9c334e7e593de68855ad26c4cb", + "rev": "83199d0d373dd3ac2b9a1996b1d0263f76ab7a4c", "type": "github" }, "original": { @@ -601,6 +655,22 @@ } }, "nixpkgs_3": { + "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_4": { "locked": { "lastModified": 1779508470, "narHash": "sha256-Ap9KJX+5xHIn3bPIpfNgT6MEXdAECECwo4/rmlQD74M=", @@ -616,7 +686,7 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_5": { "locked": { "lastModified": 1781577229, "narHash": "sha256-lrp67w8AulE9Ks53n27I45ADSzbOCn4H+CNW1Ck8B+8=", @@ -632,7 +702,7 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_6": { "locked": { "lastModified": 1781577229, "narHash": "sha256-lrp67w8AulE9Ks53n27I45ADSzbOCn4H+CNW1Ck8B+8=", @@ -648,7 +718,7 @@ "type": "github" } }, - "nixpkgs_6": { + "nixpkgs_7": { "locked": { "lastModified": 1785104993, "narHash": "sha256-eKbrvPoAOFutbYMdbB3r5EQVmFxKv24iKqHPPUXA0gM=", @@ -664,13 +734,13 @@ "type": "github" } }, - "nixpkgs_7": { + "nixpkgs_8": { "locked": { - "lastModified": 1785386831, - "narHash": "sha256-sPS3CaXH8RAT3FZRuy4VcV47iuYIWMMfa0GbyJKC3o4=", + "lastModified": 1786711500, + "narHash": "sha256-QvnceIGTBeDvDd9oCn+GvdsnkquliuwbVgpiRH68qaQ=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "21ea275a7c46aef9d4d6ddc962e6d562e9d94183", + "rev": "02e08985a27c65ffd33d434eeb2e660a2e4dc84d", "type": "github" }, "original": { @@ -680,7 +750,7 @@ "type": "github" } }, - "nixpkgs_8": { + "nixpkgs_9": { "locked": { "lastModified": 1783776592, "narHash": "sha256-UgCQzxeWI75XM8G+hPrPh+MKzEPjG3SpAj7dtqSbksA=", @@ -696,25 +766,9 @@ "type": "github" } }, - "nixpkgs_9": { - "locked": { - "lastModified": 1786106723, - "narHash": "sha256-zDSUbpoeo/9ZmD2+wXnzxoo1+uhL8vxc0b8yuYMKYq0=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "f13ff45afd1bb73e640eaa08a7066dbed07e3238", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, "notion-desktop": { "inputs": { - "flake-utils": "flake-utils_2", + "flake-utils": "flake-utils_3", "nixpkgs": [ "nixpkgs" ] @@ -733,10 +787,32 @@ "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" + "flake-utils": "flake-utils_4", + "nixpkgs": "nixpkgs_11" }, "locked": { "lastModified": 1773918161, @@ -797,6 +873,7 @@ "catppuccin": "catppuccin", "cfwithoutincident": "cfwithoutincident", "codex-app": "codex-app", + "concord": "concord", "darwin": "darwin", "home-manager": "home-manager", "imnyang": "imnyang", @@ -807,7 +884,7 @@ "nix-homebrew": "nix-homebrew", "nixcord": "nixcord", "nixos-wsl": "nixos-wsl", - "nixpkgs": "nixpkgs_9", + "nixpkgs": "nixpkgs_10", "nixpkgs-2511": "nixpkgs-2511", "notion-desktop": "notion-desktop", "paring": "paring", @@ -821,6 +898,27 @@ "vscode-nigo": "vscode-nigo" } }, + "rust-overlay": { + "inputs": { + "nixpkgs": [ + "concord", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1778210054, + "narHash": "sha256-iYINsX0BVDxTXd0z4FzDpBYHZ9fWUtwjG9cKSXwe9Tg=", + "owner": "oxalica", + "repo": "rust-overlay", + "rev": "bc83d66023d19fb301ee98772643b24b6129ef48", + "type": "github" + }, + "original": { + "owner": "oxalica", + "repo": "rust-overlay", + "type": "github" + } + }, "rustfs": { "inputs": { "nixpkgs": [ @@ -828,11 +926,11 @@ ] }, "locked": { - "lastModified": 1785926649, - "narHash": "sha256-lHkFMwuD8uRu6FRT87DpOx/J5inqXncKyDo/+SuCkjM=", + "lastModified": 1786633267, + "narHash": "sha256-2xMfAqVcFGUv5KSTPyPQo8lYFEhpRz79U1SeZDyDQ0g=", "owner": "rustfs", "repo": "rustfs-flake", - "rev": "e71e6becd51bbf537c6a2574245e4c56df800b5a", + "rev": "0eeef21f2410ba0e47fbbf44b3ba70fc8f19d468", "type": "github" }, "original": { @@ -848,11 +946,11 @@ ] }, "locked": { - "lastModified": 1783174389, - "narHash": "sha256-aCWC8ngycU7OdJrU2+Je3qf+1a2ykuBvpPhZT/9tXMc=", + "lastModified": 1788337237, + "narHash": "sha256-gkSH8VUtCo6hnysNmb9DbTuDepH2t5pv+QWjP75xKAk=", "owner": "Mic92", "repo": "sops-nix", - "rev": "f1406619a3884cd5c47992a70b8b35c9c0fcb4c9", + "rev": "fbf759290e0cb0a98dfc813a4eb7d53ad1dacb57", "type": "github" }, "original": { @@ -863,7 +961,10 @@ }, "soulver-cpp": { "inputs": { - "nixpkgs": "nixpkgs_13", + "nixpkgs": [ + "vicinae", + "nixpkgs" + ], "nixpkgs-libxml2": "nixpkgs-libxml2" }, "locked": { @@ -882,15 +983,15 @@ }, "spicetify-nix": { "inputs": { - "nixpkgs": "nixpkgs_11", - "systems": "systems_4" + "nixpkgs": "nixpkgs_12", + "systems": "systems_5" }, "locked": { - "lastModified": 1786252193, - "narHash": "sha256-a9SbkJWloPso00G4zIUkerd9n2qRyDYoDPeUc4O3ME8=", + "lastModified": 1788683578, + "narHash": "sha256-bERpuakmPAC2b36zgXy6OXh+SkZUjbaV+vV2sPmm6p8=", "owner": "Gerg-L", "repo": "spicetify-nix", - "rev": "a87616995724d27079b495ca07318512af799449", + "rev": "a4ef43fb13e3615f36e5a0935aabe8cc29363dc9", "type": "github" }, "original": { @@ -989,6 +1090,21 @@ "type": "github" } }, + "systems_7": { + "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": [ @@ -997,11 +1113,11 @@ ] }, "locked": { - "lastModified": 1785360170, - "narHash": "sha256-XE1lKgQ3eIO3E7zWryqcRsax+mYXod/5RHBn4YaR9YE=", + "lastModified": 1785945821, + "narHash": "sha256-NLSyTCW4K4ofhNBllt3omPasm6QpralXH1DBZOc91Dw=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "d1187f8bc71fb8aab02395869ec3f5c1920f75c0", + "rev": "ae7910970dddc408fe6ab1c8e4b277bb21d72dc0", "type": "github" }, "original": { @@ -1012,16 +1128,17 @@ }, "vicinae": { "inputs": { - "nixpkgs": "nixpkgs_12", + "nixpkgs": "nixpkgs_13", + "numen": "numen", "soulver-cpp": "soulver-cpp", - "systems": "systems_5" + "systems": "systems_6" }, "locked": { - "lastModified": 1786280793, - "narHash": "sha256-xBPI2HPOguC0MVKnnHFwlFODqKExRwBab0FcS+QpB6o=", + "lastModified": 1788743552, + "narHash": "sha256-4uheeCsFqghWhuzRWGlUYBSABcEReEFPlYbmomexd28=", "owner": "vicinaehq", "repo": "vicinae", - "rev": "8a175077af3af69cb569cc2d54a8cf2b46f81976", + "rev": "771fb78b4a348b2a0a6c842987525027add8d963", "type": "github" }, "original": { @@ -1036,15 +1153,15 @@ "nixpkgs": [ "nixpkgs" ], - "systems": "systems_6", + "systems": "systems_7", "vicinae": "vicinae_2" }, "locked": { - "lastModified": 1785867893, - "narHash": "sha256-uspI0fHn4BsbJcZ2Fv0wmoq+MErfT5xIFSrn+iuBKe0=", + "lastModified": 1788550304, + "narHash": "sha256-EeOUdF/XWkoaGGHM1Eg7aIWzZ8QTLX3fc5cmYzrePkU=", "owner": "vicinaehq", "repo": "extensions", - "rev": "22bc47b8ad1907a8aaeec502696a8202fac64a00", + "rev": "6681a95e13b01c752e7cf4cb448162a3647b2eb8", "type": "github" }, "original": { @@ -1104,4 +1221,3 @@ "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 ];