More
Сhoose
Contact us

How to Install and Configure n8n for
Workflow Automation in Your UAE Business

How to Install and Configure n8n for Workflow Automation in Your UAE Business
Category:  Automation Solutions
Date:  
Author:  Joyboy Team
About the author

Joyboy Team

Joyboy's editorial team writes practical guides on software, apps, automation, and digital product delivery.

If you've been using Zapier or Make to automate your business workflows and quietly noticing that the bills are climbing as your automation usage grows — or if you've been putting off automation entirely because the cost felt hard to justify — n8n is worth your serious attention.

n8n is a workflow automation platform that gives technical teams the flexibility of code with the speed of no-code. With 400+ integrations, native AI capabilities, and a fair-code license, n8n lets you build powerful automations while maintaining full control over your data and deployments.

The key difference that makes n8n stand out in 2026 is the pricing model. Unlike Zapier, which charges per task — meaning every single step in an automation counts — n8n charges per workflow execution. Whether your workflow has 5 steps or 500 steps, one run equals one execution. This makes n8n significantly cheaper for complex, multi-step automations.

And if you self-host it — which this guide covers in full — you get complete control, unlimited executions, and costs of approximately $12/month instead of $49+ on n8n Cloud.

This is a complete, practical guide to getting n8n installed, configured, secured, and running your first real-world automation — step by step.

Choosing Your Deployment Method

Before installing anything, decide how you want to run n8n. There are three realistic options for UAE businesses in 2026, each with different trade-offs.

n8n Cloud is the hosted solution — no installation required. Self-hosted is the recommended method for production or customized use cases. n8n Embed allows you to white-label n8n and build it into your own product.

For most UAE businesses, the decision comes down to Cloud versus self-hosted:

n8n Cloud — choose this if:

  • You don't have technical staff to manage a server
  • You want to be running workflows within minutes
  • You're just getting started and want to evaluate before committing to infrastructure
  • n8n Cloud Starter costs $20/month with 2,500 executions. The Pro plan is $50/month with 10,000 executions. For light automation needs these are reasonable entry points.

Self-hosted — choose this if:

  • You handle sensitive business data and need it to stay within your own infrastructure
  • Your automation volume is high enough that execution-based billing becomes expensive
  • You want unlimited executions with no per-run costs
  • You need custom integrations or modifications not available on the cloud version
  • Data privacy is a serious consideration — when you self-host, your data never leaves your control. All processing happens on your own private server. For organizations needing data sovereignty compliance, this is often the only viable solution.

This guide covers the self-hosted path — specifically using Docker on a VPS, which is the production-ready approach recommended for business use.

Step 1: Choose and Set Up Your VPS

You need a server to run n8n on. For UAE businesses, the server location choice has practical implications — closer servers mean lower latency for webhook-triggered workflows.

Recommended VPS providers and UAE-relevant regions:

  • DigitalOcean — Bangalore or Frankfurt regions are closest to UAE. Plans start at $6/month for 1GB RAM. Reliable, well-documented, widely used for n8n deployments.
  • Hetzner — Frankfurt region. A $4–5/month Hetzner VPS with Docker Compose is the cheapest self-managed option for n8n. Excellent value for the specifications.
  • Contabo — Frankfurt region. Contabo offers a one-click n8n add-on that deploys n8n on a VPS at no extra cost beyond your VPS plan — the fastest way to get a working instance.
  • AWS/GCP/Azure — More complex to set up but preferable if your business already uses these platforms and wants n8n in the same infrastructure.

Minimum server specifications: For basic workflows, 1GB RAM works, but 2GB is recommended for production use. CPU requirements are minimal — 2 cores handle most workloads. 20GB storage is a safe starting point.

For a UAE business running 20–50 workflows with moderate frequency, a 2GB RAM / 2 vCPU / 40GB SSD VPS is a solid production configuration.

Once your VPS is provisioned, note down the IP address and connect via SSH:

bash
ssh root@your_server_ip

Update your server packages before doing anything else:

bash
apt update && apt upgrade -y
Step 2: Install Docker and Docker Compose

Docker runs n8n in a containerized environment that isolates it from your main system, making it easy to upgrade versions, scale your setup, and migrate to another server if needed.

Install Docker on Ubuntu:

bash
# Install required packages
apt install -y apt-transport-https ca-certificates curl software-properties-common

# Add Docker's official GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# Add Docker repository
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null

# Install Docker
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

# Verify installation
docker --version
docker compose version

