#!/bin/bash # set vars BACKUP_ROOT_PATH=/tmp DATE=$(date +%Y%m%d-%H%M%S) BACKUP_NAME=akbk-$DATE BACKUP_PATH=$BACKUP_ROOT_PATH/$BACKUP_NAME mkdir -p $BACKUP_PATH chmod a+w $BACKUP_PATH AKKOMA_DB=pleroma AKKOMA_USER=pleroma AKKOMA_SERVICE=pleroma AKKOMA_PATH=/opt/pleroma AKKOMA_STATIC_PATH=/var/lib/pleroma AKKOMA_CONFIG_PATH=/etc/pleroma/config.exs AKKOMA_DBCONFIG_PATH=$BACKUP_PATH/config_db.exs # export config in database cd $AKKOMA_PATH su $AKKOMA_USER -s $SHELL -lc "./bin/pleroma_ctl config dump" > $AKKOMA_DBCONFIG_PATH sed -i 's/\r//g' $AKKOMA_DBCONFIG_PATH # stop akkoma systemctl stop $AKKOMA_SERVICE # backup database/config.exs/static files sudo -Hu postgres pg_dump -d $AKKOMA_DB --format=custom -f $BACKUP_PATH/akkoma.pgdump tar -czpPf - $AKKOMA_STATIC_PATH $AKKOMA_CONFIG_PATH $BACKUP_PATH | gpg -e -r 0 > $BACKUP_PATH.tar.gz.gpg rm -r $BACKUP_PATH # update backend su $AKKOMA_USER -s $SHELL -lc "./bin/pleroma_ctl update --branch stable" && su $AKKOMA_USER -s $SHELL -lc "./bin/pleroma_ctl migrate" # start akkoma systemctl start $AKKOMA_SERVICE # wait for startup sleep 4s # update frontend su $AKKOMA_USER -s $SHELL -lc "./bin/pleroma_ctl frontend install pleroma-fe --ref stable" && su $AKKOMA_USER -s $SHELL -lc "./bin/pleroma_ctl frontend install admin-fe --ref stable" # upload archive rclone copy $BACKUP_PATH.tar.gz.gpg od-1:/upload -vP # clean up rm $BACKUP_PATH.tar.gz.gpg