Compare commits
No commits in common. "aa193bf4232b827eeed32670e2469b5212ee7a91" and "67c1f553fb618efaf87de3297e581f084d7f4895" have entirely different histories.
aa193bf423
...
67c1f553fb
1 changed files with 7 additions and 29 deletions
36
backup.nix
36
backup.nix
|
@ -10,8 +10,9 @@ let
|
||||||
user = "misskey-backup";
|
user = "misskey-backup";
|
||||||
group = user;
|
group = user;
|
||||||
|
|
||||||
|
# shell script file to be sourced. must have values "MISSKEY_BACKUP_BUCKET" "MISSKEY_BACKUP_PREFIX" and "S3CFG"
|
||||||
|
# $S3CFG must be a path to a .s3cfg file compatible with s3cmd
|
||||||
backupConfigFile = "/etc/misskey-backup/conf";
|
backupConfigFile = "/etc/misskey-backup/conf";
|
||||||
s3Cfg = "/etc/misskey-backup/s3cfg";
|
|
||||||
backupScript = pkgs.writeShellApplication {
|
backupScript = pkgs.writeShellApplication {
|
||||||
name = "misskey-backup";
|
name = "misskey-backup";
|
||||||
|
|
||||||
|
@ -20,36 +21,13 @@ let
|
||||||
config.services.postgresql.package
|
config.services.postgresql.package
|
||||||
s3cmd
|
s3cmd
|
||||||
coreutils
|
coreutils
|
||||||
age
|
|
||||||
];
|
];
|
||||||
|
|
||||||
|
excludeShellChecks = [ "SC1091" ];
|
||||||
|
|
||||||
text = ''
|
text = ''
|
||||||
configFile="$1"
|
source "${backupConfigFile}"
|
||||||
s3cfg="$2"
|
pg_dump misskey | gzip | s3cmd put --config "$S3CFG" - "s3://$MISSKEY_BACKUP_BUCKET/\$\{MISSKEY_BACKUP_PREFIX}misskey-pgdump-$(date --iso-8601).sql.gz"
|
||||||
|
|
||||||
ageRecipient="age17ckyc69njpryytc63ynn545jswyucg28k5xg3043g3j6q38dxqwq0wzhm2"
|
|
||||||
bucket="$(cat "$configFile" | grep 'bucket=' | sed 's/bucket \?= \?')"
|
|
||||||
prefix="$(cat "$configFile" | grep 'prefix=' | sed 's/prefix \?= \?')"
|
|
||||||
|
|
||||||
s3Dir="s3://$bucket/\$\{prefix}misskey-$(date --iso-8601)"
|
|
||||||
echo "Uploading backups to '$s3Dir'"
|
|
||||||
|
|
||||||
function upload () {
|
|
||||||
name="$1"
|
|
||||||
|
|
||||||
age -r "$ageRecipient" | s3cmd put --config "$s3cfg" - "$s3Dir/$name.age"
|
|
||||||
}
|
|
||||||
|
|
||||||
echo "Uploading config"
|
|
||||||
tar -cz -C /srv/misskey/.config . | upload "config.tar.gz"
|
|
||||||
|
|
||||||
echo "Dumping postgres database..."
|
|
||||||
pg_dump misskey | gzip | upload "pg_dump.sql.gz"
|
|
||||||
|
|
||||||
echo "Uploading redis database..."
|
|
||||||
tar -cz -C /var/lib/redis-misskey . | upload "redis.tar.gz"
|
|
||||||
|
|
||||||
echo "Backup complete to '$s3Dir'"
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
|
@ -64,7 +42,7 @@ in {
|
||||||
enable = true;
|
enable = true;
|
||||||
systemCronJobs = [
|
systemCronJobs = [
|
||||||
# run every monday at ass in the morning, EST"
|
# run every monday at ass in the morning, EST"
|
||||||
"0 8 0 0 1 ${user} ${backupScript} ${backupConfigFile} ${s3Cfg}"
|
"0 8 0 0 1 ${user} ${backupScript}"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue