How to Update Your Self-Hosted n8n Instance on Contabo

Running n8n on your own server gives you complete control over your workflow automation. But keeping it current means you actually get to use the new features and security patches n8n releases. Updates used to involve complex manual processes. With the Contabo 1-click installation in Docker, updating n8n takes about five minutes.

This guide walks you through every step of updating your self-hosted n8n instance. We’ll cover connecting to your server, backing up your data, pulling the latest version, and verifying everything works correctly. The whole process requires minimal technical knowledge beyond basic SSH usage.

Before You Start: What You’ll Need

You’ll already have root access to your Contabo server running the n8n 1-click installation. The setup uses Docker Compose with Caddy as a reverse proxy and Let’s Encrypt for SSL certificates. All these components live at /opt/n8n/ on your server.

Plan this update during a low-traffic period. Your n8n instance will be offline for 1-2 minutes while containers restart. Any workflows currently executing will stop and need to resume after the update completes.

Connect to Your Server

First, you’ll need your server’s IP address. Find it in your Customer Control Panel under Servers & Hosting > VPS or VDS. Find your instance to see the IP address listed in the details.

For Mac and Linux Users

Open Terminal and run:

ssh root@your-ip-address

Replace your-ip-address with your actual IP address (example: 203.0.113.45).

When prompted, enter your password (the password you set when ordering the server).

You can also log in using your domain name. Simply hover over the n8n icon for your instance and copy the information next to “Username:”, then run an SSH command like the below:

ssh [email protected]

For Windows Users

Option 1: Using PowerShell (Windows 10/11)

  1. Open PowerShell (search for “PowerShell” in Start menu)
  2. Run:
ssh root@your-ip-address
  1. Enter your password when prompted

Option 2: Using PuTTY

  1. Download and install PuTTY from putty.org
  2. Open PuTTY
  3. In the “Host Name” field, enter your IP address
  4. Port: 22 (default)
  5. Connection type: SSH
  6. Click “Open”
  7. Enter username: root or admin (whichever you specified during configuration)
  8. Enter your password when prompted

You’ll see a command prompt like this once connected:

root@vps-xxxxx:~#

This confirms you’re connected to your Ubuntu server with root access.

The Contabo 1-click installation places all n8n files in /opt/n8n/. Navigate there:

cd /opt/n8n

Your command prompt will change to:

root@vps-xxxxx:/opt/n8n#

Before updating, consider backing up your n8n data. You have two options.

Use Contabo’s Auto Backup Add-On

If you’ve enabled the Auto Backup Add-On for your VPS, your entire server (including all n8n workflows and data) is already being backed up daily. No additional action needed.

Manual Workflow Export

If you don’t have automated backups or another backup solution enabled, you can manually export your workflows through the n8n web interface:

  1. Open your n8n instance in a web browser
  2. Log in to n8n
  3. In the workflow editor, click the three dots (⋯) in the top right corner
  4. Select Download
  5. Save the JSON file to your computer
  6. Repeat for each workflow you want to back up

This creates a backup you can restore if anything goes wrong during the update.

Pull the Latest n8n Image

Download the latest version of n8n. Run:

docker compose pull

This downloads the latest n8n version from Docker Hub. Your running n8n instance isn’t affected yet – this just prepares the new version.

You’ll see output showing the download progress:

[+] Pulling n8n
✔ latest Pulling from n8nio/n8n
✔ [layer info] Pull complete
...
Status: Downloaded newer image for n8nio/n8n:latest

Download time depends on your connection speed but typically takes 1-3 minutes.

Stop the Current Containers

Now stop the running n8n containers before starting them with the new version.

Run:

docker compose down

This stops and removes the n8n and Caddy containers. Your workflows and data remain safe in the Docker volumes.

You’ll see output like this:

[+] Running 2/2
✔ Container n8n Removed
✔ Container caddy Removed
✔ Network n8n_default Removed

Your n8n instance will be temporarily offline during this step. Any running workflows will stop. This is why planning your update during a maintenance window matters if you have workflows running constantly.

Start the Updated Containers

Now start n8n with the new version you just downloaded.

Run:

docker compose up -d

This starts the n8n and Caddy containers using the latest image. The -d flag runs them in detached mode (background), so they keep running after you close SSH.

You’ll see:

[+] Running 2/2
✔ Container caddy Started
✔ Container n8n Started