Starting with Docker v20.10.0, Docker Compose is included by default as a plugin — you don't need to install it separately.

Start and enable Docker to run on server startup:

bash
systemctl start docker
systemctl enable docker
Step 3: Create the n8n Directory Structure

Create folders where n8n will store its data, configuration files, and workflow information. Docker containers run in isolated environments — to persist data so your workflows don't disappear when the container restarts, you need volume mount directories on your host machine that the container can access.

bash
# Create project directory and navigate to it
mkdir ~/n8n-docker && cd ~/n8n-docker

# Create subdirectories for data persistence
mkdir -p n8n_data postgres_data

# Set correct permissions
chmod 777 n8n_data postgres_data
Step 4: Create the Docker Compose Configuration

Create your docker-compose.yml file — this is the core configuration that defines how n8n and its database run together:

bash
nano docker-compose.yml

Paste the following production-ready configuration:

yaml
version: "3.8"

services:
  postgres:
    image: postgres:15
    restart: always
    environment:
      POSTGRES_DB: n8n
      POSTGRES_USER: n8n_user
      POSTGRES_PASSWORD: your_strong_password_here
    volumes:
      - ./postgres_data:/var/lib/postgresql/data
    networks:
      - n8n_network

  n8n:
    image: docker.n8n.io/n8nio/n8n:latest
    restart: always
    ports:
      - "5678:5678"
    environment:
      # Database
      DB_TYPE: postgresdb
      DB_POSTGRESDB_HOST: postgres
      DB_POSTGRESDB_PORT: 5432
      DB_POSTGRESDB_DATABASE: n8n
      DB_POSTGRESDB_USER: n8n_user
      DB_POSTGRESDB_PASSWORD: your_strong_password_here
      
      # Security
      N8N_BASIC_AUTH_ACTIVE: "true"
      N8N_BASIC_AUTH_USER: admin
      N8N_BASIC_AUTH_PASSWORD: your_admin_password_here
      N8N_ENCRYPTION_KEY: your_random_32_char_key_here
      
      # Host configuration
      N8N_HOST: your_domain.com
      N8N_PORT: 5678
      N8N_PROTOCOL: https
      WEBHOOK_URL: https://your_domain.com/
      
      # Timezone (UAE)
      GENERIC_TIMEZONE: Asia/Dubai
      TZ: Asia/Dubai
      
      # Performance
      EXECUTIONS_PROCESS: main
      N8N_RUNNERS_ENABLED: "true"
      
    volumes:
      - ./n8n_data:/home/node/.n8n
    depends_on:
      - postgres
    networks:
      - n8n_network
    deploy:
      resources:
        limits:
          memory: 1G
          cpus: '1.0'

networks:
  n8n_network:
    driver: bridge

Important configuration notes:

Replace these values before saving:

  • your_strong_password_here — a strong PostgreSQL password (use a password manager)
  • your_admin_password_here — your n8n dashboard login password
  • your_random_32_char_key_here — a random 32-character string for encryption (generate one with openssl rand -hex 16)
  • your_domain.com — your actual domain name

The GENERIC_TIMEZONE: Asia/Dubai setting ensures all scheduled workflows run on UAE time — essential for any time-based automation.

Save the file with Ctrl+X, then Y, then Enter.

Step 5: Set Up Your Domain and SSL Certificate

To securely access your n8n instance via HTTPS, you need to issue an SSL certificate and configure a reverse proxy. Running n8n without SSL means your credentials and workflow data travel unencrypted — not acceptable for a production business environment.

Point your domain to your server:

In your domain registrar's DNS settings, create an A record:

  • Type: A
  • Name: n8n (or automation, or whatever subdomain you prefer)
  • Value: your_server_ip
  • TTL: 3600

Wait 5–10 minutes for DNS propagation before proceeding.

Install Nginx as a reverse proxy:

bash
apt install -y nginx certbot python3-certbot-nginx

Create an Nginx configuration for n8n:

bash
nano /etc/nginx/sites-available/n8n

Paste this configuration:

nginx
server {
    listen 80;
    server_name n8n.your_domain.com;

    location / {
        proxy_pass http://localhost:5678;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        
        # WebSocket support (required for n8n)
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        
        # Timeouts for long-running workflows
        proxy_read_timeout 300s;
        proxy_connect_timeout 75s;
    }
}

Enable the configuration and obtain your SSL certificate:

bash
# Enable the site
ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx

# Obtain SSL certificate from Let's Encrypt
certbot --nginx -d n8n.your_domain.com

