DoggyDish.com earns commissions when you purchase through the links below at no additional cost to you.

Upgrading Self Hosted n8n Instance

Naturally you will need to update your n8n self hosted instance. In our previous example we setup our n8n instance using Docker on our VPS (virtual private server). If you’re like me you sweat updates, breaking something, losing progress, or spending hours configuring.

Good news, once you installed n8n, it’s easy to back up, it’s easy to upgrade, and easy to restore.

If you’re like me, I had a painless experience.

Follow these simple 6-Steps to upgrade your n8n instance.

Start by logging into your server using your preferred CLI (command line interface):

				
					ssh root@ipaddress
				
			

STEP 1 – Stop n8n

				
					cd /home/n8nuser/n8n
docker compose down
				
			

This stops:

  • the n8n container

  • the Postgres or SQLite container (if you have one)

  • any other containers in your docker-compose.yml

STEP 2 – Backup your n8n Data Folder

Your live n8n data should be in the /n8n_data/ folder.

Create a compressed backup.

				
					tar -czvf n8n-backup-$(date +%F).tar.gz n8n_data
				
			

Move the backup into your backups/ folder:

				
					mv n8n-backup-*.tar.gz backups/
				
			

Confirm:

				
					ls -lh backups/
				
			

You should now see something like:

				
					n8n-backup-2025-11-29.tar.gz
				
			

STEP 3 – Pull the New n8n Image

In our example we are going to upgrade from 1.105.41.120.0. The same will work for any newer versions (e.g. 1.130.0. 1.15.0, etc.)

To pull the new version:

				
					docker pull n8nio/n8n:1.120.0
				
			

STEP 4 – Update docker-compose.yml

Open docker-compose.yml

				
					vim docker-compose.yml
				
			

Look for the line:

				
					image: n8nio/n8n:<something>
				
			

Update it to version 1.120.0 or the latest version:

				
					image: n8nio/n8n:1.120.0
				
			

VIM Commands:

  • Press “I” to INSERT (edit normally)

  • Press “ESC” to Go Back to Command Interface

  • Type “:wq” to Write + Quit

STEP 5 – Start n8n With the New Version

Run:

				
					docker compose up -d
				
			

Check running containers:

				
					docker compose ps
				
			

Expected result (your result may look slightly different):

				
					NAME        IMAGE               COMMAND                  SERVICE   CREATED          STATUS          PORTS
n8n-n8n-1   n8nio/n8n:1.120.0   "tini -- /docker-ent…"   n8n       40 seconds ago   Up 39 seconds   0.0.0.0:5678->5678/t
				
			

STEP 6 — Verify Version

Run inside the container.

Replace<YOUR_CONTAINER_NAME> with “NAME” of the container. 

				
					docker exec -it <YOUR_CONTAINER_NAME> n8n --version
				
			

Expected output:

				
					1.120.0
				
			

⚠️ If Something Breaks — Roll Back Easily

Stop containers:

				
					docker compose down
				
			

Restore old data:

				
					rm -rf n8n_data
tar -xzvf backups/n8n-backup-YYYY-MM-DD.tar.gz
				
			

Revert docker-compose.yml image to your old version:

				
					image: n8nio/n8n:1.105.4
				
			

Start again:

				
					docker compose up -d
				
			

You’re back to your old version.