Compare commits
2 commits
2ce900c1c8
...
72a4be3c5d
Author | SHA1 | Date | |
---|---|---|---|
72a4be3c5d | |||
aff2d5ab64 |
3 changed files with 48 additions and 6 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
|
||||
./postfix.nix
|
||||
./nebula.nix
|
||||
./backup.nix
|
||||
];
|
||||
|
||||
nix.settings = {
|
||||
|
|
12
flake.lock
generated
12
flake.lock
generated
|
@ -2,11 +2,11 @@
|
|||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1728328465,
|
||||
"narHash": "sha256-a0a0M1TmXMK34y3M0cugsmpJ4FJPT/xsblhpiiX1CXo=",
|
||||
"lastModified": 1734529975,
|
||||
"narHash": "sha256-ze3IJksru9dN0keqUxY0WNf8xrwfs8Ty/z9v/keyBbg=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1bfbbbe5bbf888d675397c66bfdb275d0b99361c",
|
||||
"rev": "72d11d40b9878a67c38f003c240c2d2e1811e72a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
@ -24,11 +24,11 @@
|
|||
},
|
||||
"unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1728241625,
|
||||
"narHash": "sha256-yumd4fBc/hi8a9QgA9IT8vlQuLZ2oqhkJXHPKxH/tRw=",
|
||||
"lastModified": 1734424634,
|
||||
"narHash": "sha256-cHar1vqHOOyC7f1+tVycPoWTfKIaqkoe1Q6TnKzuti4=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c31898adf5a8ed202ce5bea9f347b1c6871f32d1",
|
||||
"rev": "d3c42f187194c26d9f0309a8ecc469d6c878ce33",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue