Compare commits
2 commits
eb182bb1e7
...
643e38cb1f
Author | SHA1 | Date | |
---|---|---|---|
643e38cb1f | |||
00494736d1 |
4 changed files with 52 additions and 1 deletions
|
@ -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" ];
|
||||||
|
|
|
@ -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";
|
||||||
|
|
24
nixos/hosts/varda/resources/prune-backup.nix
Normal file
24
nixos/hosts/varda/resources/prune-backup.nix
Normal 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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
22
nixos/hosts/varda/resources/prune-backups.sh
Normal file
22
nixos/hosts/varda/resources/prune-backups.sh
Normal 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."
|
Loading…
Reference in a new issue