Compare commits
10 Commits
d3224add2a
...
b117c3e7da
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b117c3e7da | ||
|
|
abb08afa46 | ||
|
|
a48b56d9ed | ||
|
|
ca552337da | ||
|
|
6c3e800227 | ||
|
|
c4dc5c316c | ||
|
|
1d7031b338 | ||
|
|
b6341b79a6 | ||
|
|
978dd75ea3 | ||
|
|
4201c7d8a6 |
@@ -34,17 +34,57 @@ jobs:
|
||||
nix build .#emacs-vm --quiet
|
||||
|
||||
- name: Push to cache
|
||||
continue-on-error: true
|
||||
run: |
|
||||
echo "Pushing builds to cache..."
|
||||
|
||||
# Retry function for attic push commands
|
||||
retry_attic_push() {
|
||||
local max_attempts=5
|
||||
local attempt=1
|
||||
local command="$@"
|
||||
|
||||
while [ $attempt -le $max_attempts ]; do
|
||||
echo "Attempt $attempt/$max_attempts: $command"
|
||||
if eval "$command"; then
|
||||
echo "✓ Successfully pushed to cache on attempt $attempt"
|
||||
return 0
|
||||
else
|
||||
local exit_code=$?
|
||||
echo "✗ Attempt $attempt failed with exit code $exit_code"
|
||||
if [ $attempt -lt $max_attempts ]; then
|
||||
echo "Waiting 2 seconds before retry..."
|
||||
sleep 2
|
||||
fi
|
||||
attempt=$((attempt + 1))
|
||||
fi
|
||||
done
|
||||
|
||||
echo "⚠️ Failed to push to cache after $max_attempts attempts. Continuing anyway..."
|
||||
return 0 # Don't fail the pipeline
|
||||
}
|
||||
|
||||
# Push all built derivations to cache
|
||||
if ls result* 1> /dev/null 2>&1; then
|
||||
attic push servidos:nixos result*
|
||||
retry_attic_push "attic push servidos:nixos result*"
|
||||
fi
|
||||
|
||||
# Push the specific system derivations we just built
|
||||
nix build .#nixosConfigurations.workstation.config.system.build.toplevel --print-out-paths | attic push servidos:nixos --stdin
|
||||
nix build .#nixosConfigurations.server.config.system.build.toplevel --print-out-paths | attic push servidos:nixos --stdin
|
||||
nix build .#emacs-vm --print-out-paths | attic push servidos:nixos --stdin
|
||||
# Get paths and push with retry (paths are already built, so this is fast)
|
||||
workstation_path=$(nix build .#nixosConfigurations.workstation.config.system.build.toplevel --print-out-paths 2>/dev/null || echo "")
|
||||
if [ -n "$workstation_path" ]; then
|
||||
retry_attic_push "echo \"$workstation_path\" | attic push servidos:nixos --stdin"
|
||||
fi
|
||||
|
||||
server_path=$(nix build .#nixosConfigurations.server.config.system.build.toplevel --print-out-paths 2>/dev/null || echo "")
|
||||
if [ -n "$server_path" ]; then
|
||||
retry_attic_push "echo \"$server_path\" | attic push servidos:nixos --stdin"
|
||||
fi
|
||||
|
||||
emacs_path=$(nix build .#emacs-vm --print-out-paths 2>/dev/null || echo "")
|
||||
if [ -n "$emacs_path" ]; then
|
||||
retry_attic_push "echo \"$emacs_path\" | attic push servidos:nixos --stdin"
|
||||
fi
|
||||
|
||||
- name: Summary
|
||||
run: |
|
||||
|
||||
@@ -36,9 +36,36 @@ jobs:
|
||||
attic login servidos http://127.0.0.1:2343 ${{ secrets.ATTIC_TOKEN }}
|
||||
|
||||
- name: Build and push all schemes
|
||||
continue-on-error: true
|
||||
run: |
|
||||
echo "Building and pushing all schemes..."
|
||||
|
||||
# Retry function for attic push commands
|
||||
retry_attic_push() {
|
||||
local max_attempts=5
|
||||
local attempt=1
|
||||
local command="$@"
|
||||
|
||||
while [ $attempt -le $max_attempts ]; do
|
||||
echo "Attempt $attempt/$max_attempts: $command"
|
||||
if eval "$command"; then
|
||||
echo "✓ Successfully pushed to cache on attempt $attempt"
|
||||
return 0
|
||||
else
|
||||
local exit_code=$?
|
||||
echo "✗ Attempt $attempt failed with exit code $exit_code"
|
||||
if [ $attempt -lt $max_attempts ]; then
|
||||
echo "Waiting 2 seconds before retry..."
|
||||
sleep 2
|
||||
fi
|
||||
attempt=$((attempt + 1))
|
||||
fi
|
||||
done
|
||||
|
||||
echo "⚠️ Failed to push to cache after $max_attempts attempts. Continuing anyway..."
|
||||
return 0 # Don't fail the pipeline
|
||||
}
|
||||
|
||||
# Store original scheme
|
||||
ORIGINAL_SCHEME=$(grep -oP "scheme = schemesFile\.schemes\.\K\w+" config/stylix.nix)
|
||||
echo "Original scheme: $ORIGINAL_SCHEME"
|
||||
@@ -61,14 +88,17 @@ jobs:
|
||||
--out-link ./result-$scheme \
|
||||
--quiet
|
||||
|
||||
# Push to cache
|
||||
# Push to cache with retry
|
||||
echo "Pushing $scheme to cache..."
|
||||
attic push servidos:nixos ./result-$scheme
|
||||
retry_attic_push "attic push servidos:nixos ./result-$scheme"
|
||||
|
||||
# Also push using print-out-paths for better cache coverage
|
||||
nix build .#nixosConfigurations.${HOSTNAME}.config.system.build.toplevel \
|
||||
build_path=$(nix build .#nixosConfigurations.${HOSTNAME}.config.system.build.toplevel \
|
||||
--print-out-paths \
|
||||
--quiet | attic push servidos:nixos --stdin
|
||||
--quiet 2>/dev/null || echo "")
|
||||
if [ -n "$build_path" ]; then
|
||||
retry_attic_push "echo \"$build_path\" | attic push servidos:nixos --stdin"
|
||||
fi
|
||||
|
||||
echo "✓ Completed $scheme"
|
||||
echo ""
|
||||
|
||||
@@ -60,17 +60,57 @@ jobs:
|
||||
|
||||
- name: Push to cache
|
||||
if: steps.check_changes.outputs.changes == 'true'
|
||||
continue-on-error: true
|
||||
run: |
|
||||
echo "Pushing builds to cache..."
|
||||
|
||||
# Retry function for attic push commands
|
||||
retry_attic_push() {
|
||||
local max_attempts=5
|
||||
local attempt=1
|
||||
local command="$@"
|
||||
|
||||
while [ $attempt -le $max_attempts ]; do
|
||||
echo "Attempt $attempt/$max_attempts: $command"
|
||||
if eval "$command"; then
|
||||
echo "✓ Successfully pushed to cache on attempt $attempt"
|
||||
return 0
|
||||
else
|
||||
local exit_code=$?
|
||||
echo "✗ Attempt $attempt failed with exit code $exit_code"
|
||||
if [ $attempt -lt $max_attempts ]; then
|
||||
echo "Waiting 2 seconds before retry..."
|
||||
sleep 2
|
||||
fi
|
||||
attempt=$((attempt + 1))
|
||||
fi
|
||||
done
|
||||
|
||||
echo "⚠️ Failed to push to cache after $max_attempts attempts. Continuing anyway..."
|
||||
return 0 # Don't fail the pipeline
|
||||
}
|
||||
|
||||
# Push all built derivations to cache
|
||||
if ls result* 1> /dev/null 2>&1; then
|
||||
attic push servidos:nixos result*
|
||||
retry_attic_push "attic push servidos:nixos result*"
|
||||
fi
|
||||
|
||||
# Push the specific system derivations we just built
|
||||
nix build .#nixosConfigurations.workstation.config.system.build.toplevel --print-out-paths | attic push servidos:nixos --stdin
|
||||
nix build .#nixosConfigurations.server.config.system.build.toplevel --print-out-paths | attic push servidos:nixos --stdin
|
||||
nix build .#emacs-vm --print-out-paths | attic push servidos:nixos --stdin
|
||||
# Get paths and push with retry (paths are already built, so this is fast)
|
||||
workstation_path=$(nix build .#nixosConfigurations.workstation.config.system.build.toplevel --print-out-paths 2>/dev/null || echo "")
|
||||
if [ -n "$workstation_path" ]; then
|
||||
retry_attic_push "echo \"$workstation_path\" | attic push servidos:nixos --stdin"
|
||||
fi
|
||||
|
||||
server_path=$(nix build .#nixosConfigurations.server.config.system.build.toplevel --print-out-paths 2>/dev/null || echo "")
|
||||
if [ -n "$server_path" ]; then
|
||||
retry_attic_push "echo \"$server_path\" | attic push servidos:nixos --stdin"
|
||||
fi
|
||||
|
||||
emacs_path=$(nix build .#emacs-vm --print-out-paths 2>/dev/null || echo "")
|
||||
if [ -n "$emacs_path" ]; then
|
||||
retry_attic_push "echo \"$emacs_path\" | attic push servidos:nixos --stdin"
|
||||
fi
|
||||
|
||||
- name: Commit updated flake.lock
|
||||
if: steps.check_changes.outputs.changes == 'true'
|
||||
|
||||
@@ -97,6 +97,7 @@
|
||||
];
|
||||
substituters = [
|
||||
"${config.my.servers.atticd.url}/nixos"
|
||||
"${config.my.servers.atticd.url}/webref"
|
||||
"https://nix-gaming.cachix.org"
|
||||
"https://nixpkgs-python.cachix.org"
|
||||
"https://devenv.cachix.org"
|
||||
@@ -106,7 +107,8 @@
|
||||
"https://cosmic.cachix.org"
|
||||
];
|
||||
trusted-public-keys = [
|
||||
"nixos:kubuWhYCk9/aZp5GDJFAScYgigM66DszP8i1Pzbq0Fc="
|
||||
"nixos:GAnxnubP07Qu+6v8MErkuAa4uGCR4Npmu4acmQrUXpI="
|
||||
"webref:qobPVDWPzbSJ0JIUoLBnWILcc+zbPa16CVAiN8MN6tg="
|
||||
"nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4="
|
||||
"nixpkgs-python.cachix.org-1:hxjI7pFxTyuTHn2NkvWCrAUcNZLNS3ZAvfYNuYifcEU="
|
||||
"devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="
|
||||
|
||||
@@ -9,7 +9,7 @@ let
|
||||
schemesFile = import ./schemes.nix {
|
||||
inherit pkgs inputs;
|
||||
};
|
||||
scheme = schemesFile.schemes.febroary;
|
||||
scheme = schemesFile.schemes.who;
|
||||
cfg = config.my.stylix;
|
||||
gnomeEnabled = config.services.desktopManager.gnome.enable;
|
||||
in
|
||||
|
||||
44
flake.lock
generated
44
flake.lock
generated
@@ -324,24 +324,6 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils_2": {
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"fonts": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
@@ -747,17 +729,16 @@
|
||||
},
|
||||
"lidarr-mb-gap": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils_2",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1762882489,
|
||||
"narHash": "sha256-YFk5GkD7TkIMbcnJzFz+IRN4vH7QJSRphpS3zje3PRU=",
|
||||
"lastModified": 1762901399,
|
||||
"narHash": "sha256-idaZ4k8oynnXUWTLXKPwqbLHdaPmLH1FfjsRWXUM97I=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "35e6c7e330868b00e7c8dbc878db776ba01f719d",
|
||||
"revCount": 11,
|
||||
"rev": "0b86143646f57aa52fab5182352ca0200e824571",
|
||||
"revCount": 18,
|
||||
"type": "git",
|
||||
"url": "https://git.lebubu.org/vibe-coded/lidarr-mb-gap.git"
|
||||
},
|
||||
@@ -1097,7 +1078,7 @@
|
||||
"nixpkgs"
|
||||
],
|
||||
"nur": "nur_2",
|
||||
"systems": "systems_5",
|
||||
"systems": "systems_4",
|
||||
"tinted-foot": "tinted-foot",
|
||||
"tinted-kitty": "tinted-kitty",
|
||||
"tinted-schemes": "tinted-schemes",
|
||||
@@ -1195,21 +1176,6 @@
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"tinted-foot": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
|
||||
@@ -45,12 +45,14 @@
|
||||
lidarr-mb-gap = lib.mkIf config.my.secureHost {
|
||||
sopsFile = ../../secrets/env.yaml;
|
||||
};
|
||||
"private_keys/lidarr-mb-gap" = lib.mkIf config.my.secureHost {
|
||||
sopsFile = ../../secrets/keys.yaml;
|
||||
owner = config.users.users.lidarr-mb-gap.name;
|
||||
inherit (config.users.users.lidarr-mb-gap) group;
|
||||
path = "~/.ssh/ed25519_lidarr-mb-gap";
|
||||
};
|
||||
"private_keys/lidarr-mb-gap" =
|
||||
lib.mkIf (config.my.secureHost && config.services.lidarr-mb-gap.enable)
|
||||
{
|
||||
sopsFile = ../../secrets/keys.yaml;
|
||||
owner = config.users.users.lidarr-mb-gap.name;
|
||||
inherit (config.users.users.lidarr-mb-gap) group;
|
||||
path = "${config.users.users.lidarr-mb-gap.home}/.ssh/ed25519_lidarr-mb-gap";
|
||||
};
|
||||
};
|
||||
networking = {
|
||||
hostName = "server";
|
||||
@@ -88,10 +90,11 @@
|
||||
lidarr-mb-gap = {
|
||||
enable = true;
|
||||
package = inputs.lidarr-mb-gap.packages.${pkgs.system}.lidarr-mb-gap;
|
||||
reportDir = "/var/lib/lidarr-mb-gap/reports";
|
||||
home = "/var/lib/lidarr-mb-gap";
|
||||
envFile = config.sops.secrets.lidarr-mb-gap.path;
|
||||
runInterval = "weekly";
|
||||
syncToVPS = false;
|
||||
syncToVPS = true;
|
||||
vpsPort = 3456;
|
||||
vpsHost = "lidarr-reports@${config.my.ips.vps}";
|
||||
vpsPath = "/var/www/html/lidarr-mb-gap";
|
||||
sshKeyFile = config.sops.secrets."private_keys/lidarr-mb-gap".path;
|
||||
|
||||
@@ -88,7 +88,8 @@ in
|
||||
gnome-epub-thumbnailer
|
||||
podman-compose
|
||||
scrcpy
|
||||
mpv
|
||||
vlc
|
||||
syncplay
|
||||
;
|
||||
inherit (pkgs.libheif) out;
|
||||
};
|
||||
@@ -111,7 +112,6 @@ in
|
||||
enableVirtualCamera = true;
|
||||
plugins = builtins.attrValues {
|
||||
inherit (pkgs.obs-studio-plugins)
|
||||
droidcam-obs
|
||||
obs-vkcapture
|
||||
obs-vaapi
|
||||
obs-tuna
|
||||
|
||||
@@ -17,7 +17,10 @@ in
|
||||
settings = {
|
||||
listen = "[::]:${toString cfg.port}";
|
||||
jwt = { };
|
||||
database.heartbeat = true; # 5 minutes
|
||||
database = {
|
||||
heartbeat = true;
|
||||
url = "postgresql:///${cfg.name}?host=${config.my.postgresSocket}";
|
||||
};
|
||||
chunking = {
|
||||
nar-size-threshold = 64 * 1024; # 64 KiB
|
||||
min-size = 16 * 1024; # 16 KiB
|
||||
|
||||
@@ -54,5 +54,59 @@
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
gpt = [
|
||||
{
|
||||
abbr = "GPT";
|
||||
href = "http://127.0.0.1:8080";
|
||||
description = "";
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
syncthing-workstation = [
|
||||
{
|
||||
abbr = "SW";
|
||||
href = "http://workstation:8384";
|
||||
description = "";
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
syncthing-server = [
|
||||
{
|
||||
abbr = "SS";
|
||||
href = "http://server:8384";
|
||||
description = "";
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
"music report" = [
|
||||
{
|
||||
abbr = "MR";
|
||||
href = "https://mb-report.lebubu.org";
|
||||
description = "";
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
"portfolio" = [
|
||||
{
|
||||
abbr = "PF";
|
||||
href = "https://danilo-reyes.com";
|
||||
description = "";
|
||||
}
|
||||
];
|
||||
}
|
||||
{
|
||||
"webref" = [
|
||||
{
|
||||
abbr = "WR";
|
||||
href = "https://webref.lebubu.org";
|
||||
description = "";
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ in
|
||||
options.my.servers.lidarr = setup.mkOptions "lidarr" "music" 8686;
|
||||
config.virtualisation.oci-containers.containers.lidarr = lib.mkIf cfg.enable {
|
||||
autoStart = true;
|
||||
image = "linuxserver/lidarr:version-2.13.3.4711";
|
||||
image = "linuxserver/lidarr:version-3.0.1.4866";
|
||||
ports = [ "${toString cfg.port}:${toString cfg.port}" ];
|
||||
environment = {
|
||||
TZ = config.my.timeZone;
|
||||
|
||||
@@ -39,6 +39,7 @@ let
|
||||
"readeck"
|
||||
"sonarqube"
|
||||
"gitea"
|
||||
"atticd"
|
||||
];
|
||||
in
|
||||
{
|
||||
|
||||
@@ -10,7 +10,7 @@ dns: ENC[AES256_GCM,data:fQN3SOm0HzOjSjTohRAD4KlXdEu5PbQc3DvK3rLC1S4G0G4HUPkgucN
|
||||
cloudflare-api: ENC[AES256_GCM,data:iNUMlY8rz5yHVitpK4HGaFSK7j+c8Pm7rOQMOQGmSJ3a8ASyrtouPgLbcnoPY/jalsJYAj991dSiui+Vwqs=,iv:qWONG/KLd9/F4tqrWF5T25Zxst3bk+kOYaOFBFSBAAY=,tag:gRFxar8KS8gnX8oaCD156Q==,type:str]
|
||||
synapse: ENC[AES256_GCM,data:IR0pFwQBEM4O8mzzYXrPe2FjulSUGuitzLDLms2uovr6gEU82mCkRO/UCQOybNm03iOQeXX0Whz739kpYSGSInEyx69BNG/etH+bMu+GbYeMdrTEyXHSa7kcH4Ug,iv:Vn2ILYXnCj+Op/E2kWoxV+2ZtlxYJxO6XK3Ql41KW6w=,tag:9wogJFLlmfM5PRgPdwFlcw==,type:str]
|
||||
readeck: ENC[AES256_GCM,data:TsIkHLji37dDHQRt78SquBhoSREHDgvgbc6+M1k2MLrgMGJ/Ejfy5AZXCIp/Qj5sXDzKP4j6Y6xFvGLswCqe02XjqGCpX13gZVCFPuKr8Nq051Xg,iv:Rc/pjYP+Vd/DvLCYsfJjDrnAlAiUlZOcNeeYzE6O3UY=,tag:OvR+CXMmrUFbsrHvduhnjA==,type:str]
|
||||
lidarr-mb-gap: ENC[AES256_GCM,data:zMr1UJUxqu3BJ2YRZKeIUzcEQRsHM6xeZ9kJ7ElynTD7ay0je+L0i+pyWe3OGwVN/8UUIQnKf42Pr6C4hJSxqwetjG6jQYTUGwTWzvxr/TDr6uhZwG59wLh8e02ymLw0GMJYfkQdZqEWyicHESHNdPmBFx3kByU01/QvOQlFO82/FPTvwpY=,iv:sk57rOrV/lj5f47sF4agZYPScLRiMgtM7iwzmubnZ2Q=,tag:LNl8TK3MswXj6lqBNA9Vqw==,type:str]
|
||||
lidarr-mb-gap: ENC[AES256_GCM,data:bNzD9Nf9BWAPkm0Yk0J4MJbmo908QX9VsD+40Rngnfec9nzH4vZ2DrelxRllgT1kgnXMQzvoSgNhBwkDN4fgX73hz1FjkytTwahlO0wcY6R+tw4aokh0QYy0TVx5pZ4u1FEQOAp3IMgBsP8HOqaL/NEsEo3yb0K9iC3AfFihkLDJmVh26Pg=,iv:go0qS7/BcfcAMPkAdGWCoL61gNqBG5lWDev++y9DJ/I=,tag:LgtEyTZH8NfhfrKTcAigZw==,type:str]
|
||||
sops:
|
||||
age:
|
||||
- recipient: age1lufn6t35gs4wgevyr2gud4eec7lvkn7pgnnv4tja64ww3hef7gqq8fas37
|
||||
@@ -49,7 +49,7 @@ sops:
|
||||
QXRUYWtGcWZCVW11U3VYRktuUjlCbDgKsTK4WhUza/JuoDTU3uATa6fq/8eYzxtb
|
||||
9BUK1ddzx9Mghea9XBMS17YGtGmW800OsLBomb3SINnOFvejcnKf8Q==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2025-11-11T17:47:23Z"
|
||||
mac: ENC[AES256_GCM,data:9wWhkUbU/bNV6erUpQhwza47XLbdC7RIfw1J+bFdKW1DLjokeYr1HacZVw+O3bGDFZqKs9JomfnYLxeZay0VXKLb/e61yETi2lx3/BV3Ghp3Tsglf3Eoy4QokvErqDi3GoT7Hvc2bArq4hlYuZI5yjUU+8xvwMopU9MS1C1Muuw=,iv:WfnngiGiY8pnvZHiGueCkZtnGbF42L7ut+tCs8BMskA=,tag:x81EkcXBIk1bylD/QqXzPg==,type:str]
|
||||
lastmodified: "2025-11-11T23:18:34Z"
|
||||
mac: ENC[AES256_GCM,data:i3U364pjZB5Y61Wf7ETbXhNWyfH1gw0oyPcNyT+nCIJmePh8JWiP9hnHmZfLS1BKkI2powQdezbz9R0XDvU7g2SkV8EsWmn/h3rFwbopUZbeRQ2SCoX7LGFez74l1oTPQjL8zWJVdrUtfAFgbZKSEWuz7rsDieKBVhIJwWaeePY=,iv:N4z+X3eD6jH+zQfY24qec+U6wkfhLGPm4MzY8T2Km/A=,tag:yluW5YSKMZ4Kk+wcXbkj8Q==,type:str]
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.11.0
|
||||
|
||||
Reference in New Issue
Block a user