diff --git a/config/services/akkoma/default.nix b/config/services/akkoma/default.nix index 8b86759..51aef2d 100644 --- a/config/services/akkoma/default.nix +++ b/config/services/akkoma/default.nix @@ -22,49 +22,71 @@ }; in with pkgs; [ exiftool ffmpeg-headless imagemagick ]; - extraStatic."emoji/blobs.gg" = pkgs.akkoma-emoji.blobs_gg; + extraStatic = let + actualFetchzip = + { + url, + hash + }: pkgs.runCommandNoCC "${lib.last (lib.splitString "/" url)}" { + src = pkgs.fetchurl { + inherit url hash; + }; + } '' + ${lib.getExe pkgs.unzip} $src -d $out + for f in $out/*_256.png; do + mv -- "$f" "''${f/_256}" + done + ''; + in { + "emoji/blobs.gg" = pkgs.akkoma-emoji.blobs_gg; - extraStatic."emoji/custom" = pkgs.runCommandNoCC "florp" { - src = inputs.florp-branding.packages.${config.nixpkgs.hostPlatform.system}.favicon; - } '' - mkdir $out - cp $src $out/florp.png - ''; + "emoji/custom" = pkgs.runCommandNoCC "florp" { + src = inputs.florp-branding.packages.${config.nixpkgs.hostPlatform.system}.favicon; + } '' + mkdir $out + cp $src $out/florp.png + ''; - extraStatic."emoji/neodog" = pkgs.fetchzip { - url = "https://git.gay/moonrabbits/neodog/raw/commit/6f9eb283b6dcbe507fde1110abab267cb2d73b70/neodog.zip"; - hash = "sha256-BO12sKTffQvReQ+7ksLkaC2XSEY2WQ0GQKgBE07pHyg="; + "emoji/neodog" = actualFetchzip { + url = "https://git.gay/moonrabbits/neodog/raw/commit/6f9eb283b6dcbe507fde1110abab267cb2d73b70/neodog.zip"; + hash = "sha256-ISyzpRyjHf+4jKrOtHHqH0Qn7CQu5RQSLH/HL/YSdT4="; + }; + + "emoji/neocat" = actualFetchzip { + url = "https://volpeon.ink/emojis/neocat/neocat.zip"; + hash = "sha256-DZDuk0Djlax504flNWdpqAw+ROLOOVGj0ZvJLyouo7A="; + }; + + "emoji/neofox" = actualFetchzip { + url = "https://volpeon.ink/emojis/neofox/neofox.zip"; + hash = "sha256-rZUPA7ZvrO8q/lx8XK3IxJ1URLgq0PSh752eWzG+uos="; + }; + + "emoji/blobhaj" = actualFetchzip { + url = "https://web.archive.org/web/20240829143703/https://heatherhorns.com/wp-content/uploads/2022/12/Blobhaj-12-13-2022.zip"; + hash = "sha256-5l8ozTivCSOomPq+zDD4FWhK5mA/H2qkGs8beuDnp9s="; + }; + + "static/styles.json" = pkgs.writeText "styles.json" (builtins.toJSON ( + builtins.fromJSON (builtins.readFile "${pkgs.akkoma-fe-domi}/static/styles.json") // { + elly-mod = "/static/themes/elly-mod.json"; + } + )); + + "static/themes/elly-mod.json" = pkgs.writeText "elly-mod.json" (builtins.readFile ./elly-mod.json); + + "static/custom.css" = pkgs.writeText "custom.css" '' + .tos-content img, .terms-of-service img { + max-width: 100%; + } + ''; + + "static/terms-of-service.html" = inputs.florp-about.packages.${pkgs.system}.default; + "images/sylvia-ritter-15012323.avif" = inputs.florp-branding.packages.${pkgs.system}.wallpaper; + "images/florp_banner.avif" = inputs.florp-branding.packages.${pkgs.system}.banner; + "favicon.png" = inputs.florp-branding.packages.${pkgs.system}.favicon; }; - extraStatic."emoji/neocat" = pkgs.fetchzip { - url = "https://volpeon.ink/emojis/neocat/neocat.zip"; - hash = "sha256-FLtaIqBZqZGC51NX6HiwEzWBlx1GpstZcgpnMDFTuQk="; - }; - - extraStatic."emoji/neofox" = pkgs.fetchzip { - url = "https://volpeon.ink/emojis/neofox/neofox.zip"; - hash = "sha256-zHbiRiEOwGlmm9TRvL25ngCK04rJHzYsLxz2PUjf3GA="; - }; - - extraStatic."static/styles.json" = pkgs.writeText "styles.json" (builtins.toJSON ( - builtins.fromJSON (builtins.readFile "${pkgs.akkoma-fe-domi}/static/styles.json") // { - elly-mod = "/static/themes/elly-mod.json"; - } - )); - - extraStatic."static/themes/elly-mod.json" = pkgs.writeText "elly-mod.json" (builtins.readFile ./elly-mod.json); - - extraStatic."static/custom.css" = pkgs.writeText "custom.css" '' - .tos-content img, .terms-of-service img { - max-width: 100%; - } - ''; - - extraStatic."static/terms-of-service.html" = inputs.florp-about.packages.${pkgs.system}.default; - extraStatic."images/sylvia-ritter-15012323.avif" = inputs.florp-branding.packages.${pkgs.system}.wallpaper; - extraStatic."images/florp_banner.avif" = inputs.florp-branding.packages.${pkgs.system}.banner; - extraStatic."favicon.png" = inputs.florp-branding.packages.${pkgs.system}.favicon; - frontends = { primary = { package = pkgs.akkoma-fe-domi; @@ -134,17 +156,18 @@ }; ":emoji".groups = { - "blobs.gg" = "/emoji/blobs.gg/*.png"; - "neodog" = "/emoji/neodog/*.png"; - "neocat" = [ - "/emoji/neocat/*_256.png" + blobs = "/emoji/blobs.gg/*.png"; + blobhaj = "/emoji/blobhaj/512w/*.png"; + neodog = "/emoji/neodog/*.png"; + neocat = [ + "/emoji/neocat/*.png" "/emoji/neodog/additional_neocat/*.png" ]; - "neofox" = [ - "/emoji/neofox/*_256.png" + neofox = [ + "/emoji/neofox/*.png" "/emoji/neodog/additional_neofox/*.png" ]; - custom = "/emoji/custom/*.png"; + Custom = "/emoji/custom/*.png"; }; "Pleroma.Captcha".method = mkRaw "Pleroma.Captcha.Kocaptcha"; diff --git a/config/services/hydra/nix-config.nix b/config/services/hydra/nix-config.nix index 9933888..88c2de3 100644 --- a/config/services/hydra/nix-config.nix +++ b/config/services/hydra/nix-config.nix @@ -28,8 +28,8 @@ supportedFeatures = base ++ [ "gccarch-rv64imac" "gccarch-rv64imacfd" "gccarch-rv64gc" ]; sshKey = config.sops.secrets."services/hydra/id_ed25519_hydra".path; } - ] ++ lib.forEach (lib.genList (i: i + 1) 8) (num: { - hostName = "build-worker-0${toString num}"; + ] ++ lib.forEach (lib.range 0 10) (num: { + hostName = "build-worker-${lib.fixedWidthNumber 2 num}"; sshUser = "root"; maxJobs = 2; speedFactor = 20; @@ -56,6 +56,7 @@ "schrodinger.kyouma.net".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKo7vZ6lS1wx76YsbAdhOsGcc20YMAW52ep8SZ/FCHDp"; "lab.nyantec.com".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIUePtVPtBK+CYosufbaGiMT4EVanti4V5t2Wg0g/Fy4"; "localhost".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPNVavo3YHVsrYwXRVISu7kDoknn+5inFGySn4azlB8P"; + "[build-worker-kyoumanet.fly.dev]:2200".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJUGzlilikAUfUGKXVCoTeDvPRoWUgDDkNU5WaRUBzls"; "[build-worker-kyoumanet.fly.dev]:2201".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDL2M97UBHg9aUfjDUxzmzg1r0ga0m3/stummBVwuEAB"; "[build-worker-kyoumanet.fly.dev]:2202".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOTwVKL0P0chPM2Gz23rbT94844+w1CGJdCaZdzfjThz"; "[build-worker-kyoumanet.fly.dev]:2203".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAjy2eZGJQeAYy0+fLgW9jiS0jVY2LInY0NDMnzCvvKp"; @@ -64,15 +65,17 @@ "[build-worker-kyoumanet.fly.dev]:2206".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGf0kxGgwOG9KhUhvxxTSiQC5YikrzZXKDgSpBw33qN4"; "[build-worker-kyoumanet.fly.dev]:2207".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL9z95a6Fn/dB+iNigEYpuJdBnBwCkIZYaKHcFbGP+RY"; "[build-worker-kyoumanet.fly.dev]:2208".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAk+FNMhTfAVqk3MfLp4QiG/i5ti53DlpnC0q+sOvU9O"; + "[build-worker-kyoumanet.fly-cdg.dev]:2209".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJGlQD/3fLn/Kyb7v0RIycHRcArGi75jURj803EMpW0S"; + "[build-worker-kyoumanet.fly-cdg.dev]:2210".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMQm1FSGBGdCR5f8MvBvdKM0M4yIQVnH1po7hHO5T1qz"; }; extraConfig = '' Host machine-0008.cloud-v.co Hostname machine.cloud-v.co Port 20008 - '' + lib.concatLines (lib.genList (i: '' - Host build-worker-0${toString (i + 1)} - Hostname build-worker-kyoumanet.fly.dev - Port 220${toString (i + 1)} - '') 8); + '' + lib.concatLines (lib.forEach (lib.range 0 10) (num: '' + Host build-worker-${lib.fixedWidthNumber 2 num} + Hostname build-worker-kyoumanet${lib.optionalString (num > 8) "-cdg"}.fly.dev + Port 22${lib.fixedWidthNumber 2 num} + '')); }; } diff --git a/config/users/emily/default.nix b/config/users/emily/default.nix index de2181e..aace445 100644 --- a/config/users/emily/default.nix +++ b/config/users/emily/default.nix @@ -37,7 +37,9 @@ pavucontrol signal-desktop element-desktop - inputs.firefox.packages.${pkgs.system}.firefox + firefox + # currently broken + #inputs.firefox.packages.${pkgs.system}.firefox nixfmt-classic wl-clipboard diff --git a/flake.lock b/flake.lock index 24fbdb0..7576413 100644 --- a/flake.lock +++ b/flake.lock @@ -156,11 +156,11 @@ ] }, "locked": { - "lastModified": 1732030699, - "narHash": "sha256-SBosboLvLqDv+7mNgRTIYDQbHE61rDDkXTJWiRX3PPo=", + "lastModified": 1732109232, + "narHash": "sha256-iYh6h8yueU8IyOfNclbiBG2+fBFcjjUfXm90ZBzk0c0=", "owner": "nix-community", "repo": "disko", - "rev": "da52cf40206d7d1a419d07640eb47b2fb9ac2c21", + "rev": "a0c384e0a3b8bcaed30a6bcf3783f8a7c8b35be4", "type": "github" }, "original": { @@ -222,10 +222,10 @@ ] }, "locked": { - "lastModified": 1732060369, - "narHash": "sha256-lEZxnDBUWGjav67uHSApQ/2VZ5vs8ltBItJskQkrkbU=", + "lastModified": 1732147675, + "narHash": "sha256-p60MQ1fQdTw8xl4/wwm2mezX/s/60IwiCMKtfa/jUj0=", "ref": "refs/heads/main", - "rev": "58dbdefd018e3ee9a3bba34acafe404b84a23a4e", + "rev": "655d9bc3782de41349481256f9d8d869a4ac9924", "revCount": 4, "type": "git", "url": "https://woof.rip/mikael/firefox.git" @@ -531,11 +531,11 @@ ] }, "locked": { - "lastModified": 1731611636, - "narHash": "sha256-Do8vpR8JTpkPr9vxf1aRzhb4/cUBjg5twPyGDyezxJw=", + "lastModified": 1732093316, + "narHash": "sha256-9bdH/zkglIkxLFt6Rh4NQmLH8LWVr9QvNDjFjdiR/F8=", "ref": "refs/heads/main", - "rev": "32e1061cb2ef3cd0eab0bd99f062a2776a73d459", - "revCount": 7, + "rev": "5ea3b2406aa4be3641ce0d94c2ff3b7d8b74a40d", + "revCount": 8, "type": "git", "url": "https://woof.rip/florp/moderation.git" }, @@ -577,11 +577,11 @@ ] }, "locked": { - "lastModified": 1731363552, - "narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=", + "lastModified": 1732021966, + "narHash": "sha256-mnTbjpdqF0luOkou8ZFi2asa1N3AA2CchR/RqCNmsGE=", "owner": "cachix", "repo": "git-hooks.nix", - "rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0", + "rev": "3308484d1a443fc5bc92012435d79e80458fe43c", "type": "github" }, "original": { @@ -727,11 +727,11 @@ "lix": { "flake": false, "locked": { - "lastModified": 1731992627, - "narHash": "sha256-OjrXEVD8LtZB5X7LtPCdNx4n5iZOQ2nJmpDlM/foEkI=", - "rev": "f116608a20430b8484814300cdf22eebeb75a59f", + "lastModified": 1732056932, + "narHash": "sha256-3ubtSu0D+BUV5FKmBU7kTEXlI/okp/j1xC/ODC7LgTA=", + "rev": "b0d7a816135de1cd551b8a54f5497148bf59d81d", "type": "tarball", - "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/f116608a20430b8484814300cdf22eebeb75a59f.tar.gz?rev=f116608a20430b8484814300cdf22eebeb75a59f" + "url": "https://git.lix.systems/api/v1/repos/lix-project/lix/archive/b0d7a816135de1cd551b8a54f5497148bf59d81d.tar.gz?rev=b0d7a816135de1cd551b8a54f5497148bf59d81d" }, "original": { "type": "tarball", @@ -830,10 +830,10 @@ ] }, "locked": { - "lastModified": 1732060359, - "narHash": "sha256-VdDkjwuaaSo/FLchb6nta4Q+2uA5YhcQQyJNK0x38pc=", + "lastModified": 1732147659, + "narHash": "sha256-Ve3i5l5n3UN4bknorr+z5zCYTORXMh1ClUY73e1PQaw=", "ref": "refs/heads/main", - "rev": "850bb54f352a8a22d8abc8c9d55025e9828ee299", + "rev": "46e37147704799a97a86d9bcd6014ab83f32a145", "revCount": 1, "type": "git", "url": "https://woof.rip/mikael/neoidiosyn.git" @@ -851,11 +851,11 @@ ] }, "locked": { - "lastModified": 1731885500, - "narHash": "sha256-ZrztYfSOS33J+ewq5alBOSdnIyZ0/sr1iy7FyBe9zIg=", + "lastModified": 1732016537, + "narHash": "sha256-XwXUK+meYnlhdQz2TVE4Wv+tsx1CkdGbDPt1tRzCNH4=", "owner": "lnl7", "repo": "nix-darwin", - "rev": "c60b5c924c6188a0b3ca2e139ead3d0f92ae5db5", + "rev": "61cee20168a3ebb71a9efd70a55adebaadfbe4d4", "type": "github" }, "original": { @@ -1068,11 +1068,11 @@ }, "nixpkgs_4": { "locked": { - "lastModified": 1731676054, - "narHash": "sha256-OZiZ3m8SCMfh3B6bfGC/Bm4x3qc1m2SVEAlkV6iY7Yg=", + "lastModified": 1732014248, + "narHash": "sha256-y/MEyuJ5oBWrWAic/14LaIr/u5E0wRVzyYsouYY3W6w=", "owner": "nixos", "repo": "nixpkgs", - "rev": "5e4fbfb6b3de1aa2872b76d49fafc942626e2add", + "rev": "23e89b7da85c3640bbc2173fe04f4bd114342367", "type": "github" }, "original": { @@ -1099,11 +1099,11 @@ "treefmt-nix": "treefmt-nix_2" }, "locked": { - "lastModified": 1732035679, - "narHash": "sha256-J03v1XnxvsrrvHmzKVBZiwik8678IXfkH1/ZR954ujk=", + "lastModified": 1732143099, + "narHash": "sha256-lh2Qi8gd1SwJVGo7gJjoFvS/djS5Nimaw25j792PJjM=", "owner": "nix-community", "repo": "nixvim", - "rev": "929bb0cd1cffb9917ab14be9cdb3f27efd6f505f", + "rev": "2f71c4250bef7a52fe21bd00d1e58c119f62008c", "type": "github" }, "original": { @@ -1384,11 +1384,11 @@ ] }, "locked": { - "lastModified": 1731944360, - "narHash": "sha256-sJxPh+V0vUkBhlA58ok/y0o96AtfqiEF0O8qsdolI6o=", + "lastModified": 1732111664, + "narHash": "sha256-XWHuPWcP59QnHEewdZJXBX1TA2lAP78Vz4daG6tfIr4=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "579b9a2fd0020cd9cd81a4ef4eab2dca4d20c94c", + "rev": "62003fdad7a5ab7b6af3ea9bd7290e4c220277d0", "type": "github" }, "original": { diff --git a/modules/graphical/hyprland.nix b/modules/graphical/hyprland.nix index fbc1dbf..39e676e 100644 --- a/modules/graphical/hyprland.nix +++ b/modules/graphical/hyprland.nix @@ -8,7 +8,9 @@ playerctl = "${pkgs.playerctl}/bin/playerctl"; notifysend = "${pkgs.libnotify}/bin/notify-send"; dolphin = "${pkgs.libsForQt5.dolphin}/bin/dolphin"; - firefox = "${inputs.firefox.packages.${pkgs.system}.firefox}/bin/firefox"; + firefox = "${pkgs.firefox}/bin/firefox"; + # currently broken + #firefox = "${inputs.firefox.packages.${pkgs.system}.firefox}/bin/firefox"; brightnessctl = "${pkgs.brightnessctl}/bin/brightnessctl"; screenshot = "~/.local/bin/hypr/screenshot.sh"; rofi = "${pkgs.rofi-wayland}/bin/rofi"; diff --git a/fly.toml b/pkgs/build-worker-oci/ams/fly.toml similarity index 86% rename from fly.toml rename to pkgs/build-worker-oci/ams/fly.toml index b796763..635a20f 100644 --- a/fly.toml +++ b/pkgs/build-worker-oci/ams/fly.toml @@ -5,6 +5,7 @@ primary_region = 'ams' image = 'registry.fly.io/build-worker-kyoumanet:latest' [processes] + bw-00 = '/entrypoint.sh' bw-01 = '/entrypoint.sh' bw-02 = '/entrypoint.sh' bw-03 = '/entrypoint.sh' @@ -14,28 +15,34 @@ primary_region = 'ams' bw-07 = '/entrypoint.sh' bw-08 = '/entrypoint.sh' +[[mounts]] + source = 'bw00' + destination = '/mnt/data' + initial_size = '256GB' + processes = ['bw-00'] + [[mounts]] source = 'bw01' destination = '/mnt/data' - initial_size = '128GB' + initial_size = '256GB' processes = ['bw-01'] [[mounts]] source = 'bw02' destination = '/mnt/data' - initial_size = '128GB' + initial_size = '256GB' processes = ['bw-02'] [[mounts]] source = 'bw03' destination = '/mnt/data' - initial_size = '128GB' + initial_size = '256GB' processes = ['bw-03'] [[mounts]] source = 'bw04' destination = '/mnt/data' - initial_size = '128GB' + initial_size = '256GB' processes = ['bw-04'] [[mounts]] @@ -62,6 +69,15 @@ primary_region = 'ams' initial_size = '256GB' processes = ['bw-08'] +[[services]] + protocol = 'tcp' + internal_port = 2222 + auto_stop_machines = 'off' + processes = ['bw-00'] + + [[services.ports]] + port = 2200 + [[services]] protocol = 'tcp' internal_port = 2222 diff --git a/pkgs/build-worker-oci/cdg/fly.toml b/pkgs/build-worker-oci/cdg/fly.toml new file mode 100644 index 0000000..47a9062 --- /dev/null +++ b/pkgs/build-worker-oci/cdg/fly.toml @@ -0,0 +1,67 @@ +# fly.toml app configuration file generated for build-worker-kyoumanet-cdg on 2024-11-21T00:31:54+01:00 +# +# See https://fly.io/docs/reference/configuration/ for information about how to use this file. +# + +app = 'build-worker-kyoumanet-cdg' +primary_region = 'cdg' + +[build] + image = 'registry.fly.io/build-worker-kyoumanet:latest' + +[processes] + bw-09 = '/entrypoint.sh' + bw-10 = '/entrypoint.sh' + bw-11 = '/entrypoint.sh' + +[[mounts]] + source = 'bw09' + destination = '/mnt/data' + initial_size = '256GB' + processes = ['bw-09'] + +[[mounts]] + source = 'bw10' + destination = '/mnt/data' + initial_size = '256GB' + processes = ['bw-10'] + +[[mounts]] + source = 'bw11' + destination = '/mnt/data' + initial_size = '256GB' + processes = ['bw-11'] + +[[services]] + protocol = 'tcp' + internal_port = 2222 + auto_stop_machines = 'off' + processes = ['bw-09'] + + [[services.ports]] + port = 2209 + +[[services]] + protocol = 'tcp' + internal_port = 2222 + auto_stop_machines = 'off' + processes = ['bw-10'] + + [[services.ports]] + port = 2210 + +[[services]] + protocol = 'tcp' + internal_port = 2222 + auto_stop_machines = 'off' + processes = ['bw-11'] + + [[services.ports]] + port = 2211 + +[[restart]] + policy = 'never' + +[[vm]] + size = 'performance-16x' + memory = '96GB'