Back to Templates

Automatically update n8n version

Created by

Created by: Weilun || lun

Weilun

Last update

Last update 23 days ago

Categories

Share


🔄 n8n Workflow: Check and Update n8n Version

This workflow automatically checks if the local n8n version is outdated and, if so, creates a file to signal an update is needed.


🖥️ Working Environment

  • Operating System: Ubuntu 24.04
  • n8n Installation: Docker container

📁 Project Directory Structure

n8n/
├── check_update.txt
├── check-update.sh
├── compose.yml
├── update_n8n.cron


🧾 File Descriptions

check_update.txt

Contains a single word:

  • true: Update is needed
  • false: No update required

check-update.sh

#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

if grep -q "true" /home/sysadmin/n8n/check_update.txt; then
    # Place your update logic here
    echo "Update needed - please insert update logic"
    echo true > /home/sysadmin/n8n/check_update.txt
fi

Purpose:

  • Checks the contents of check_update.txt
  • If it contains true, executes update logic (currently a placeholder)
  • Resets check_update.txt to true

update_n8n.cron

SHELL=/bin/sh
10 5 * * * /bin/sh /home/sysadmin/n8n/check-update.sh

Purpose:

  • Runs the check-update.sh script daily at 5:10 AM
  • Uses /bin/sh as the shell environment

🧩 n8n Workflow Breakdown

1. Schedule Trigger 🕓

  • Purpose: Triggers the workflow every day at 5:00 AM
  • Node Type: Schedule Trigger

2. Get the latest n8n version 🌐

  • Purpose: Fetches the latest version of n8n from npm
  • Endpoint: https://registry.npmjs.org/n8n/latest
  • Node Type: HTTP Request

3. Get Local n8n version 🖥️

  • Purpose: Retrieves the currently running n8n version
  • Endpoint: http://192.168.100.18:5678/rest/settings
  • Node Type: HTTP Request

4. If 🔍

  • Purpose: Compares the local and latest versions
  • Condition: If not equal → update is needed

5. SSH1 🧾

  • Purpose: Writes the result to a file on the host via SSH
  • Logic:
echo "{{ $('If').params.conditions ? 'false' : 'true' }}" > check_update.txt

Effect: Updates check_update.txt with "true" if an update is needed, "false" otherwise.

🛠️ Setting up Crontab on Ubuntu

1. Register the cron job with:

crontab update_n8n.cron

2. Verify that your cron job is registered:

crontab -l

✅ Result

  • 5:00 AM – n8n workflow checks versions and writes result to check_update.txt
  • 5:10 AM – Cron runs check-update.sh to respond to update flag