QJSIQOCXRIHWFNBM3BQ4ILFK4ZQ6ALN5LNWPY6GTYRDBDB5LUV2AC TY2W6K5AZ3G3G4F75XBWWI5A434W3ZVKSBTY55JXAKC62GVPILAAC HWCVAVGHMRTGNMV7WXWM6XB6KMMZQCMZQXWHQV4MPKXZOCAOGXKAC UH6ZL2HFCGZTK5LBAIWXYWP7F7ZO5ZY3OLHVCY6DOCDSH6ATSILQC 2CMYRHKT4X3JQOH23IYC2MFSNZTEEWPFMQK43FDLCGYU4JWCV3FQC HAJVDLU5KQ3CM5P6Z3SOIRHVUTU427EVFA4QHL56MQ3SDRZWK56AC ATF3K2KSKMI6STPROVW54ZGLYM6S3XPB45AKAZODDKIXFR4HWYFAC UBB7TTAXVPQQCOVHACKWXSPV2NPARSHREYJB6J3RSEDZZIXPFGOAC 4B7V7XF3UOGCB2475RAXX7LDLLJ3LRZJIU7KNINGU27FXFSDDXYQC 4HN5LZRSOAODRIM57WBB35C66VO7BR4PGFINLUMTGNHULEK43CEQC V2RX2Y7VB7Y3BHX3ALK4GTCMFJATMLCKIAT4U3XCYZZZIUBIIZ5QC # Backup creation helper with restic to keep constants consistent.# Can be used like so:# `services.restic.backups.<service> = mkResticBackup "<service>" { <rest> }`mkResticBackup =name: rest:{repository = "s3:https://fsn1.your-objectstorage.com/plumjam/backups/${hostName}/${name}";passwordFile = secrets.resticPassword.path;initialize = true;pruneOpts = ["--keep-daily 8""--keep-weekly 5""--keep-monthly 3"];}// rest;
# backup configuration for sqlite database and datasystemd.services.forgejo-backup = {description = "Backup Forgejo data and database";after = [ "forgejo.service" ];script = ''mkdir -p /var/backup/forgejocp -r /var/lib/forgejo /var/backup/forgejo/$(date +%Y%m%d_%H%M%S)# keep only last 7 backupsls -1t /var/backup/forgejo/ | tail -n +8 | xargs -r rm -rf'';serviceConfig = {Type = "oneshot";User = "forgejo";};};systemd.timers.forgejo-backup = {description = "Run Forgejo backup daily";wantedBy = [ "timers.target" ];