updates & move music to its own container

This commit is contained in:
Chaos 2022-12-24 17:16:39 +00:00
parent dff2b84dde
commit 09f47e0cd0
No known key found for this signature in database
16 changed files with 406 additions and 313 deletions

View file

@ -138,11 +138,11 @@
"utils": "utils_4"
},
"locked": {
"lastModified": 1671459164,
"narHash": "sha256-RbkDnvLV7WjbiF4Dpiezrf8kXxwieQXAVtY8ciRQj6Q=",
"lastModified": 1671831633,
"narHash": "sha256-tANQOkJnlqK4M83KvvXFMFrIbR0xkloqXY5ruqzR3kE=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "e7eba9cc46547ae86642ad3c6a9a4fb22c07bc26",
"rev": "d7eee202e597bc7789498a8664082cf0ffedaa8f",
"type": "github"
},
"original": {
@ -175,27 +175,27 @@
},
"nixpkgs-fixed": {
"locked": {
"lastModified": 1670929434,
"narHash": "sha256-n5UBO6XBV4h3TB7FYu2yAuNQMEYOrQyKeODUwKe06ow=",
"lastModified": 1671722432,
"narHash": "sha256-ojcZUekIQeOZkHHzR81st7qxX99dB1Eaaq6PU5MNeKc=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "1710ed1f6f8ceb75cf7d1cf55ee0cc21760e1c7a",
"rev": "652e92b8064949a11bc193b90b74cb727f2a1405",
"type": "github"
},
"original": {
"owner": "nixos",
"repo": "nixpkgs",
"rev": "1710ed1f6f8ceb75cf7d1cf55ee0cc21760e1c7a",
"rev": "652e92b8064949a11bc193b90b74cb727f2a1405",
"type": "github"
}
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1671359686,
"narHash": "sha256-3MpC6yZo+Xn9cPordGz2/ii6IJpP2n8LE8e/ebUXLrs=",
"lastModified": 1671722432,
"narHash": "sha256-ojcZUekIQeOZkHHzR81st7qxX99dB1Eaaq6PU5MNeKc=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "04f574a1c0fde90b51bf68198e2297ca4e7cccf4",
"rev": "652e92b8064949a11bc193b90b74cb727f2a1405",
"type": "github"
},
"original": {
@ -207,11 +207,11 @@
},
"nur": {
"locked": {
"lastModified": 1671541304,
"narHash": "sha256-YDlK8nZpOk7YmOgs8LH6vnreXUx0p0GPxZXi6r6mJW4=",
"lastModified": 1671893061,
"narHash": "sha256-ZtG0t7+AoviY+eUTVUJK1kiKtNx8XVet3+gMNq44MnU=",
"owner": "nix-community",
"repo": "NUR",
"rev": "7c843785562856dfcc78dde7d7141d89a0309402",
"rev": "898adb55e324245bd32bd5702decda4aa6471f7d",
"type": "github"
},
"original": {

View file

@ -13,7 +13,7 @@
tree-input.inputs.nixpkgs.follows = "nixpkgs-unstable";
# update whenever
nixpkgs-fixed.url = "github:nixos/nixpkgs/?branch=nixos-unstable&rev=1710ed1f6f8ceb75cf7d1cf55ee0cc21760e1c7a";
nixpkgs-fixed.url = "github:nixos/nixpkgs/?branch=nixos-unstable&rev=652e92b8064949a11bc193b90b74cb727f2a1405";
nur.url = "github:nix-community/NUR";

View file

@ -26,5 +26,5 @@ in {
};
programs.zsh.shellAliases.mpv-ontop = "mpv --profile=ontop";
programs.zsh.shellAliases.listen = ''
mpv "https://music:$(cat ${listen-password-file})@stream.owo.monster/flac" --cache=yes --cache-pause-initial=yes --cache-pause-wait=5'';
mpv "https://music:$(cat ${listen-password-file})@stream.owo.monster/mpd/flac" --cache=yes --cache-pause-initial=yes --cache-pause-wait=5'';
}

View file

@ -10,16 +10,21 @@
}))
++ [
{
"storage" = {
"container-storage" = {
user = "root";
hostname = "192.168.100.11";
proxyJump = "hetzner-vm";
};
"matrix" = {
"container-matrix" = {
user = "root";
hostname = "192.168.100.12";
proxyJump = "hetzner-vm";
};
"container-music" = {
user = "root";
hostname = "192.168.100.13";
proxyJump = "hetzner-vm";
};
"blahaj" = {
user = "chaos";
hostname = "blahaj.sapphicco.de";

View file

@ -0,0 +1,7 @@
{}: {
mpd = 6600;
mpd-opus-low = 4242;
mpd-opus-medium = 4243;
mpd-opus-high = 4244;
mpd-flac = 4245;
}

View file

@ -0,0 +1,121 @@
{
tree,
lib,
inputs,
pkgs,
config,
...
}: let
hostIP = "192.168.100.10";
containerIP = "192.168.100.13";
# Using secrets from Host
secrets = config.services.secrets.secrets;
ports = import ./data/ports.nix {};
in {
networking.nat.forwardPorts = [
{
sourcePort = 6600;
destination = "${containerIP}\:6600";
}
];
containers.music = {
autoStart = true;
privateNetwork = true;
hostAddress = hostIP;
localAddress = containerIP;
bindMounts = lib.mkMerge (lib.forEach ["mpd_control_password"] (secret_name: let
path = "${secrets.${secret_name}.path}";
in {
"${path}" = {
hostPath = "${path}";
};
}));
config = {
config,
pkgs,
...
}: {
_module.args = {
inherit inputs;
inherit tree;
host_secrets = secrets;
};
imports = with tree;
[
profiles.base
inputs.home-manager-unstable.nixosModules.home-manager
profiles.sshd
modules.nixos.secrets
users.root
]
++ (with hosts.hetzner-vm.containers.music; [
profiles.music-sync
profiles.mpd
]);
# For Shared Secrets
systemd.tmpfiles.rules = [
"d ${config.services.secrets.secretsDir} - root root"
];
networking.firewall = {
enable = true;
allowedTCPPorts = [22] ++ lib.mapAttrsToList (_name: value: value) ports;
};
home-manager.users.root = {
imports = with tree; [home.base home.dev.small];
home.packages = with pkgs; [vault];
home.stateVersion = "22.05";
};
# Manually configure nameserver. Using resolved inside the container seems to fail
# currently
environment.etc."resolv.conf".text = "nameserver 8.8.8.8";
system.stateVersion = "22.05";
};
};
services.nginx.virtualHosts."stream.owo.monster" = let
extraConfig = ''
auth_basic "Music Password";
auth_basic_user_file ${secrets.music_stream_passwd.path};
'';
in {
forceSSL = true;
enableACME = true;
locations = lib.mkMerge ([
{
"/mpd/flac" = {
proxyPass = "http://${containerIP}:${toString ports.mpd-flac}";
inherit extraConfig;
};
}
]
++ (lib.forEach ["low" "medium" "high"] (quality: {
"/mpd/opus-${quality}" = {
proxyPass = "http://${containerIP}:${toString ports."mpd-opus-${quality}"}";
inherit extraConfig;
};
})));
};
# For permissions of secrets
users.users."mpd" = {
uid = config.ids.uids.mpd;
group = "mpd";
};
users.groups."mpd" = {
gid = config.ids.gids.mpd;
};
networking.firewall.allowedTCPPorts = [6600];
}

View file

@ -0,0 +1,98 @@
{
config,
lib,
pkgs,
host_secrets,
...
}: let
ports = import ../data/ports.nix {};
secrets = host_secrets;
in {
environment.systemPackages = with pkgs; [mpc_cli];
systemd.tmpfiles.rules = [
"d /Music - root root"
];
systemd.services.music-sync = {
wantedBy = ["multi-user.target"];
after = ["network.target"];
partOf = ["mpd.service"];
path = with pkgs; [bash rclone mount umount];
script = let
rclone_config = pkgs.writeText "rclone.conf" ''
[Music]
type = webdav
url = https://storage-webdav.owo.monster/music_ro/
vendor = nextcloud
'';
in ''
set -e
rclone --config ${rclone_config} sync Music: /Music
'';
};
systemd.timers.music-sync = {
wantedBy = ["timers.target"];
partOf = ["music-sync.service"];
timerConfig.OnCalendar = "hourly";
};
systemd.services.mpd = {
after = ["music-copy.service"];
};
services.mpd = {
enable = true;
network.listenAddress = "0.0.0.0";
musicDirectory = "/Music";
credentials = [
{
passwordFile = "${secrets.mpd_control_password.path}";
permissions = ["read" "add" "control" "admin"];
}
];
extraConfig =
''
host_permissions "127.0.0.1 read,add,control,admin"
samplerate_converter "0"
metadata_to_use "title,artist"
auto_update "yes"
audio_buffer_size "4096"
replaygain "track"
audio_output_format "44100:16:2"
''
+ lib.concatStringsSep "\n" (lib.forEach ["low" "medium" "high"] (quality: let
bitrates = {
"low" = "64";
"medium" = "96";
"high" = "128";
};
bitrate = bitrates.${quality};
in ''
audio_output {
type "httpd"
name "HTTP Opus ${bitrate}k"
encoder "opus"
port "${toString ports."mpd-opus-${quality}"}"
bitrate "${bitrate}000"
format "44100:16:2"
always_on "yes"
tags "yes"
signal "music"
}
''))
+ ''
audio_output {
type "httpd"
name "HTTP FLAC"
encoder "flac"
port "${toString ports.mpd-flac}"
format "44100:16:2"
always_on "yes"
tags "yes"
}
'';
};
}

View file

@ -0,0 +1,38 @@
{pkgs, ...}: {
systemd.tmpfiles.rules = [
"d /Music - mpd mpd"
];
systemd.services.music-sync = {
wantedBy = ["multi-user.target"];
after = ["network.target"];
partOf = ["mpd.service"];
path = with pkgs; [bash rclone mount umount];
script = let
rclone_config = pkgs.writeText "rclone.conf" ''
[Music]
type = webdav
url = https://storage-webdav.owo.monster/music_ro/
vendor = nextcloud
'';
in ''
set -e
rclone --config ${rclone_config} sync Music: /Music
chown -R mpd:mpd /Music
'';
};
systemd.timers.music-sync = {
wantedBy = ["timers.target"];
partOf = ["music-sync.service"];
timerConfig.OnCalendar = "hourly";
};
systemd.services.mpd = {
after = ["music-copy.service"];
serviceConfig = {
ReadOnlyPaths = "/Music";
};
};
}

View file

@ -12,12 +12,11 @@
./containers/storage/storage.nix
./containers/matrix/matrix.nix
./containers/music/music.nix
hosts.hetzner-vm.profiles.restic
#hosts.hetzner-vm.profiles.invidious
hosts.hetzner-vm.profiles.piped
hosts.hetzner-vm.profiles.quassel
hosts.hetzner-vm.profiles.mpd
hosts.hetzner-vm.profiles.mailserver
hosts.hetzner-vm.profiles.gitlab-static-sites
hosts.hetzner-vm.profiles.misskey

View file

@ -1,8 +1,4 @@
{}: {
mpd = 6600; # default
mpd-opus = 8012;
mpd-flac = 8013;
quassel = 4242; # default
misskey = 3020;

View file

@ -1,58 +0,0 @@
{...}: let
ports = import ../ports.nix {};
in {
services.invidious = {
enable = true;
port = ports.invidious;
settings = {
full_refresh = true;
https_only = true;
popular_enabled = true;
statistics_enabled = true;
registration_enabled = true;
channel_threads = 2;
feed_threads = 2;
default_user_preferences = {
locale = "en-US";
region = "GB";
captions = ["English (auto-generated)" "English" ""];
dark_mode = true;
feed_menu = ["Subscriptions" "Popular"];
default_home = "Subscriptions";
max_results = 30;
annotations = true;
annotations_subscribed = true;
comments = [];
player_style = "invidious";
related_videos = true;
autoplay = true;
continue = true;
continue_autoplay = true;
quality = "hd720";
local = false;
};
};
};
systemd.services.invidious.serviceConfig = {
Restart = "always";
RuntimeMaxSec = "${toString (60 * 60 * 2)}";
};
services.nginx.virtualHosts."invidious.owo.monster" = {
forceSSL = true;
enableACME = true;
locations = {
"/".proxyPass = "http://127.0.0.1:${toString ports.invidious}";
};
};
services.nginx.virtualHosts."invidious-nojs.owo.monster" = {
forceSSL = true;
enableACME = true;
locations = {
"/".proxyPass = "http://127.0.0.1:${toString ports.invidious}";
"/js/".extraConfig = "deny all;";
};
};
}

View file

@ -1,112 +0,0 @@
{
config,
pkgs,
...
}: let
ports = import ../ports.nix {};
secrets = config.services.secrets.secrets;
in {
environment.systemPackages = with pkgs; [mpc_cli];
systemd.tmpfiles.rules = [
"d /Music - root root"
];
systemd.services.music-sync = {
wantedBy = ["multi-user.target"];
after = ["network.target"];
partOf = ["mpd.service"];
path = with pkgs; [bash rclone mount umount];
script = let
rclone_config = pkgs.writeText "rclone.conf" ''
[Music]
type = webdav
url = https://storage-webdav.owo.monster/music_ro/
vendor = nextcloud
'';
in ''
set -e
rclone --config ${rclone_config} sync Music: /Music
'';
};
systemd.timers.music-sync = {
wantedBy = ["timers.target"];
partOf = ["music-sync.service"];
timerConfig.OnCalendar = "hourly";
};
systemd.services.mpd = {
after = ["music-copy.service"];
};
services.mpd = {
enable = true;
network.listenAddress = "0.0.0.0";
dataDir = "/mpd";
playlistDirectory = "/mpd/playlists";
musicDirectory = "/Music";
user = "root";
group = "root";
credentials = [
{
passwordFile = "${secrets.mpd_control_password.path}";
permissions = ["read" "add" "control" "admin"];
}
];
extraConfig = ''
host_permissions "127.0.0.1 read,add,control,admin"
samplerate_converter "0"
metadata_to_use "title,artist"
auto_update "yes"
audio_buffer_size "4096"
replaygain "track"
audio_output_format "44100:16:2"
audio_output {
type "httpd"
name "HTTP Opus"
encoder "opus"
port "${toString ports.mpd-opus}"
bitrate "96000"
format "44100:16:2"
always_on "yes"
tags "yes"
signal "music"
packet_loss "5"
}
audio_output {
type "httpd"
name "HTTP FLAC"
encoder "flac"
port "${toString ports.mpd-flac}"
format "44100:16:2"
always_on "yes"
tags "yes"
}
'';
};
services.nginx.virtualHosts."stream.owo.monster" = {
forceSSL = true;
enableACME = true;
locations = {
"/" = {
proxyPass = "http://127.0.0.1:${toString ports.mpd-opus}";
extraConfig = ''
auth_basic "Music Password";
auth_basic_user_file ${secrets.music_stream_passwd.path};
'';
};
"/flac" = {
proxyPass = "http://127.0.0.1:${toString ports.mpd-flac}";
extraConfig = ''
auth_basic "Music Password";
auth_basic_user_file ${secrets.music_stream_passwd.path};
'';
};
};
};
networking.firewall.allowedTCPPorts = [6600];
}

View file

@ -9,19 +9,12 @@
secrets = {
mpd_control_password = {
user = "root";
group = "root";
user = "mpd";
group = "mpd";
fetchScript = ''
simple_get "/api-keys/mpd" .password > $secretFile
'';
};
private_mail_aliases = {
user = "root";
group = "root";
fetchScript = ''
kv_get "/infra/private-mail-aliases" | jq .data.data | jq -r 'to_entries|map("\(.key) \(.value.to)")[]' > $secretFile
'';
};
music_stream_passwd = {
user = "nginx";
group = "nginx";
@ -31,6 +24,13 @@
htpasswd -bc $secretFile "$username" "$password" 2>/dev/null
'';
};
private_mail_aliases = {
user = "root";
group = "root";
fetchScript = ''
kv_get "/infra/private-mail-aliases" | jq .data.data | jq -r 'to_entries|map("\(.key) \(.value.to)")[]' > $secretFile
'';
};
chaos_mail_passwd = {
user = "dovecot2";
group = "dovecot2";

View file

@ -24,11 +24,11 @@
};
}
{
name = "_antfu_install_pkg___install_pkg_0.1.0.tgz";
name = "_antfu_install_pkg___install_pkg_0.1.1.tgz";
path = fetchurl {
name = "_antfu_install_pkg___install_pkg_0.1.0.tgz";
url = "https://registry.yarnpkg.com/@antfu/install-pkg/-/install-pkg-0.1.0.tgz";
sha512 = "VaIJd3d1o7irZfK1U0nvBsHMyjkuyMP3HKYVV53z8DKyulkHKmjhhtccXO51WSPeeSHIeoJEoNOKavYpS7jkZw==";
name = "_antfu_install_pkg___install_pkg_0.1.1.tgz";
url = "https://registry.yarnpkg.com/@antfu/install-pkg/-/install-pkg-0.1.1.tgz";
sha512 = "LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==";
};
}
{
@ -944,11 +944,11 @@
};
}
{
name = "_iconify_json___json_2.1.154.tgz";
name = "_iconify_json___json_2.1.155.tgz";
path = fetchurl {
name = "_iconify_json___json_2.1.154.tgz";
url = "https://registry.yarnpkg.com/@iconify/json/-/json-2.1.154.tgz";
sha512 = "RpUu4zDoeqIAzD54t8mfCKca+fzASgFf+lFE7Y9OzvScrf+IbUrvyZZEcOkjEB1cB4emDgmWGTAAkVTihhaqxQ==";
name = "_iconify_json___json_2.1.155.tgz";
url = "https://registry.yarnpkg.com/@iconify/json/-/json-2.1.155.tgz";
sha512 = "Zr0809RkIKB/0pX3jFfLX4TI8fv1aW6+FHXlfRiDhFKQSmhcs2x5xYhtxI5GUzl+9o6Le544uUCljmHBYJUFrA==";
};
}
{
@ -960,11 +960,11 @@
};
}
{
name = "_iconify_utils___utils_2.0.2.tgz";
name = "_iconify_utils___utils_2.0.4.tgz";
path = fetchurl {
name = "_iconify_utils___utils_2.0.2.tgz";
url = "https://registry.yarnpkg.com/@iconify/utils/-/utils-2.0.2.tgz";
sha512 = "13B3wJxDLmSNBEIEpKleKSkJVQgdAy9ra3Xsu233i/5qD5yXBGhpOFxTB/k8cqme0xVsMKBPV5vbvq9MgQlX+w==";
name = "_iconify_utils___utils_2.0.4.tgz";
url = "https://registry.yarnpkg.com/@iconify/utils/-/utils-2.0.4.tgz";
sha512 = "/ZYdSK+vao8XPoRPkdQeetGBtuCcPcVTtuXUz2Y+281EpcmM/5G1SCbtgty28r/Y9HkR9ePbKst7eWUOK7/jNQ==";
};
}
{
@ -1264,163 +1264,163 @@
};
}
{
name = "_unocss_astro___astro_0.47.6.tgz";
name = "_unocss_astro___astro_0.48.0.tgz";
path = fetchurl {
name = "_unocss_astro___astro_0.47.6.tgz";
url = "https://registry.yarnpkg.com/@unocss/astro/-/astro-0.47.6.tgz";
sha512 = "8lR4KwuCeVxOTKk6g6hx6VUHhW1u+hki8oRsJaKEB0s5iUPmY6rCNtb/iaBJdceY11bZMMy5LZHJFTkod/T/zg==";
name = "_unocss_astro___astro_0.48.0.tgz";
url = "https://registry.yarnpkg.com/@unocss/astro/-/astro-0.48.0.tgz";
sha512 = "MoINkgukO6YxVVEmEsY0oLWqU+Fv/dzPtUQhfsfek1mqtUbnwQ3n1xuOJ2S0eJSYmbprSuhvW/yTFVn1twsM1A==";
};
}
{
name = "_unocss_cli___cli_0.47.6.tgz";
name = "_unocss_cli___cli_0.48.0.tgz";
path = fetchurl {
name = "_unocss_cli___cli_0.47.6.tgz";
url = "https://registry.yarnpkg.com/@unocss/cli/-/cli-0.47.6.tgz";
sha512 = "Lwuzl6xK+67LUb4pCKlyrMv9cDuTvywhlSBiYzDj1Su+21IQVRxUagpo10b1WlLXWWQz4J3bOJZYE/e/QV2/HQ==";
name = "_unocss_cli___cli_0.48.0.tgz";
url = "https://registry.yarnpkg.com/@unocss/cli/-/cli-0.48.0.tgz";
sha512 = "stfRsxzWK11VtrwUXTRPUyndzhdc2UUp5J148QlgMOClLpR370LADSfj8SHawF5+ID/0k+pd65r7fMGQsx75pw==";
};
}
{
name = "_unocss_config___config_0.47.6.tgz";
name = "_unocss_config___config_0.48.0.tgz";
path = fetchurl {
name = "_unocss_config___config_0.47.6.tgz";
url = "https://registry.yarnpkg.com/@unocss/config/-/config-0.47.6.tgz";
sha512 = "KycIrpKqPrTnrbNRLUgePuzfZUKk6afsKII6B53q9rVxxC1og4g7wCsvrn2D89lPipsJ6B9041VsdIhNqa8bFg==";
name = "_unocss_config___config_0.48.0.tgz";
url = "https://registry.yarnpkg.com/@unocss/config/-/config-0.48.0.tgz";
sha512 = "fr4baghDl8QhlRiGbIO6FWB0k/MGzm9uiWe+Azhpwi6DgFd3MUJMfTfEqia4n/u/sRRaUAbD1nrWrDtpneFLPQ==";
};
}
{
name = "_unocss_core___core_0.47.6.tgz";
name = "_unocss_core___core_0.48.0.tgz";
path = fetchurl {
name = "_unocss_core___core_0.47.6.tgz";
url = "https://registry.yarnpkg.com/@unocss/core/-/core-0.47.6.tgz";
sha512 = "Pjg/NdpuTwZk2Ns3bzI/3XVPuXU+AQ78Sw+9QJyMgA56dArd3TlpNDN6UTOD9XAK6mxdPUu7rNSKpNTLpBW2og==";
name = "_unocss_core___core_0.48.0.tgz";
url = "https://registry.yarnpkg.com/@unocss/core/-/core-0.48.0.tgz";
sha512 = "WvAvChbJ65l97mHismyApeFVgNeGR4uSZl1BzVY+E/fRmyooE4QxiCm3g2akox6mQryzxvBvgSpP9aPzH676ZQ==";
};
}
{
name = "_unocss_inspector___inspector_0.47.6.tgz";
name = "_unocss_inspector___inspector_0.48.0.tgz";
path = fetchurl {
name = "_unocss_inspector___inspector_0.47.6.tgz";
url = "https://registry.yarnpkg.com/@unocss/inspector/-/inspector-0.47.6.tgz";
sha512 = "enYQJo7+/UtSbgzpyKzL4vZU9Tz3QyoPGDmuKoHXSIt6sAtB+DQelW7vMWjcmwA19uaISxIGXx9BJPj5XV67UA==";
name = "_unocss_inspector___inspector_0.48.0.tgz";
url = "https://registry.yarnpkg.com/@unocss/inspector/-/inspector-0.48.0.tgz";
sha512 = "Yr/O8oWmm5wfbnKJQF8IMH7GMmQEKcuunzI5KaZLK0QgS/5viPS+rcTOSwowYKRkXx5HUS+ClkA3+FMzoS9eYQ==";
};
}
{
name = "_unocss_preset_attributify___preset_attributify_0.47.6.tgz";
name = "_unocss_preset_attributify___preset_attributify_0.48.0.tgz";
path = fetchurl {
name = "_unocss_preset_attributify___preset_attributify_0.47.6.tgz";
url = "https://registry.yarnpkg.com/@unocss/preset-attributify/-/preset-attributify-0.47.6.tgz";
sha512 = "s5XB8JpBPbGCHjvzc2j+Cx9o+QQm2CjRdQ7UjL05+uQcVYb8PBjlfD3BeIA21eBH5IxXF9SdOJfx8kUWNa5WFQ==";
name = "_unocss_preset_attributify___preset_attributify_0.48.0.tgz";
url = "https://registry.yarnpkg.com/@unocss/preset-attributify/-/preset-attributify-0.48.0.tgz";
sha512 = "2W6PTX85dLbKm0wAUKfVbMD8rDxE3DSPSWQNfbLewC1o202qzIS8PeTKh++nHMVw1gzpATd546FbPvbZJlTtzw==";
};
}
{
name = "_unocss_preset_icons___preset_icons_0.47.6.tgz";
name = "_unocss_preset_icons___preset_icons_0.48.0.tgz";
path = fetchurl {
name = "_unocss_preset_icons___preset_icons_0.47.6.tgz";
url = "https://registry.yarnpkg.com/@unocss/preset-icons/-/preset-icons-0.47.6.tgz";
sha512 = "YvANR5ueN+r1E4YOfqF1llyUzS6yxROrJ+7MGNdIfyNHFcTwdHRy0f6y8uyiMYWyLc6nGGrUjjdo+DEc30obSA==";
name = "_unocss_preset_icons___preset_icons_0.48.0.tgz";
url = "https://registry.yarnpkg.com/@unocss/preset-icons/-/preset-icons-0.48.0.tgz";
sha512 = "3vro36gTkjEic5rO9BcUudby8tQ9ZRCduKZ1+4CKP0hKoB58nDm1QZM+kvWQ8RVN2xoSU9vWkHhx1RLl8miE0g==";
};
}
{
name = "_unocss_preset_mini___preset_mini_0.47.6.tgz";
name = "_unocss_preset_mini___preset_mini_0.48.0.tgz";
path = fetchurl {
name = "_unocss_preset_mini___preset_mini_0.47.6.tgz";
url = "https://registry.yarnpkg.com/@unocss/preset-mini/-/preset-mini-0.47.6.tgz";
sha512 = "XP7ShDB42WU0xvZA1dG4E3LnzN4TYISm6AKQee3gmITUtE0ELTp9XutMgt0sqTe5FXeTRqw9XH7axv+4EqnE3Q==";
name = "_unocss_preset_mini___preset_mini_0.48.0.tgz";
url = "https://registry.yarnpkg.com/@unocss/preset-mini/-/preset-mini-0.48.0.tgz";
sha512 = "u1EWnmLt25SmCC201+9MqLn1qFYw0aRFH+3clHn9xkrLxXMdb5hnCNssTHItalvht+mskHrfxpQmKUBtxpls+g==";
};
}
{
name = "_unocss_preset_tagify___preset_tagify_0.47.6.tgz";
name = "_unocss_preset_tagify___preset_tagify_0.48.0.tgz";
path = fetchurl {
name = "_unocss_preset_tagify___preset_tagify_0.47.6.tgz";
url = "https://registry.yarnpkg.com/@unocss/preset-tagify/-/preset-tagify-0.47.6.tgz";
sha512 = "9MxgZAUWWEg5OPLY+fpEf/Clw88pi57HON95E9zKvRy816S5gqhbt3PSxal7pCB9WO+3JM6BFLazAJ7DHpT1qA==";
name = "_unocss_preset_tagify___preset_tagify_0.48.0.tgz";
url = "https://registry.yarnpkg.com/@unocss/preset-tagify/-/preset-tagify-0.48.0.tgz";
sha512 = "vHlm3Ag15DHALgnhUZwWZvJXPpJFqxxaCsPdlDsAFRa65FPZEu5iM5V6jzn5H0/GCbTil/WARytlG95m369Scg==";
};
}
{
name = "_unocss_preset_typography___preset_typography_0.47.6.tgz";
name = "_unocss_preset_typography___preset_typography_0.48.0.tgz";
path = fetchurl {
name = "_unocss_preset_typography___preset_typography_0.47.6.tgz";
url = "https://registry.yarnpkg.com/@unocss/preset-typography/-/preset-typography-0.47.6.tgz";
sha512 = "/Hfsw05ogolLXqrxTu5bLFIgGGmVdRHGw5vSmY3g+YPy37HfWpbP3cOs8YEOv8r3lV9J7vzAxAKKT0MQgukiHQ==";
name = "_unocss_preset_typography___preset_typography_0.48.0.tgz";
url = "https://registry.yarnpkg.com/@unocss/preset-typography/-/preset-typography-0.48.0.tgz";
sha512 = "CB5hPe9jP/tZI/H49nE7e79Accgu2q8yp2qRGIM4jlDcU1Tz4g0JmAxg8MeIqrqajVuJQhAu9cd3QnZ5wuh6hA==";
};
}
{
name = "_unocss_preset_uno___preset_uno_0.47.6.tgz";
name = "_unocss_preset_uno___preset_uno_0.48.0.tgz";
path = fetchurl {
name = "_unocss_preset_uno___preset_uno_0.47.6.tgz";
url = "https://registry.yarnpkg.com/@unocss/preset-uno/-/preset-uno-0.47.6.tgz";
sha512 = "pDRuFmPzshX6ICaWhj7UBrnoL++rYD/QY52aljg9L4yAOZsZ1m0XRUlbnoXXXsEqDjw38SYNUzA1LtYcevBRvA==";
name = "_unocss_preset_uno___preset_uno_0.48.0.tgz";
url = "https://registry.yarnpkg.com/@unocss/preset-uno/-/preset-uno-0.48.0.tgz";
sha512 = "mTauhEXdy3ClSPiC6/wgZvSClkBVmrJjuCQFu4mGzFB0IuelsbEjxT7OHlv3Nrwv1d4xEcr9ed6JWm31ketdtA==";
};
}
{
name = "_unocss_preset_web_fonts___preset_web_fonts_0.47.6.tgz";
name = "_unocss_preset_web_fonts___preset_web_fonts_0.48.0.tgz";
path = fetchurl {
name = "_unocss_preset_web_fonts___preset_web_fonts_0.47.6.tgz";
url = "https://registry.yarnpkg.com/@unocss/preset-web-fonts/-/preset-web-fonts-0.47.6.tgz";
sha512 = "TkN/etSSl61TtqxQJSVG/zfJUccdpgIuvqYrJOf4OZMj2rLwNHU2kOJEPFCfDyHTS+UjQ7LibfnE6snFDJ3pgQ==";
name = "_unocss_preset_web_fonts___preset_web_fonts_0.48.0.tgz";
url = "https://registry.yarnpkg.com/@unocss/preset-web-fonts/-/preset-web-fonts-0.48.0.tgz";
sha512 = "eH2tcr2ax1EWKVnT8lZWPGMZDur70UNhyyhF1qZaBdGmbRG4qxEhro9TB70FaNJ/ggHEpvUE8g/t1ZZ5IgwtdQ==";
};
}
{
name = "_unocss_preset_wind___preset_wind_0.47.6.tgz";
name = "_unocss_preset_wind___preset_wind_0.48.0.tgz";
path = fetchurl {
name = "_unocss_preset_wind___preset_wind_0.47.6.tgz";
url = "https://registry.yarnpkg.com/@unocss/preset-wind/-/preset-wind-0.47.6.tgz";
sha512 = "yl9zayR/CRfgnlM1iGEBKI3CkIVADv72UQHY+ZHqq/0VzeW8lSRG1KezqDKz2x3fMfrtbfls/fGLXQPNpD0mIw==";
name = "_unocss_preset_wind___preset_wind_0.48.0.tgz";
url = "https://registry.yarnpkg.com/@unocss/preset-wind/-/preset-wind-0.48.0.tgz";
sha512 = "dd91Ja8K9gqjl27QcY9B5eVS2ScYDXGAPk6/zxDdNVehpKyrLhoCApO7UN0BR6rJSV5jJXi6ztByIDsBg8d6UQ==";
};
}
{
name = "_unocss_reset___reset_0.47.6.tgz";
name = "_unocss_reset___reset_0.48.0.tgz";
path = fetchurl {
name = "_unocss_reset___reset_0.47.6.tgz";
url = "https://registry.yarnpkg.com/@unocss/reset/-/reset-0.47.6.tgz";
sha512 = "bdc2dbuDg+CzgeLowEwO1URRIMdzmCE4RH4IKpCpT1Xoa+92RRubdtzK4N/9ZiSo8d4vvfWcc8fvhZko/6smPQ==";
name = "_unocss_reset___reset_0.48.0.tgz";
url = "https://registry.yarnpkg.com/@unocss/reset/-/reset-0.48.0.tgz";
sha512 = "i7z6Rbs7fXFD3NdlVJViFltpDJUCo5xDm5y01Xaoa4mJQHr/1335Ht0JW/emAJXf170UYSwb2rUeK1J3fty9eg==";
};
}
{
name = "_unocss_scope___scope_0.47.6.tgz";
name = "_unocss_scope___scope_0.48.0.tgz";
path = fetchurl {
name = "_unocss_scope___scope_0.47.6.tgz";
url = "https://registry.yarnpkg.com/@unocss/scope/-/scope-0.47.6.tgz";
sha512 = "aI7B4Il5xYfMcr50AC90I+Igi3KB9U0JPX2yiU2/WhOaO33ZReBWJmBQ4LhBGrdgNh8vkHpeqs8ntwq/o25nbA==";
name = "_unocss_scope___scope_0.48.0.tgz";
url = "https://registry.yarnpkg.com/@unocss/scope/-/scope-0.48.0.tgz";
sha512 = "r/a89Ip2NWlhvEglsZ4qQMy6smCmgGyA8aOKSEpU59il9Lmxjsz8eVLqofeiRzjBI9NTutpfLoEw3vrAK0YxRA==";
};
}
{
name = "_unocss_transformer_attributify_jsx___transformer_attributify_jsx_0.47.6.tgz";
name = "_unocss_transformer_attributify_jsx___transformer_attributify_jsx_0.48.0.tgz";
path = fetchurl {
name = "_unocss_transformer_attributify_jsx___transformer_attributify_jsx_0.47.6.tgz";
url = "https://registry.yarnpkg.com/@unocss/transformer-attributify-jsx/-/transformer-attributify-jsx-0.47.6.tgz";
sha512 = "1sjBPNpczbg1ZsM4OKr9SCisc3vXEpW+3aeCRlBq7UGlJId3vJlX19Yp6IV9IEnVubsUkgo/3nr0B12OD58VdQ==";
name = "_unocss_transformer_attributify_jsx___transformer_attributify_jsx_0.48.0.tgz";
url = "https://registry.yarnpkg.com/@unocss/transformer-attributify-jsx/-/transformer-attributify-jsx-0.48.0.tgz";
sha512 = "aKWE2qvCeM+ev91tdnDoLVY53cNtRhqlisJnvmFUkIkDTJBZiMQnkKQdaoCrZDbIptRogqMtpJVlGxPe41z2WA==";
};
}
{
name = "_unocss_transformer_compile_class___transformer_compile_class_0.47.6.tgz";
name = "_unocss_transformer_compile_class___transformer_compile_class_0.48.0.tgz";
path = fetchurl {
name = "_unocss_transformer_compile_class___transformer_compile_class_0.47.6.tgz";
url = "https://registry.yarnpkg.com/@unocss/transformer-compile-class/-/transformer-compile-class-0.47.6.tgz";
sha512 = "/+O0qJlHFOF4iO+RVkK5sPLJJzWp8dkAJGH/ArBzpT4hnxe8W7c0tb0hlJxwUp5J7UcP4lDhd8VKKvlyadHkuA==";
name = "_unocss_transformer_compile_class___transformer_compile_class_0.48.0.tgz";
url = "https://registry.yarnpkg.com/@unocss/transformer-compile-class/-/transformer-compile-class-0.48.0.tgz";
sha512 = "8Hi1KRQfqac7AT+YQuVM0eW6Z83u7PzuKD+SU7k+UzQLpX+M/S5t4iYJPYDSJ34btN8VhvXcn5iV//kclFAWgg==";
};
}
{
name = "_unocss_transformer_directives___transformer_directives_0.47.6.tgz";
name = "_unocss_transformer_directives___transformer_directives_0.48.0.tgz";
path = fetchurl {
name = "_unocss_transformer_directives___transformer_directives_0.47.6.tgz";
url = "https://registry.yarnpkg.com/@unocss/transformer-directives/-/transformer-directives-0.47.6.tgz";
sha512 = "vRY9bNhE+iNlRpsnky86MtKpRb8ipk3IHvtuRkK5DSjcjn7RGmh5ZpH9pzg39NvbWtRYq5/EN19riIYQHRetnA==";
name = "_unocss_transformer_directives___transformer_directives_0.48.0.tgz";
url = "https://registry.yarnpkg.com/@unocss/transformer-directives/-/transformer-directives-0.48.0.tgz";
sha512 = "Iq55a/vAcTM7xoEtMkqlDP3BT+0ljaqTFctvlentJWDoAjJlbOoPe4gE5BKld5ulWEsV4wvpY2acn/y8SGvJUw==";
};
}
{
name = "_unocss_transformer_variant_group___transformer_variant_group_0.47.6.tgz";
name = "_unocss_transformer_variant_group___transformer_variant_group_0.48.0.tgz";
path = fetchurl {
name = "_unocss_transformer_variant_group___transformer_variant_group_0.47.6.tgz";
url = "https://registry.yarnpkg.com/@unocss/transformer-variant-group/-/transformer-variant-group-0.47.6.tgz";
sha512 = "+uXz0pOv6WbEzQuW5RbgDSiwO274blsOsE63PdiRBMID1eSYKffGBcmiDh875QWc9ncFpjSKml+4q8jU7I+a0w==";
name = "_unocss_transformer_variant_group___transformer_variant_group_0.48.0.tgz";
url = "https://registry.yarnpkg.com/@unocss/transformer-variant-group/-/transformer-variant-group-0.48.0.tgz";
sha512 = "a3S4NTCt2JacUl+qL4eIpUjw1hkvthGV5pgkq8wMa5cGxJy2NpS/ZaLMfwsUA1Eo6fgMfK/QwMeLJihhs7G/qQ==";
};
}
{
name = "_unocss_vite___vite_0.47.6.tgz";
name = "_unocss_vite___vite_0.48.0.tgz";
path = fetchurl {
name = "_unocss_vite___vite_0.47.6.tgz";
url = "https://registry.yarnpkg.com/@unocss/vite/-/vite-0.47.6.tgz";
sha512 = "NL3A20sJHwMyCHOaxLlFXnr71QHEd118GN82e/mtFluEh7F3WyLndaZfWQLmLEeJ3z+P4nURFCLirZJIXr4XgQ==";
name = "_unocss_vite___vite_0.48.0.tgz";
url = "https://registry.yarnpkg.com/@unocss/vite/-/vite-0.48.0.tgz";
sha512 = "j4QS2Ns02J9LRwdpLNiKt+Fo0+YUtvTQ66Xc/xq9s/ErptUwNnXsTCEDQzadXwPw+I8REKakLUve32to8VAd0w==";
};
}
{
@ -1936,11 +1936,11 @@
};
}
{
name = "css_tree___css_tree_2.2.1.tgz";
name = "css_tree___css_tree_2.3.1.tgz";
path = fetchurl {
name = "css_tree___css_tree_2.2.1.tgz";
url = "https://registry.yarnpkg.com/css-tree/-/css-tree-2.2.1.tgz";
sha512 = "OA0mILzGc1kCOCSJerOeqDxDQ4HOh+G8NbOJFOTgOCzpw7fCBubk0fEyxp8AgOL/jvLgYA/uV0cMbe43ElF1JA==";
name = "css_tree___css_tree_2.3.1.tgz";
url = "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz";
sha512 = "6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==";
};
}
{
@ -3120,11 +3120,11 @@
};
}
{
name = "kolorist___kolorist_1.5.1.tgz";
name = "kolorist___kolorist_1.6.0.tgz";
path = fetchurl {
name = "kolorist___kolorist_1.5.1.tgz";
url = "https://registry.yarnpkg.com/kolorist/-/kolorist-1.5.1.tgz";
sha512 = "lxpCM3HTvquGxKGzHeknB/sUjuVoUElLlfYnXZT73K8geR9jQbroGlSCFBax9/0mpGoD3kzcMLnOlGQPJJNyqQ==";
name = "kolorist___kolorist_1.6.0.tgz";
url = "https://registry.yarnpkg.com/kolorist/-/kolorist-1.6.0.tgz";
sha512 = "dLkz37Ab97HWMx9KTes3Tbi3D1ln9fCAy2zr2YVExJasDRPGRaKcoE4fycWNtnCAJfjFqe0cnY+f8KT2JePEXQ==";
};
}
{
@ -3224,11 +3224,11 @@
};
}
{
name = "mdn_data___mdn_data_2.0.28.tgz";
name = "mdn_data___mdn_data_2.0.30.tgz";
path = fetchurl {
name = "mdn_data___mdn_data_2.0.28.tgz";
url = "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.28.tgz";
sha512 = "aylIc7Z9y4yzHYAJNuESG3hfhC+0Ibp/MAMiaOZgNv4pmEdFyfZhhhny4MNiAfWdBQ1RQ2mfDWmM1x8SvGyp8g==";
name = "mdn_data___mdn_data_2.0.30.tgz";
url = "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz";
sha512 = "GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==";
};
}
{
@ -4256,11 +4256,11 @@
};
}
{
name = "unocss___unocss_0.47.6.tgz";
name = "unocss___unocss_0.48.0.tgz";
path = fetchurl {
name = "unocss___unocss_0.47.6.tgz";
url = "https://registry.yarnpkg.com/unocss/-/unocss-0.47.6.tgz";
sha512 = "cc+m2h/Iky24zwAKir9ElmIhkPYNjZEUTemInctWlVN8QX9qpzsRZahAl7ZmKsBorXPFtux/JYoUCCtXftyxOw==";
name = "unocss___unocss_0.48.0.tgz";
url = "https://registry.yarnpkg.com/unocss/-/unocss-0.48.0.tgz";
sha512 = "rDyMHyvRTRUPOd406CzgoYfiQ4tzN/TGU++jFTDzLsJ9Unuwf/pBBclP6z6aqt5eRBoEOEMqrJJwm9QN7aeYdA==";
};
}
{

View file

@ -1,7 +1,7 @@
{
"frontend": {
"rev": "394362c8fd1eafcdf93c1123937455fd70bda8a8",
"sha256": "sha256-pvj6qvhAKuOrhNd/+P/lOa5RL+j+gBeebQXX1pymrb8="
"rev": "bffc08127f352fa17f12930b0167a7e63726e58b",
"sha256": "sha256-r3taWU2EsMtwqp6rXaNAkh6Jt/LyEqK1UIXCRtqHzAc="
},
"backend": {
"rev": "3b4f5274e66fe7ba35ef8ddc979d4ff19b9a102b",

View file

@ -4,7 +4,6 @@ SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
REPO_ROOT="${SCRIPT_DIR}/.."
cd $REPO_ROOT
./overlay/invidious/update.sh
./overlay/misskey/update.sh
./overlay/piped/update.sh
nix flake update