# Follow the prompts — enter your email and agree to terms
# Certbot automatically configures Nginx for HTTPS

Certbot will automatically renew your SSL certificate before it expires — no manual renewal needed.

Step 6: Start n8n

With configuration and SSL in place, start your n8n instance:

bash
cd ~/n8n-docker
docker compose up -d

The -d flag runs it in detached mode — n8n runs in the background and survives terminal disconnections and server reboots.

Check that everything started correctly:

bash
docker compose ps
docker compose logs n8n --tail=50

You should see both the postgres and n8n containers showing as running. The logs should show n8n starting up and connecting to the database successfully.

Open your browser and go to https://n8n.your_domain.com — you should see the n8n login screen. Enter the admin credentials you configured in the docker-compose.yml file.

On first login, n8n will walk you through creating your owner account. Complete this setup — this is the primary account with full administrative access to your instance.

Step 7: Configure n8n Settings for UAE Business Use

With n8n running, spend a few minutes in the Settings panel configuring it properly for production business use.

Go to Settings > General:

  • Confirm your timezone is set to Asia/Dubai
  • Set your instance name to something recognisable — your business name works well
  • Review the execution data retention settings — for most businesses, keeping execution history for 30 days is sufficient

Go to Settings > Users:

If multiple team members will use n8n, invite them with appropriate roles:

  • Owner — full access including settings and credential management
  • Admin — can create and manage workflows and credentials
  • Member — can create and manage their own workflows

n8n recommends self-hosting for expert users. If you have team members who are less technical, consider restricting them to Member access and having an admin manage credentials and sensitive workflow components.

Go to Settings > API:

Enable the n8n API and generate an API key. You'll need this if you want to trigger workflows programmatically or integrate n8n with other tools in your stack.

Configure email notifications:

Go to Settings > Email and configure SMTP settings so n8n can send error notifications when workflows fail. For UAE businesses using Google Workspace or Microsoft 365, use your existing SMTP credentials:

code
SMTP Host: smtp.gmail.com (Google) or smtp.office365.com (Microsoft)
SMTP Port: 587
SMTP SSL: STARTTLS
Username: your_email@yourdomain.com
Password: your_app_password
Step 8: Build Your First Real Workflow

Now the interesting part. Here's a practical first workflow tailored for UAE businesses — automatically capturing leads from your website contact form and sending them to both a CRM and a WhatsApp notification.

What this workflow does:

  1. Receives a webhook trigger when someone submits your contact form
  2. Formats the lead data
  3. Creates a contact record in your CRM (HubSpot in this example)
  4. Sends a WhatsApp notification to your sales team via WhatsApp Business API
  5. Sends a confirmation email to the lead

Building the workflow:

Click + New Workflow in the n8n dashboard. You'll see the visual workflow builder — a canvas where you connect nodes left to right.

Node 1 — Webhook trigger: Click the + button and search for Webhook. Add it to the canvas. Set:

  • HTTP Method: POST
  • Path: /lead-capture
  • Response Mode: Immediately

Copy the webhook URL shown — you'll add this to your website's contact form.

Node 2 — Set node (format data): Add a Set node. This cleans and formats the incoming data:

javascript
// Map incoming form fields to standardised format
{
  "name": "{{ $json.name }}",
  "email": "{{ $json.email }}",
  "phone": "{{ $json.phone }}",
  "message": "{{ $json.message }}",
  "source": "Website Contact Form",
  "date": "{{ $now.format('DD/MM/YYYY HH:mm') }}",
  "timezone": "Asia/Dubai"
}

Node 3 — HubSpot (create contact): Add a HubSpot node. Click Add Credential and connect your HubSpot account using your Private App access token (found in HubSpot Settings > Integrations > Private Apps).

Set the operation to Create Contact and map the fields from your Set node.

Node 4 — HTTP Request (WhatsApp Business API): Add an HTTP Request node. Configure it to call the WhatsApp Business API:

code
Method: POST
URL: https://graph.facebook.com/v18.0/YOUR_PHONE_NUMBER_ID/messages
Headers:
  Authorization: Bearer YOUR_WHATSAPP_ACCESS_TOKEN
  Content-Type: application/json

Body:
{
  "messaging_product": "whatsapp",
  "to": "971XXXXXXXXX",
  "type": "text",
  "text": {
    "body": "🔔 New Lead\n\nName: {{ $('Set').item.json.name }}\nEmail: {{ $('Set').item.json.email }}\nPhone: {{ $('Set').item.json.phone }}\nMessage: {{ $('Set').item.json.message }}\n\nReceived: {{ $('Set').item.json.date }}"
  }
}