n8n takes about 30-60 seconds to fully initialize and become accessible through your browser.

Verify the Update

Check that the update was successful and n8n is running properly.

First, verify the containers are running:

docker ps

You should see both n8n and caddy containers listed with status “Up”:

CONTAINER ID   IMAGE           STATUS         PORTS
abc123def456 n8nio/n8n Up 2 minutes 0.0.0.0:5678->5678/tcp
def789ghi012 caddy Up 2 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp

Next, verify n8n is accessible:

  1. Open your n8n URL in a web browser (the same URL you normally use)
  2. Log in to your n8n instance
  3. Click on your user icon (bottom left corner)
  4. Click Settings
  5. Check the version number displayed at the bottom left

The version number should be newer than what you had before the update. Your workflows and credentials should all be intact and working normally.

Clean Up Old Images (Optional)

After updating, old Docker images remain on your server taking up disk space. Remove them to free up storage.

Run:

docker image prune -a

You’ll see a warning:

WARNING! This will remove all images without at least one container associated to them.
Are you sure you want to continue? [y/N]

Type y and press Enter to confirm.

This removes unused Docker images, including the old n8n version you just replaced. It can free up several hundred MB of disk space.

You’ll see:

Deleted Images:
untagged: n8nio/n8n@sha256:abc123...
deleted: sha256:def456...
...
Total reclaimed space: 450MB

This only removes unused images. Your running n8n containers and all data remain untouched.

When to Update

n8n releases updates regularly. Major versions bring new features and nodes. Minor versions fix bugs and patch security issues. You don’t need to update immediately when a new version drops, but checking monthly makes sense.

Security patches warrant faster updates. If n8n announces a vulnerability fix, plan an update within a few days. The update process we just walked through works the same regardless of whether you’re jumping several versions or updating to the version released yesterday.

Troubleshooting Common Issues

Most updates complete without problems. Occasionally something goes wrong.

If n8n doesn’t start after updating, first check the Docker containers to see if they are all up and running or if there are any issues using the below command:

docker compose ps

If this doesn’t reveal any problems, check the container logs:

docker compose logs n8n

Look for error messages at the end of the output. Common issues include database migration problems or configuration conflicts.

If workflows don’t execute after updating, check that database connections still work. Sometimes credential formats change between major versions. Test a simple workflow first before assuming everything’s broken.

If the web interface won’t load, verify Caddy is running and certificates are valid:

docker compose logs caddy

Certificate renewal issues occasionally occur. Restarting Caddy usually fixes them:

docker compose restart caddy

Automating Updates with Watchtower (Optional)

If you want n8n to update automatically without manual intervention, Watchtower can handle that. It’s a Docker container that monitors your other containers and updates them when new images are available.

Watchtower checks for updates on a schedule, pulls the latest image, stops your current container, and starts the new version. All automatically.

To add Watchtower to your n8n setup, you’ll need to edit the docker-compose.yml file at /opt/n8n/:

nano /opt/n8n/docker-compose.yml

Add this Watchtower service to your existing docker-compose.yml:

watchtower:
image: containrrr/watchtower
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: --cleanup --interval 86400

The --interval 86400 flag tells Watchtower to check for updates every 24 hours. The --cleanup flag removes old images after updating.

Save the file and restart your services:

docker compose up -d

Watchtower now runs alongside n8n and checks daily for updates.

Important considerations: Automatic updates mean you won’t review release notes before updating. Breaking changes or new bugs could affect your workflows without warning. For production environments, manual updates give you more control. For development or personal instances where staying current matters more than stability, Watchtower works well.

You can also run Watchtower in monitor-only mode with email notifications, giving you awareness of available updates without applying them automatically. Check the Watchtower documentation for configuration options that match your needs.

Why Update Regularly

n8n releases include performance improvements, bug fixes, and security patches. New nodes for services appear in updates too. Staying within a few versions of latest makes troubleshooting easier when you need community help.

Check for updates monthly. Security patches warrant faster action – update within a few days when vulnerabilities are announced.

Your workflows stay safe during updates. All data lives in Docker volumes that persist across container restarts. The new version picks up exactly where the old one left off. All this means that you can (and should) update your n8n instance regularly by following this simple guide.

Remember, if you have any server-level issues, we’re always here to help. Start with the Contabo documentation. For n8n-specific problems, you’ll find plenty of answers in the n8n documentation and the active community forums.

Scroll to Top