-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbackup.sh
executable file
·66 lines (45 loc) · 1.83 KB
/
backup.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/bin/bash
set -e
root_dir=/home/ubuntu/tools
cd $root_dir/
# we need the following vars from this .env file:
# - AWS_BACKUP_BUCKET_NAME
# - AWS_ACCESS_KEY_ID
# - AWS_SECRET_ACCESS_KEY
# - BACKUP_FILE_AGE_PUBKEY
source backup.env
# really not sure what's wrong with aws cli not getting env vars the normal way
wd=$(mktemp -d)
pushd $wd
backup_dir=backup-$(date +%s)
echo "Backup name is $backup_dir"
mkdir $backup_dir/
echo "Backing up config"
mkdir $backup_dir/config
cp $root_dir/docker-compose.yml $root_dir/backup.sh $root_dir/*.env $backup_dir/config/
echo "Backing up wiki"
docker exec -i tools-wiki_db-1 pg_dumpall -U wikijs > $backup_dir/wikijs.sql
echo "Backing up weblate"
docker exec -i tools-weblate_db-1 pg_dumpall -U weblate > $backup_dir/weblate.sql
# cp -r $root_dir/data/weblate/data $backup_dir/weblate-data/
echo "Backing up labelstudio"
docker exec -i tools-labelstudio_db-1 pg_dumpall -U labelstudio > $backup_dir/labelstudio.sql
cp -r $root_dir/data/labelstudio/data $backup_dir/labelstudio-data/
echo "Backing up listmonk"
docker exec -i tools-listmonk_db-1 pg_dumpall -U listmonk > $backup_dir/listmonk.sql
echo "Backing up chatwoot"
docker exec -i tools-chatwoot_postgres-1 pg_dumpall -U chatwoot > $backup_dir/chatwoot.sql
cp -r $root_dir/data/chatwoot/storage $backup_dir/chatwoot-data/
echo "Backing up victoriametrics"
cp -r $root_dir/data/victoriametrics $backup_dir/victoriametrics-data/
echo "Backing up grafana"
cp -r $root_dir/data/grafana $backup_dir/grafana-data/
echo "Archiving, compressing, encrypting, and uploading backup to AWS"
tar cvf - $backup_dir/ \
| zstd -11 \
| age -r $BACKUP_FILE_AGE_PUBKEY \
| AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY \
aws s3 cp - s3://$AWS_BACKUP_BUCKET_NAME/tools2/$backup_dir.tar.zstd.age \
&& echo "Done."
popd
rm -rf $wd