Node 5 — Send Email (confirmation to lead): Add a Send Email node using your configured SMTP credentials. Set up a professional confirmation email:

code
To: {{ $('Set').item.json.email }}
Subject: We received your message — Joyboy Team
Body: 
Hi {{ $('Set').item.json.name }},

Thank you for reaching out. We've received your message 
and will get back to you within one business day.

Best regards,
The Joyboy Team
Dubai, UAE

Connect the nodes left to right in sequence and click Save. Then click Activate to turn the workflow on — the toggle in the top right switches it from inactive to live.

Test it by sending a POST request to your webhook URL using a tool like Postman, or by submitting your actual contact form.

Step 9: Setting Up Backup and Monitoring

For production deployments, it's critical to restrict access, use firewalls, and regularly update your containers to patch vulnerabilities.

Automated workflow backup:

bash
# Add to crontab (crontab -e) to run daily at 2am UAE time
0 2 * * * cd ~/n8n-docker && docker compose exec -T n8n n8n export:workflow --all --output=/home/node/.n8n/workflows-backup-$(date +\%Y\%m\%d).json

Set up a firewall:

bash
# Allow SSH, HTTP, and HTTPS only
ufw allow 22/tcp
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

Monitor your instance:

bash
# Check resource usage
docker stats

# View recent logs
docker compose logs n8n --tail=100 --follow

# Check workflow execution errors
# These appear in n8n's execution history under each workflow

Keeping n8n updated:

bash
# Pull the latest image and restart
cd ~/n8n-docker
docker compose pull
docker compose up -d

Your data persists in Docker volumes, so updates are safe. Always check the n8n changelog for breaking changes before updating.

Step 10: Practical Workflow Ideas for UAE Businesses

With n8n running, here are high-value automations to build next — all relevant to common UAE business operations:

Server/service monitoring: Monitor your website uptime using UptimeRobot. On failure detection, have n8n restart services via shell command, update Cloudflare settings if needed, and notify your team via WhatsApp and Slack simultaneously.

Invoice automation: When a project is marked complete in your project management tool (Jira, Asana, Notion), automatically generate an invoice in your accounting software (Xero, QuickBooks), send it to the client by email, and create a follow-up reminder if payment isn't received within 30 days.

Lead routing: When a new lead comes in from any source — website, LinkedIn, property portal, social media — automatically qualify it based on defined criteria, assign it to the right salesperson based on territory or product interest, log it in your CRM, and send the salesperson a WhatsApp notification.

Inventory alerts: Connect to your inventory management system and trigger automatic purchase order emails to suppliers when stock levels fall below defined thresholds — eliminating the manual checking that causes stock-outs.

Daily operations report: Every morning at 8am UAE time, pull data from your CRM, accounting system, and project management tool, compile a summary, and send it to management as a formatted WhatsApp message or email — so the team starts the day with a clear picture of where things stand.

VAT compliance reminders: Automatically track invoice dates and send reminders to the finance team before UAE VAT filing deadlines — reducing the risk of late submissions and penalties.

The Cost Reality for UAE Businesses

The Community Edition of n8n remains 100% free with unlimited executions for self-hosters. The 2026 pricing update introduced a paid self-hosted Business plan for teams needing enterprise features like SSO and Git integration — but for the majority of UAE SMEs, the free Community Edition covers everything needed.

Running a self-hosted n8n instance on a production VPS costs approximately AED 45–110 per month in server fees — compared to AED 180–730 per month for equivalent execution volumes on n8n Cloud, or significantly more on Zapier for complex, multi-step workflows.

If you want managed hosting without the server management overhead, PikaPods offers n8n at approximately $3.80/month with zero maintenance, and Elestio provides fully managed hosting on a dedicated VM. These options sit between n8n Cloud pricing and full self-hosting in both cost and control.

For a UAE business that takes automation seriously — running dozens of workflows connecting your CRM, accounting system, communication tools, and custom business applications — self-hosted n8n is the most cost-effective, flexible, and data-sovereign automation infrastructure available in 2026.

The setup takes an afternoon. The automation runs for years.

Want n8n set up and running automations for your business — without the technical headache?

At Joyboy, we install, configure, and build custom n8n automation workflows for UAE businesses — from simple integrations to complex multi-system pipelines. Talk to us about your automation needs.