src.nth.io/

summaryrefslogtreecommitdiff
path: root/pleroma/aws-s3-backup
diff options
context:
space:
mode:
Diffstat (limited to 'pleroma/aws-s3-backup')
-rw-r--r--pleroma/aws-s3-backup/files/pleroma-s3-backup.sh26
-rw-r--r--pleroma/aws-s3-backup/files/[email protected]9
-rw-r--r--pleroma/aws-s3-backup/meta/main.yaml4
-rw-r--r--pleroma/aws-s3-backup/tasks/main.yaml20
4 files changed, 59 insertions, 0 deletions
diff --git a/pleroma/aws-s3-backup/files/pleroma-s3-backup.sh b/pleroma/aws-s3-backup/files/pleroma-s3-backup.sh
new file mode 100644
index 0000000..7c1d6d3
--- /dev/null
+++ b/pleroma/aws-s3-backup/files/pleroma-s3-backup.sh
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+INSTANCE=$1
+DATE=`date --iso-8601`
+
+BUCKET="pleroma-${INSTANCE//_/-}-backup"
+BACKUP_DIR="/tmp/s3-backup/$BUCKET"
+BACKUP_TAR="/tmp/s3-backup/$BUCKET-$DATE.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 s3 cp $BACKUP_TAR "s3://$BUCKET/"
diff --git a/pleroma/aws-s3-backup/files/[email protected] b/pleroma/aws-s3-backup/files/[email protected]
new file mode 100644
index 0000000..a64cae3
--- /dev/null
+++ b/pleroma/aws-s3-backup/files/[email protected]
@@ -0,0 +1,9 @@
+[Unit]
+Description=Pleroma s3 backup for instance "%I"
+
+[Service]
+Type=oneshot
+ExecStart=/usr/local/bin/pleroma-s3-backup.sh %i
+
+[Install]
+WantedBy=aws-s3-backup.target
diff --git a/pleroma/aws-s3-backup/meta/main.yaml b/pleroma/aws-s3-backup/meta/main.yaml
new file mode 100644
index 0000000..f9c6f63
--- /dev/null
+++ b/pleroma/aws-s3-backup/meta/main.yaml
@@ -0,0 +1,4 @@
+---
+
+dependencies:
+ - aws-s3-backup
diff --git a/pleroma/aws-s3-backup/tasks/main.yaml b/pleroma/aws-s3-backup/tasks/main.yaml
new file mode 100644
index 0000000..12eaded
--- /dev/null
+++ b/pleroma/aws-s3-backup/tasks/main.yaml
@@ -0,0 +1,20 @@
+---
+
+- name: create s3 backup shell script
+ become: yes
+ copy:
+ src: "pleroma-s3-backup.sh"
+ dest: "/usr/local/bin/pleroma-s3-backup.sh"
+ mode: "0755"
+
+- name: configure s3 backup systemd service
+ become: yes
+ copy:
+ dest: "/lib/systemd/system/[email protected]"
+ mode: "0644"
+ notify: restart pleroma instance s3 backup
+
+- name: ensure s3 backup is enabled
+ become: yes
+ systemd: name="pleroma-s3-backup@{{pleroma_instance}}.service" enabled="yes"