diff options
Diffstat (limited to 'dendrite/aws-s3-backup/files')
| -rw-r--r-- | dendrite/aws-s3-backup/files/pleroma-lifecycle.json (renamed from dendrite/aws-s3-backup/files/writefreely-s3-backup-lifecycle.json) | 0 | ||||
| -rw-r--r-- | dendrite/aws-s3-backup/files/pleroma-s3-backup-lifecycle.json | 12 | ||||
| -rw-r--r-- | dendrite/aws-s3-backup/files/pleroma-s3-backup.sh | 30 | ||||
| -rw-r--r-- | dendrite/aws-s3-backup/files/[email protected] | 9 | ||||
| -rw-r--r-- | dendrite/aws-s3-backup/files/writefreely-s3-backup.sh | 13 |
5 files changed, 51 insertions, 13 deletions
diff --git a/dendrite/aws-s3-backup/files/writefreely-s3-backup-lifecycle.json b/dendrite/aws-s3-backup/files/pleroma-lifecycle.json index 44036c0..44036c0 100644 --- a/dendrite/aws-s3-backup/files/writefreely-s3-backup-lifecycle.json +++ b/dendrite/aws-s3-backup/files/pleroma-lifecycle.json diff --git a/dendrite/aws-s3-backup/files/pleroma-s3-backup-lifecycle.json b/dendrite/aws-s3-backup/files/pleroma-s3-backup-lifecycle.json new file mode 100644 index 0000000..fa75f06 --- /dev/null +++ b/dendrite/aws-s3-backup/files/pleroma-s3-backup-lifecycle.json @@ -0,0 +1,12 @@ +{ + "Rules": [ + { + "ID": "pleroma-expiration", + "Filter": {}, + "Status": "Enabled", + "NoncurrentVersionExpiration": { + "NoncurrentDays": 30 + } + } + ] +} diff --git a/dendrite/aws-s3-backup/files/pleroma-s3-backup.sh b/dendrite/aws-s3-backup/files/pleroma-s3-backup.sh new file mode 100644 index 0000000..273b814 --- /dev/null +++ b/dendrite/aws-s3-backup/files/pleroma-s3-backup.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +INSTANCE=$1 + +BUCKET="pleroma-${INSTANCE//_/-}-backup" +BACKUP_DIR="/tmp/s3-backup/$BUCKET" +BACKUP_TAR="/tmp/s3-backup/$BUCKET.tgz" + +DB_NAME="pleroma_$INSTANCE" +CONFIG="/etc/pleroma/$INSTANCE.config.exs" + +UPLOADS_DIR=`grep uploads $CONFIG | cut -d '"' -f 2` +STATIC_DIR=`grep static $CONFIG | cut -d '"' -f 2` + +mkdir -m 775 -p "$BACKUP_DIR/" +chown root:postgres "$BACKUP_DIR/" + +su postgres -c "pg_dump -d $DB_NAME --format=custom -f $BACKUP_DIR/$DB_NAME.pgdump" +cp $CONFIG "$BACKUP_DIR/" +cp -r $UPLOADS_DIR "$BACKUP_DIR/" +cp -r $STATIC_DIR "$BACKUP_DIR/" + +tar -zc -f $BACKUP_TAR $BACKUP_DIR +aws s3 mb "s3://$BUCKET/" +aws s3api put-bucket-versioning --bucket "$BUCKET" --versioning-configuration Status=Enabled +aws s3api put-bucket-lifecycle-configuration --bucket "$BUCKET" --lifecycle-configuration "file:///usr/local/share/pleroma-s3-backup-lifecycle.json" +aws s3 cp $BACKUP_TAR "s3://$BUCKET/" + +rm $BACKUP_TAR +rm -r $BACKUP_DIR diff --git a/dendrite/aws-s3-backup/files/[email protected] b/dendrite/aws-s3-backup/files/[email protected] new file mode 100644 index 0000000..9b1ae47 --- /dev/null +++ b/dendrite/aws-s3-backup/files/[email protected] @@ -0,0 +1,9 @@ +[Unit] +Description=Dendrite s3 backup for instance "%I" + +[Service] +Type=oneshot +ExecStart=/usr/local/bin/dendrite-s3-backup.sh %i + +[Install] +WantedBy=aws-s3-backup.target diff --git a/dendrite/aws-s3-backup/files/writefreely-s3-backup.sh b/dendrite/aws-s3-backup/files/writefreely-s3-backup.sh deleted file mode 100644 index 402d6fe..0000000 --- a/dendrite/aws-s3-backup/files/writefreely-s3-backup.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash - -BUCKET=$1 -BACKUP_DIR=$2 -BACKUP_TAR="/tmp/$BUCKET.tgz" - -tar -zc -f $BACKUP_TAR $BACKUP_DIR -aws s3 mb "s3://$BUCKET/" -aws s3api put-bucket-versioning --bucket "$BUCKET" --versioning-configuration Status=Enabled -aws s3api put-bucket-lifecycle-configuration --bucket "$BUCKET" --lifecycle-configuration "file:///usr/local/share/writefreely-s3-backup-lifecycle.json" -aws s3 cp $BACKUP_TAR "s3://$BUCKET/" - -rm $BACKUP_TAR |
