Skip to Content
DocumentationGuidesAuto update your instance with cron

Auto update your instance with cron

This guide will help you to setup a cron job to automatically update your instance for minor and security updates. It will check periodically if a new minor or security release is available and if so, it will update your instance.

Thanks to DansNewLegs for putting this guide together.

Setup

Create the auto-update script

Create a new script file in a new runtipi/scripts folder called auto-update.sh and paste the following code:

#!/usr/bin/env bash # Function to compare semantic versions compare_major_version() { local major_version1=$(echo $1 | cut -d. -f1) local major_version2=$(echo $2 | cut -d. -f1) if [[ "$major_version1" == "$major_version2" ]]; then return 0 else return 1 fi } # Get Current Version of Runtipi runtipi_path=/path/to/runtipi # Change this to the path of your Runtipi installation. current_version=$(cat $runtipi_path/VERSION) # Get the latest release information from GitHub API latest_release=$(curl -L \ -H "Accept: application/vnd.github+json" \ -H "X-GitHub-Api-Version: 2022-11-28" \ https://api.github.com/repos/runtipi/runtipi/releases/latest) # Extract the tag name from the release information tag_name=$(echo "$latest_release" | grep -o '"tag_name": "[^"]*' | cut -d'"' -f4) # Compare major version numbers compare_major_version "$tag_name" "$current_version" major_version_match=$? # Check if major versions are the same and if the latest release is newer than the current version if [[ $major_version_match -eq 0 ]] && [[ "$tag_name" > "$current_version" ]]; then echo "A new release is available: $tag_name" cd $runtipi_path echo "Backing up current version" if [ ! -d "$runtipi_path/backups" ]; then mkdir -p $runtipi_path/backups fi tar -czvf runtipi-backup-$current_version.tar.gz --exclude=media --exclude=backups * mv runtipi-backup-$current_version.tar.gz $runtipi_path/backups echo "Starting update" $runtipi_path/runtipi-cli update latest else echo "No new release found or major version mismatch" fi

This script will check if a new release is available and if so, it will backup your current installation and update to the latest release.

⚠️

Make sure to change the runtipi_path variable to the path of your Runtipi installation.

Make the script executable

Make the script executable by running the following command:

chmod +x ./auto-update.sh

Create a cron job

Open your crontab file by running the following command:

sudo crontab -e

Add a new line at the bottom of the file with the following content:

0 4 * * * /path/to/runtipi/scripts/auto-update.sh

Or if you want to log the output of the script to a file for debugging purposes:

0 4 * * * /path/to/runtipi/scripts/auto-update.sh >> /path/to/runtipi/scripts/auto-update.log 2>&1

This will run the script every day at 4am. You can change the time to your liking. Crontab Guru is a great tool to help you with creating cron jobs.

Last updated on