123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #!/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
|