Automatically update n8n version
$20/month : Unlimited workflows
2500 executions/month
THE #1 IN WEB SCRAPING
Scrape any website without limits
HOSTINGER 🎉 Early Black Friday Deal
DISCOUNT 20% Try free
DISCOUNT 20%
Self-hosted n8n
Unlimited workflows - from $4.99/mo
#1 hub for scraping, AI & automation
6000+ actors - $5 credits/mo
🔄 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 neededfalse: 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.txttotrue
update_n8n.cron
SHELL=/bin/sh
10 5 * * * /bin/sh /home/sysadmin/n8n/check-update.sh
Purpose:
- Runs the
check-update.shscript daily at 5:10 AM - Uses
/bin/shas 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.shto respond to update flag