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
|
nix build .#emacs-vm --quiet
|
||||||
|
|
||||||
- name: Push to cache
|
- name: Push to cache
|
||||||
|
continue-on-error: true
|
||||||
run: |
|
run: |
|
||||||
echo "Pushing builds to cache..."
|
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
|
# Push all built derivations to cache
|
||||||
if ls result* 1> /dev/null 2>&1; then
|
if ls result* 1> /dev/null 2>&1; then
|
||||||
attic push servidos:nixos result*
|
retry_attic_push "attic push servidos:nixos result*"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Push the specific system derivations we just built
|
# Push the specific system derivations we just built
|
||||||
nix build .#nixosConfigurations.workstation.config.system.build.toplevel --print-out-paths | attic push servidos:nixos --stdin
|
# Get paths and push with retry (paths are already built, so this is fast)
|
||||||
nix build .#nixosConfigurations.server.config.system.build.toplevel --print-out-paths | attic push servidos:nixos --stdin
|
workstation_path=$(nix build .#nixosConfigurations.workstation.config.system.build.toplevel --print-out-paths 2>/dev/null || echo "")
|
||||||
nix build .#emacs-vm --print-out-paths | attic push servidos:nixos --stdin
|
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
|
- name: Summary
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -36,9 +36,36 @@ jobs:
|
|||||||
attic login servidos http://127.0.0.1:2343 ${{ secrets.ATTIC_TOKEN }}
|
attic login servidos http://127.0.0.1:2343 ${{ secrets.ATTIC_TOKEN }}
|
||||||
|
|
||||||
- name: Build and push all schemes
|
- name: Build and push all schemes
|
||||||
|
continue-on-error: true
|
||||||
run: |
|
run: |
|
||||||
echo "Building and pushing all schemes..."
|
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
|
# Store original scheme
|
||||||
ORIGINAL_SCHEME=$(grep -oP "scheme = schemesFile\.schemes\.\K\w+" config/stylix.nix)
|
ORIGINAL_SCHEME=$(grep -oP "scheme = schemesFile\.schemes\.\K\w+" config/stylix.nix)
|
||||||
echo "Original scheme: $ORIGINAL_SCHEME"
|
echo "Original scheme: $ORIGINAL_SCHEME"
|
||||||
@@ -61,14 +88,17 @@ jobs:
|
|||||||
--out-link ./result-$scheme \
|
--out-link ./result-$scheme \
|
||||||
--quiet
|
--quiet
|
||||||
|
|
||||||
# Push to cache
|
# Push to cache with retry
|
||||||
echo "Pushing $scheme to cache..."
|
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
|
# 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 \
|
--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 "✓ Completed $scheme"
|
||||||
echo ""
|
echo ""
|
||||||
|
|||||||
@@ -60,17 +60,57 @@ jobs:
|
|||||||
|
|
||||||
- name: Push to cache
|
- name: Push to cache
|
||||||
if: steps.check_changes.outputs.changes == 'true'
|
if: steps.check_changes.outputs.changes == 'true'
|
||||||
|
continue-on-error: true
|
||||||
run: |
|
run: |
|
||||||
echo "Pushing builds to cache..."
|
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
|
# Push all built derivations to cache
|
||||||
if ls result* 1> /dev/null 2>&1; then
|
if ls result* 1> /dev/null 2>&1; then
|
||||||
attic push servidos:nixos result*
|
retry_attic_push "attic push servidos:nixos result*"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Push the specific system derivations we just built
|
# Push the specific system derivations we just built
|
||||||
nix build .#nixosConfigurations.workstation.config.system.build.toplevel --print-out-paths | attic push servidos:nixos --stdin
|
# Get paths and push with retry (paths are already built, so this is fast)
|
||||||
nix build .#nixosConfigurations.server.config.system.build.toplevel --print-out-paths | attic push servidos:nixos --stdin
|
workstation_path=$(nix build .#nixosConfigurations.workstation.config.system.build.toplevel --print-out-paths 2>/dev/null || echo "")
|
||||||
nix build .#emacs-vm --print-out-paths | attic push servidos:nixos --stdin
|
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
|
- name: Commit updated flake.lock
|
||||||
if: steps.check_changes.outputs.changes == 'true'
|
if: steps.check_changes.outputs.changes == 'true'
|
||||||
|
|||||||
@@ -97,6 +97,7 @@
|
|||||||
];
|
];
|
||||||
substituters = [
|
substituters = [
|
||||||
"${config.my.servers.atticd.url}/nixos"
|
"${config.my.servers.atticd.url}/nixos"
|
||||||
|
"${config.my.servers.atticd.url}/webref"
|
||||||
"https://nix-gaming.cachix.org"
|
"https://nix-gaming.cachix.org"
|
||||||
"https://nixpkgs-python.cachix.org"
|
"https://nixpkgs-python.cachix.org"
|
||||||
"https://devenv.cachix.org"
|
"https://devenv.cachix.org"
|
||||||
@@ -106,7 +107,8 @@
|
|||||||
"https://cosmic.cachix.org"
|
"https://cosmic.cachix.org"
|
||||||
];
|
];
|
||||||
trusted-public-keys = [
|
trusted-public-keys = [
|
||||||
"nixos:kubuWhYCk9/aZp5GDJFAScYgigM66DszP8i1Pzbq0Fc="
|
"nixos:GAnxnubP07Qu+6v8MErkuAa4uGCR4Npmu4acmQrUXpI="
|
||||||
|
"webref:qobPVDWPzbSJ0JIUoLBnWILcc+zbPa16CVAiN8MN6tg="
|
||||||
"nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4="
|
"nix-gaming.cachix.org-1:nbjlureqMbRAxR1gJ/f3hxemL9svXaZF/Ees8vCUUs4="
|
||||||
"nixpkgs-python.cachix.org-1:hxjI7pFxTyuTHn2NkvWCrAUcNZLNS3ZAvfYNuYifcEU="
|
"nixpkgs-python.cachix.org-1:hxjI7pFxTyuTHn2NkvWCrAUcNZLNS3ZAvfYNuYifcEU="
|
||||||
"devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="
|
"devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ let
|
|||||||
schemesFile = import ./schemes.nix {
|
schemesFile = import ./schemes.nix {
|
||||||
inherit pkgs inputs;
|
inherit pkgs inputs;
|
||||||
};
|
};
|
||||||
scheme = schemesFile.schemes.febroary;
|
scheme = schemesFile.schemes.who;
|
||||||
cfg = config.my.stylix;
|
cfg = config.my.stylix;
|
||||||
gnomeEnabled = config.services.desktopManager.gnome.enable;
|
gnomeEnabled = config.services.desktopManager.gnome.enable;
|
||||||
in
|
in
|
||||||
|
|||||||
44
flake.lock
generated
44
flake.lock
generated
@@ -324,24 +324,6 @@
|
|||||||
"type": "github"
|
"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": {
|
"fonts": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
@@ -747,17 +729,16 @@
|
|||||||
},
|
},
|
||||||
"lidarr-mb-gap": {
|
"lidarr-mb-gap": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils_2",
|
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1762882489,
|
"lastModified": 1762901399,
|
||||||
"narHash": "sha256-YFk5GkD7TkIMbcnJzFz+IRN4vH7QJSRphpS3zje3PRU=",
|
"narHash": "sha256-idaZ4k8oynnXUWTLXKPwqbLHdaPmLH1FfjsRWXUM97I=",
|
||||||
"ref": "refs/heads/main",
|
"ref": "refs/heads/main",
|
||||||
"rev": "35e6c7e330868b00e7c8dbc878db776ba01f719d",
|
"rev": "0b86143646f57aa52fab5182352ca0200e824571",
|
||||||
"revCount": 11,
|
"revCount": 18,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://git.lebubu.org/vibe-coded/lidarr-mb-gap.git"
|
"url": "https://git.lebubu.org/vibe-coded/lidarr-mb-gap.git"
|
||||||
},
|
},
|
||||||
@@ -1097,7 +1078,7 @@
|
|||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"nur": "nur_2",
|
"nur": "nur_2",
|
||||||
"systems": "systems_5",
|
"systems": "systems_4",
|
||||||
"tinted-foot": "tinted-foot",
|
"tinted-foot": "tinted-foot",
|
||||||
"tinted-kitty": "tinted-kitty",
|
"tinted-kitty": "tinted-kitty",
|
||||||
"tinted-schemes": "tinted-schemes",
|
"tinted-schemes": "tinted-schemes",
|
||||||
@@ -1195,21 +1176,6 @@
|
|||||||
"type": "github"
|
"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": {
|
"tinted-foot": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
|
|||||||
@@ -45,12 +45,14 @@
|
|||||||
lidarr-mb-gap = lib.mkIf config.my.secureHost {
|
lidarr-mb-gap = lib.mkIf config.my.secureHost {
|
||||||
sopsFile = ../../secrets/env.yaml;
|
sopsFile = ../../secrets/env.yaml;
|
||||||
};
|
};
|
||||||
"private_keys/lidarr-mb-gap" = lib.mkIf config.my.secureHost {
|
"private_keys/lidarr-mb-gap" =
|
||||||
sopsFile = ../../secrets/keys.yaml;
|
lib.mkIf (config.my.secureHost && config.services.lidarr-mb-gap.enable)
|
||||||
owner = config.users.users.lidarr-mb-gap.name;
|
{
|
||||||
inherit (config.users.users.lidarr-mb-gap) group;
|
sopsFile = ../../secrets/keys.yaml;
|
||||||
path = "~/.ssh/ed25519_lidarr-mb-gap";
|
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 = {
|
networking = {
|
||||||
hostName = "server";
|
hostName = "server";
|
||||||
@@ -88,10 +90,11 @@
|
|||||||
lidarr-mb-gap = {
|
lidarr-mb-gap = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = inputs.lidarr-mb-gap.packages.${pkgs.system}.lidarr-mb-gap;
|
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;
|
envFile = config.sops.secrets.lidarr-mb-gap.path;
|
||||||
runInterval = "weekly";
|
runInterval = "weekly";
|
||||||
syncToVPS = false;
|
syncToVPS = true;
|
||||||
|
vpsPort = 3456;
|
||||||
vpsHost = "lidarr-reports@${config.my.ips.vps}";
|
vpsHost = "lidarr-reports@${config.my.ips.vps}";
|
||||||
vpsPath = "/var/www/html/lidarr-mb-gap";
|
vpsPath = "/var/www/html/lidarr-mb-gap";
|
||||||
sshKeyFile = config.sops.secrets."private_keys/lidarr-mb-gap".path;
|
sshKeyFile = config.sops.secrets."private_keys/lidarr-mb-gap".path;
|
||||||
|
|||||||
@@ -88,7 +88,8 @@ in
|
|||||||
gnome-epub-thumbnailer
|
gnome-epub-thumbnailer
|
||||||
podman-compose
|
podman-compose
|
||||||
scrcpy
|
scrcpy
|
||||||
mpv
|
vlc
|
||||||
|
syncplay
|
||||||
;
|
;
|
||||||
inherit (pkgs.libheif) out;
|
inherit (pkgs.libheif) out;
|
||||||
};
|
};
|
||||||
@@ -111,7 +112,6 @@ in
|
|||||||
enableVirtualCamera = true;
|
enableVirtualCamera = true;
|
||||||
plugins = builtins.attrValues {
|
plugins = builtins.attrValues {
|
||||||
inherit (pkgs.obs-studio-plugins)
|
inherit (pkgs.obs-studio-plugins)
|
||||||
droidcam-obs
|
|
||||||
obs-vkcapture
|
obs-vkcapture
|
||||||
obs-vaapi
|
obs-vaapi
|
||||||
obs-tuna
|
obs-tuna
|
||||||
|
|||||||
@@ -17,7 +17,10 @@ in
|
|||||||
settings = {
|
settings = {
|
||||||
listen = "[::]:${toString cfg.port}";
|
listen = "[::]:${toString cfg.port}";
|
||||||
jwt = { };
|
jwt = { };
|
||||||
database.heartbeat = true; # 5 minutes
|
database = {
|
||||||
|
heartbeat = true;
|
||||||
|
url = "postgresql:///${cfg.name}?host=${config.my.postgresSocket}";
|
||||||
|
};
|
||||||
chunking = {
|
chunking = {
|
||||||
nar-size-threshold = 64 * 1024; # 64 KiB
|
nar-size-threshold = 64 * 1024; # 64 KiB
|
||||||
min-size = 16 * 1024; # 16 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;
|
options.my.servers.lidarr = setup.mkOptions "lidarr" "music" 8686;
|
||||||
config.virtualisation.oci-containers.containers.lidarr = lib.mkIf cfg.enable {
|
config.virtualisation.oci-containers.containers.lidarr = lib.mkIf cfg.enable {
|
||||||
autoStart = true;
|
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}" ];
|
ports = [ "${toString cfg.port}:${toString cfg.port}" ];
|
||||||
environment = {
|
environment = {
|
||||||
TZ = config.my.timeZone;
|
TZ = config.my.timeZone;
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ let
|
|||||||
"readeck"
|
"readeck"
|
||||||
"sonarqube"
|
"sonarqube"
|
||||||
"gitea"
|
"gitea"
|
||||||
|
"atticd"
|
||||||
];
|
];
|
||||||
in
|
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]
|
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]
|
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]
|
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:
|
sops:
|
||||||
age:
|
age:
|
||||||
- recipient: age1lufn6t35gs4wgevyr2gud4eec7lvkn7pgnnv4tja64ww3hef7gqq8fas37
|
- recipient: age1lufn6t35gs4wgevyr2gud4eec7lvkn7pgnnv4tja64ww3hef7gqq8fas37
|
||||||
@@ -49,7 +49,7 @@ sops:
|
|||||||
QXRUYWtGcWZCVW11U3VYRktuUjlCbDgKsTK4WhUza/JuoDTU3uATa6fq/8eYzxtb
|
QXRUYWtGcWZCVW11U3VYRktuUjlCbDgKsTK4WhUza/JuoDTU3uATa6fq/8eYzxtb
|
||||||
9BUK1ddzx9Mghea9XBMS17YGtGmW800OsLBomb3SINnOFvejcnKf8Q==
|
9BUK1ddzx9Mghea9XBMS17YGtGmW800OsLBomb3SINnOFvejcnKf8Q==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2025-11-11T17:47:23Z"
|
lastmodified: "2025-11-11T23:18:34Z"
|
||||||
mac: ENC[AES256_GCM,data:9wWhkUbU/bNV6erUpQhwza47XLbdC7RIfw1J+bFdKW1DLjokeYr1HacZVw+O3bGDFZqKs9JomfnYLxeZay0VXKLb/e61yETi2lx3/BV3Ghp3Tsglf3Eoy4QokvErqDi3GoT7Hvc2bArq4hlYuZI5yjUU+8xvwMopU9MS1C1Muuw=,iv:WfnngiGiY8pnvZHiGueCkZtnGbF42L7ut+tCs8BMskA=,tag:x81EkcXBIk1bylD/QqXzPg==,type:str]
|
mac: ENC[AES256_GCM,data:i3U364pjZB5Y61Wf7ETbXhNWyfH1gw0oyPcNyT+nCIJmePh8JWiP9hnHmZfLS1BKkI2powQdezbz9R0XDvU7g2SkV8EsWmn/h3rFwbopUZbeRQ2SCoX7LGFez74l1oTPQjL8zWJVdrUtfAFgbZKSEWuz7rsDieKBVhIJwWaeePY=,iv:N4z+X3eD6jH+zQfY24qec+U6wkfhLGPm4MzY8T2Km/A=,tag:yluW5YSKMZ4Kk+wcXbkj8Q==,type:str]
|
||||||
unencrypted_suffix: _unencrypted
|
unencrypted_suffix: _unencrypted
|
||||||
version: 3.11.0
|
version: 3.11.0
|
||||||
|
|||||||
Reference in New Issue
Block a user