From 8b58615dc345abfd7aa194eb4138e8302bd677c7 Mon Sep 17 00:00:00 2001
From: b3yond <b3yond@riseup.net>
Date: Sun, 7 Jul 2019 19:20:05 +0200
Subject: [PATCH] Created a borgbackup script for deployments with nginx &
 uwsgi

---
 README.md            | 11 +++++++++++
 deployment/backup.sh | 21 +++++++++++++++++++++
 2 files changed, 32 insertions(+)
 create mode 100644 deployment/backup.sh

diff --git a/README.md b/README.md
index 0a68e78..60554d0 100644
--- a/README.md
+++ b/README.md
@@ -178,6 +178,17 @@ sudo systemctl daemon-reload
 sudo systemctl start ticketfrei-backend.service
 ```
 
+### Backup
+
+For automated backups, you need to backup these files:
+
+* `/var/ticketfrei/db.sqlite`
+* `/srv/ticketfrei/config.toml`
+* `/etc/aliases`
+
+You can find an example how to do this with borgbackup in the deployment
+folder. Adjust it to your needs.
+
 ### Logs
 
 There are several logfiles which you can look at:
diff --git a/deployment/backup.sh b/deployment/backup.sh
new file mode 100644
index 0000000..e547dbc
--- /dev/null
+++ b/deployment/backup.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+# This is a script to backup the necessary components for a deployment with
+# nginx and uwsgi with borgbackup.
+
+# stop the services
+service ticketfrei-web stop
+service ticketfrei-backend stop
+
+# export repository passphrase
+export BORG_PASSPHRASE='password'
+
+# create backup
+borg create --stats --progress backup:repositories-borg/ticketfrei::'backup{now:%Y%m%d}' /etc/aliases /var/ticketfrei/db.sqlite /srv/ticketfrei/config.toml
+
+# restart the service
+service ticketfrei-backend start
+service ticketfrei-web start
+
+# prune outdated backups to save storage
+borg prune --keep-daily=7 --keep-weekly=4 backup:repositories-borg/ticketfrei
+