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
+