Compare commits

...

2 commits

4 changed files with 52 additions and 1 deletions

View file

@ -26,6 +26,9 @@
# Enable Flatpak support # Enable Flatpak support
services.flatpak.enable = true; services.flatpak.enable = true;
# KDE Wallet PAM integration for unlocking the default wallet on login
security.pam.services."jahanson".kwallet.enable = true;
# System settings and services. # System settings and services.
mySystem = { mySystem = {
purpose = "Development"; purpose = "Development";
@ -36,6 +39,7 @@
# KDE # KDE
de.kde.enable = true; de.kde.enable = true;
# System config # System config
system = { system = {
motd.networkInterfaces = [ "wlp1s0" ]; motd.networkInterfaces = [ "wlp1s0" ];

View file

@ -1,5 +1,5 @@
{ pkgs, ... }: { { pkgs, ... }: {
imports = [ ]; imports = [ ./resources/prune-backup.nix ];
networking.hostId = "cdab8473"; networking.hostId = "cdab8473";
networking.hostName = "varda"; # Define your hostname. networking.hostName = "varda"; # Define your hostname.
@ -22,6 +22,7 @@
swapDevices = [ ]; swapDevices = [ ];
# System settings and services. # System settings and services.
mySystem = { mySystem = {
purpose = "Production"; purpose = "Production";

View file

@ -0,0 +1,24 @@
{ pkgs, ... }:
let
cleanupScript = pkgs.writeScript "cleanup-backups.sh" (builtins.readFile ./prune-backups.sh);
in
{
systemd.timers.cleanup-backups = {
wantedBy = [ "timers.target" ];
timerConfig = {
OnCalendar = "daily";
Persistent = true;
};
};
systemd.services.cleanup-backups = {
script = "${cleanupScript}";
serviceConfig = {
Type = "oneshot";
User = "forgejo";
StandardOutput = "journal+console";
StandardError = "journal+console";
};
};
}

View file

@ -0,0 +1,22 @@
#!/usr/bin/env bash
# Set the backup directory
BACKUP_DIR="/var/lib/forgejo/dump"
# Keep the 3 most recent backups
KEEP_NUM=3
echo "Starting backup cleanup process..."
echo "Keeping the $KEEP_NUM most recent backups in $BACKUP_DIR"
# Find all backup files, sort by modification time (newest first),
# skip the first 3, and delete the rest
find "$BACKUP_DIR" -type f -name "forgejo-dump-*" -print0 |
sort -z -t_ -k2 -r |
tail -z -n +$((KEEP_NUM + 1)) |
while IFS= read -r -d '' file; do
echo "Deleting: $file"
rm -f "$file"
done
echo "Cleanup complete. Deleted all but the $KEEP_NUM most recent backups."