docs/guides/unraid/pages/docker-app-backup.md

3.0 KiB

title description published date tags editor dateCreated
Docker application backup How to backup a Docker application on Unraid true 2023-06-27T07:54:18.672Z linux, server, unraid, backup markdown 2023-06-27T07:54:18.672Z

Docker application backup

This guide will show you how to backup a Docker application on Unraid. Tested on Unraid 6.12.1

Get Started

  • Begin by installing the User Scripts plugin.
  • Now we need to create the script. Go to Settings > User Utilites > User Scripts and click Add New Script.
  • Give the script a name, for example Backup Docker Application.
  • Paste the following into the script:
#!/bin/bash

# --- DO NOT TOUCH ---
now="$(date +"%Y-%m-%d"@%H.%M)"

# --- Variables ---

# The name of the application
applicationName="application_name"

# The name of the backup
backupName="backup-$(date +%Y-%m-%d_%H-%M-%S)"

# Set the path to the application's data directory
applicationData="/mnt/user/appdata/application_name/"

# Set the path to the backup directory
# Example: /mnt/user/Storage/Backups/$applicationName/
backupDirectory=""

# Set Number backups to keep
backupsToKeep=30

# The user of your account
# Example: lee
user=""

# --- Backup Application ---

# Start notification
echo "Backup of $applicationName starting."
/usr/local/emhttp/plugins/dynamix/scripts/notify -s "$applicationName Backup" -d "Backup of $applicationName starting."

# Create backup directory
mkdir -p "$backupDirectory"

cd "$backupDirectory"

# Create the backup tarball
tar -cf "$applicationName-$now".tar "$applicationData"

# Set Permissions
chown "$user:$user" "$applicationName-$now".tar

# Cleanup old backups
for file in $(ls -t); do
  if [[ $count -ge $backupsToKeep ]]; then
    rm -- "$file"
    echo "Deleted old backup: $file"
  fi
  ((count++))
done

# Stop notification
echo "Backup of $applicationName completed!"
/usr/local/emhttp/plugins/dynamix/scripts/notify -s "$applicationName Backup" -d "Backup of $applicationName completed!"
  • You can now test the script by clicking Run Script. If everything is working correctly, you should see a notification in the top right corner of the screen.

  • Now we need to set the script to run on a schedule. Next to Run In Background you will see a dropdown menu. Select how often you want it to run and click Apply.

Restore a backup

  • Delete the application's data directory.
  • Copy the backup to the application's data directory. Move the backup with the following command: (or via the Unraid web interface)
mv <backup_name>.tar /mnt/user/appdata/application_name/
  • To restore a backup, simply extract the tarball and copy the files to the application's data directory. You can extract the tarball by running the following command:
tar -xvf <backup_name>.tar

This command will extract the tarball to the current directory.

Finished

You have now successfully setup a backup script for your Docker application. You can view the backups in the directory you set in the script.