add backup job
This commit is contained in:
parent
6bb66f3e21
commit
aff2d5ab64
2 changed files with 42 additions and 0 deletions
41
backup.nix
Normal file
41
backup.nix
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
user = "misskey-backup";
|
||||||
|
group = user;
|
||||||
|
|
||||||
|
# shell script file to be sourced. must have values "MISSKEY_BACKUP_BUCKET" "MISSKEY_BACKUP_PREFIX" and "S3CFG"
|
||||||
|
backupConfigFile = "/etc/misskey-backup";
|
||||||
|
backupScript = pkgs.writeShellApplication {
|
||||||
|
name = "misskey-backup";
|
||||||
|
|
||||||
|
runtimeInputs = with pkgs; [
|
||||||
|
gzip
|
||||||
|
config.services.postgresql.package
|
||||||
|
s3cmd
|
||||||
|
coreutils
|
||||||
|
];
|
||||||
|
|
||||||
|
extraShellCheckFlags = [ "-x" "/etc/misskey-backup" ];
|
||||||
|
|
||||||
|
text = ''
|
||||||
|
source "${backupConfigFile}"
|
||||||
|
pg_dump misskey | gzip | s3cmd put --config "$S3CFG" - "s3://$MISSKEY_BACKUP_BUCKET/$MISSKEY_BACKUP_PREFIX/misskey-pgdump-$(date --iso-8601).sql.gz"
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
users.users."${user}" = {
|
||||||
|
isSystemUser = true;
|
||||||
|
inherit group;
|
||||||
|
};
|
||||||
|
users.groups."${group}" = { };
|
||||||
|
services.postgresql.ensureUsers = [{ name = user; }];
|
||||||
|
|
||||||
|
services.cron = {
|
||||||
|
enable = true;
|
||||||
|
systemCronJobs = [
|
||||||
|
# run every monday at ass in the morning, EST"
|
||||||
|
"0 8 0 0 1 ${user} ${backupScript}"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
|
@ -6,6 +6,7 @@
|
||||||
./ogdo.nix
|
./ogdo.nix
|
||||||
./postfix.nix
|
./postfix.nix
|
||||||
./nebula.nix
|
./nebula.nix
|
||||||
|
./backup.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
nix.settings = {
|
nix.settings = {
|
||||||
|
|
Loading…
Reference in a new issue