1
0
Fork 0
forked from emily/nixfiles

Compare commits

..

8 commits
main ... main

9 changed files with 209 additions and 36 deletions

View file

@ -1,4 +1,4 @@
{ ... }: { { inputs, ... }: {
imports = [ imports = [
../../common ../../common
../../users/lucy ../../users/lucy
@ -8,6 +8,7 @@
../../services/arrs ../../services/arrs
../../services/jellyfin.nix ../../services/jellyfin.nix
../../services/nginx.nix ../../services/nginx.nix
inputs.oth.nixosModules.default
]; ];
networking.hostName = "crime"; networking.hostName = "crime";
systemd.network.networks."98-eth-default" = { systemd.network.networks."98-eth-default" = {
@ -24,6 +25,7 @@
"/var/lib/radarr" "/var/lib/radarr"
"/var/lib/sonarr" "/var/lib/sonarr"
"/var/lib/private/prowlarr" "/var/lib/private/prowlarr"
"/home"
]; ];
}; };
} }

View file

@ -22,33 +22,70 @@
}; };
in with pkgs; [ exiftool ffmpeg-headless imagemagick ]; 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/florp" = pkgs.runCommandNoCC "florp" { "emoji/custom" = pkgs.runCommandNoCC "florp" {
src = inputs.florp-branding.packages.${config.nixpkgs.hostPlatform.system}.favicon; src = inputs.florp-branding.packages.${config.nixpkgs.hostPlatform.system}.favicon;
} '' } ''
mkdir $out mkdir $out
cp $src $out/florp.png cp $src $out/florp.png
''; '';
extraStatic."static/styles.json" = pkgs.writeText "styles.json" (builtins.toJSON ( "emoji/neodog" = actualFetchzip {
builtins.fromJSON (builtins.readFile "${pkgs.akkoma-fe-domi}/static/styles.json") // { url = "https://git.gay/moonrabbits/neodog/raw/commit/6f9eb283b6dcbe507fde1110abab267cb2d73b70/neodog.zip";
elly-mod = "/static/themes/elly-mod.json"; hash = "sha256-ISyzpRyjHf+4jKrOtHHqH0Qn7CQu5RQSLH/HL/YSdT4=";
} };
));
extraStatic."static/themes/elly-mod.json" = pkgs.writeText "elly-mod.json" (builtins.readFile ./elly-mod.json); "emoji/neocat" = actualFetchzip {
url = "https://volpeon.ink/emojis/neocat/neocat.zip";
hash = "sha256-DZDuk0Djlax504flNWdpqAw+ROLOOVGj0ZvJLyouo7A=";
};
extraStatic."static/custom.css" = pkgs.writeText "custom.css" '' "emoji/neofox" = actualFetchzip {
.tos-content img, .terms-of-service img { url = "https://volpeon.ink/emojis/neofox/neofox.zip";
max-width: 100%; hash = "sha256-rZUPA7ZvrO8q/lx8XK3IxJ1URLgq0PSh752eWzG+uos=";
} };
'';
extraStatic."static/terms-of-service.html" = inputs.florp-about.packages.${pkgs.system}.default; "emoji/blobhaj" = actualFetchzip {
extraStatic."images/sylvia-ritter-15012323.avif" = inputs.florp-branding.packages.${pkgs.system}.wallpaper; url = "https://web.archive.org/web/20240829143703/https://heatherhorns.com/wp-content/uploads/2022/12/Blobhaj-12-13-2022.zip";
extraStatic."images/florp_banner.avif" = inputs.florp-branding.packages.${pkgs.system}.banner; hash = "sha256-5l8ozTivCSOomPq+zDD4FWhK5mA/H2qkGs8beuDnp9s=";
extraStatic."favicon.png" = inputs.florp-branding.packages.${pkgs.system}.favicon; };
"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;
};
frontends = { frontends = {
primary = { primary = {
@ -118,6 +155,21 @@
]; ];
}; };
":emoji".groups = {
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/*.png"
"/emoji/neodog/additional_neofox/*.png"
];
Custom = "/emoji/custom/*.png";
};
"Pleroma.Captcha".method = mkRaw "Pleroma.Captcha.Kocaptcha"; "Pleroma.Captcha".method = mkRaw "Pleroma.Captcha.Kocaptcha";
"Pleroma.Web.Endpoint".url.host = "florp.social"; "Pleroma.Web.Endpoint".url.host = "florp.social";

View file

@ -28,8 +28,8 @@
supportedFeatures = base ++ [ "gccarch-rv64imac" "gccarch-rv64imacfd" "gccarch-rv64gc" ]; supportedFeatures = base ++ [ "gccarch-rv64imac" "gccarch-rv64imacfd" "gccarch-rv64gc" ];
sshKey = config.sops.secrets."services/hydra/id_ed25519_hydra".path; sshKey = config.sops.secrets."services/hydra/id_ed25519_hydra".path;
} }
] ++ lib.forEach (lib.genList (i: i + 1) 8) (num: { ] ++ lib.forEach (lib.range 0 10) (num: {
hostName = "build-worker-0${toString num}"; hostName = "build-worker-${lib.fixedWidthNumber 2 num}";
sshUser = "root"; sshUser = "root";
maxJobs = 2; maxJobs = 2;
speedFactor = 20; speedFactor = 20;
@ -56,6 +56,7 @@
"schrodinger.kyouma.net".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKo7vZ6lS1wx76YsbAdhOsGcc20YMAW52ep8SZ/FCHDp"; "schrodinger.kyouma.net".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKo7vZ6lS1wx76YsbAdhOsGcc20YMAW52ep8SZ/FCHDp";
"lab.nyantec.com".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIUePtVPtBK+CYosufbaGiMT4EVanti4V5t2Wg0g/Fy4"; "lab.nyantec.com".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIUePtVPtBK+CYosufbaGiMT4EVanti4V5t2Wg0g/Fy4";
"localhost".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPNVavo3YHVsrYwXRVISu7kDoknn+5inFGySn4azlB8P"; "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]:2201".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDL2M97UBHg9aUfjDUxzmzg1r0ga0m3/stummBVwuEAB";
"[build-worker-kyoumanet.fly.dev]:2202".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOTwVKL0P0chPM2Gz23rbT94844+w1CGJdCaZdzfjThz"; "[build-worker-kyoumanet.fly.dev]:2202".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOTwVKL0P0chPM2Gz23rbT94844+w1CGJdCaZdzfjThz";
"[build-worker-kyoumanet.fly.dev]:2203".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAjy2eZGJQeAYy0+fLgW9jiS0jVY2LInY0NDMnzCvvKp"; "[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]:2206".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGf0kxGgwOG9KhUhvxxTSiQC5YikrzZXKDgSpBw33qN4";
"[build-worker-kyoumanet.fly.dev]:2207".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL9z95a6Fn/dB+iNigEYpuJdBnBwCkIZYaKHcFbGP+RY"; "[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.dev]:2208".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAk+FNMhTfAVqk3MfLp4QiG/i5ti53DlpnC0q+sOvU9O";
"[build-worker-kyoumanet-cdg.fly.dev]:2209".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJGlQD/3fLn/Kyb7v0RIycHRcArGi75jURj803EMpW0S";
"[build-worker-kyoumanet-cdg.fly.dev]:2210".publicKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMQm1FSGBGdCR5f8MvBvdKM0M4yIQVnH1po7hHO5T1qz";
}; };
extraConfig = '' extraConfig = ''
Host machine-0008.cloud-v.co Host machine-0008.cloud-v.co
Hostname machine.cloud-v.co Hostname machine.cloud-v.co
Port 20008 Port 20008
'' + lib.concatLines (lib.genList (i: '' '' + lib.concatLines (lib.forEach (lib.range 0 10) (num: ''
Host build-worker-0${toString (i + 1)} Host build-worker-${lib.fixedWidthNumber 2 num}
Hostname build-worker-kyoumanet.fly.dev Hostname build-worker-kyoumanet${lib.optionalString (num > 8) "-cdg"}.fly.dev
Port 220${toString (i + 1)} Port 22${lib.fixedWidthNumber 2 num}
'') 8); ''));
}; };
} }

View file

@ -37,7 +37,9 @@
pavucontrol pavucontrol
signal-desktop signal-desktop
element-desktop element-desktop
inputs.firefox.packages.${pkgs.system}.firefox firefox
# currently broken
#inputs.firefox.packages.${pkgs.system}.firefox
nixfmt-classic nixfmt-classic
wl-clipboard wl-clipboard

View file

@ -1151,6 +1151,29 @@
"type": "github" "type": "github"
} }
}, },
"oth": {
"inputs": {
"flake-utils": [
"flake-utils"
],
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1732215904,
"narHash": "sha256-bXXoyQcVMULYOj1KlzbquUyMTyByzmLatIgm0ra/7sk=",
"ref": "refs/heads/main",
"rev": "847cc8493f7f44bd5ada0283d6b96457f4ee5a9b",
"revCount": 1,
"type": "git",
"url": "ssh://forgejo@woof.rip/emily/oth.git"
},
"original": {
"type": "git",
"url": "ssh://forgejo@woof.rip/emily/oth.git"
}
},
"pre-commit-hooks": { "pre-commit-hooks": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -1187,6 +1210,7 @@
"nixos-needsreboot": "nixos-needsreboot", "nixos-needsreboot": "nixos-needsreboot",
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_4",
"nixvim": "nixvim", "nixvim": "nixvim",
"oth": "oth",
"sops-nix": "sops-nix", "sops-nix": "sops-nix",
"stylix": "stylix" "stylix": "stylix"
} }

View file

@ -64,6 +64,11 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
inputs.home-manager.follows = "home-manager"; inputs.home-manager.follows = "home-manager";
}; };
oth = {
url = "git+ssh://forgejo@woof.rip/emily/oth.git";
inputs.nixpkgs.follows = "nixpkgs";
inputs.flake-utils.follows = "flake-utils";
};
sops-nix = { sops-nix = {
url = "github:Mic92/sops-nix"; url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";

View file

@ -8,7 +8,9 @@
playerctl = "${pkgs.playerctl}/bin/playerctl"; playerctl = "${pkgs.playerctl}/bin/playerctl";
notifysend = "${pkgs.libnotify}/bin/notify-send"; notifysend = "${pkgs.libnotify}/bin/notify-send";
dolphin = "${pkgs.libsForQt5.dolphin}/bin/dolphin"; 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"; brightnessctl = "${pkgs.brightnessctl}/bin/brightnessctl";
screenshot = "~/.local/bin/hypr/screenshot.sh"; screenshot = "~/.local/bin/hypr/screenshot.sh";
rofi = "${pkgs.rofi-wayland}/bin/rofi"; rofi = "${pkgs.rofi-wayland}/bin/rofi";

View file

@ -5,6 +5,7 @@ primary_region = 'ams'
image = 'registry.fly.io/build-worker-kyoumanet:latest' image = 'registry.fly.io/build-worker-kyoumanet:latest'
[processes] [processes]
bw-00 = '/entrypoint.sh'
bw-01 = '/entrypoint.sh' bw-01 = '/entrypoint.sh'
bw-02 = '/entrypoint.sh' bw-02 = '/entrypoint.sh'
bw-03 = '/entrypoint.sh' bw-03 = '/entrypoint.sh'
@ -14,28 +15,34 @@ primary_region = 'ams'
bw-07 = '/entrypoint.sh' bw-07 = '/entrypoint.sh'
bw-08 = '/entrypoint.sh' bw-08 = '/entrypoint.sh'
[[mounts]]
source = 'bw00'
destination = '/mnt/data'
initial_size = '256GB'
processes = ['bw-00']
[[mounts]] [[mounts]]
source = 'bw01' source = 'bw01'
destination = '/mnt/data' destination = '/mnt/data'
initial_size = '128GB' initial_size = '256GB'
processes = ['bw-01'] processes = ['bw-01']
[[mounts]] [[mounts]]
source = 'bw02' source = 'bw02'
destination = '/mnt/data' destination = '/mnt/data'
initial_size = '128GB' initial_size = '256GB'
processes = ['bw-02'] processes = ['bw-02']
[[mounts]] [[mounts]]
source = 'bw03' source = 'bw03'
destination = '/mnt/data' destination = '/mnt/data'
initial_size = '128GB' initial_size = '256GB'
processes = ['bw-03'] processes = ['bw-03']
[[mounts]] [[mounts]]
source = 'bw04' source = 'bw04'
destination = '/mnt/data' destination = '/mnt/data'
initial_size = '128GB' initial_size = '256GB'
processes = ['bw-04'] processes = ['bw-04']
[[mounts]] [[mounts]]
@ -62,6 +69,15 @@ primary_region = 'ams'
initial_size = '256GB' initial_size = '256GB'
processes = ['bw-08'] processes = ['bw-08']
[[services]]
protocol = 'tcp'
internal_port = 2222
auto_stop_machines = 'off'
processes = ['bw-00']
[[services.ports]]
port = 2200
[[services]] [[services]]
protocol = 'tcp' protocol = 'tcp'
internal_port = 2222 internal_port = 2222

View file

@ -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'