ESC

Start typing to search across invoices, services, domains, tickets, and more...

Search... Ctrl+K
Getting Started

Dify, n8n and AI Agent Server Requirements: Self-Hosted AI Workflow Guide 2026

12 steps 31 min read 15 views 0
On this page

A CPU server is enough to self-host Dify or n8n: Dify officially requires at least 2 CPU cores and 4 GB of RAM, and 4 cores / 8 GB is a sensible starting point for production; n8n on its own can start at 2 cores / 2 GB, while the official AI sandbox stack needs 2 vCPU and 4 GB or more. IMIDC's Korea, Taiwan and Japan VPS can all host this kind of AI application (AI customer service, AI agents, RAG knowledge bases, workflow automation, and model-API gateways for your own app): Korea VPS from $18.88/mo, Taiwan VPS from $18/mo and Japan VPS from $28/mo — check the IMIDC website for current pricing. One condition applies: your business and your end users must be located in countries or regions officially supported by the model providers you call, and you must follow their terms.

Key Takeaways

  • Dify official minimum: CPU ≥ 2 cores, RAM ≥ 4 GB, Docker 19.03+, Docker Compose 2.24.0+. For production, plan on 4 cores / 8 GB and 40 GB+ of SSD.
  • n8n: a single lightweight container starts at 2 cores / 2 GB; n8n's full official Docker Compose stack (with the AI code sandbox) requires at least 2 vCPU and 4 GB RAM.
  • Dify + n8n on one server: 4 cores / 8 GB or more, e.g. IMIDC Korea KR-CLOUD-04 (4 cores / 8 GB / 80 GB SSD) or Taiwan Enterprise (8 cores / 8 GB / 160 GB SSD).
  • IMIDC offers CPU servers only. They suit apps that call hosted model APIs or run small local models; training or serving large models needs GPUs, which are not in IMIDC's product list.
  • Region compliance: the official OpenAI, Anthropic and Google Gemini pages list Japan, South Korea, Taiwan, the United States and South Africa as supported; Hong Kong, mainland China and Russia are not listed. Do not use IMIDC's Hong Kong or Moscow locations for workloads that call these AI APIs.

What the Server Actually Runs

Dify and n8n are orchestration layers: they handle workflows, knowledge-base retrieval, conversation history, plugins and webhooks, while inference is usually done by hosted model APIs from providers such as OpenAI, Anthropic or Google Gemini. Server load therefore comes mostly from:

Load source Main resource Notes
Dify containers (api, worker, web, PostgreSQL, Redis, vector DB, Nginx, etc.) RAM The official Compose file starts more than a dozen containers; memory is the first bottleneck
RAG knowledge base (parsing, chunking, vector search) RAM + disk More documents mean a larger vector store; leave plenty of SSD space
n8n workflow executions CPU + RAM Concurrent executions and data-heavy nodes (e.g. batch processing) drive usage
Model inference External API Calling a hosted API uses almost no local compute
Small local models (optional) CPU + RAM CPU inference is slow and fits only light tasks; large models need GPUs

Recommended Specs for Dify and n8n

"Official minimum" comes from the Dify and n8n documentation; "production recommendation" is a rule of thumb for typical small and mid-sized teams — let your monitoring data decide.

Deployment Official minimum Production recommendation Disk
n8n only (single container, SQLite) Not stated; 2 cores / 2 GB works 2 cores / 2–4 GB 20 GB+
n8n full official Compose (with AI sandbox) 2 vCPU / 4 GB 4 cores / 8 GB 40 GB+
Dify only 2 cores / 4 GB 4 cores / 8 GB 40 GB+, 80 GB+ for large knowledge bases
Dify + n8n on one server — 4 cores / 8 GB+; 6–8 cores / 16 GB for team use 80 GB+
Multiple teams / high concurrency / large knowledge bases — Dedicated server, or split database and app tiers Size to your data

Matching IMIDC Plans

Monthly prices in USD, from — check the IMIDC website for current pricing. All VPS plans use SSD storage and ECC memory, are provisioned automatically, and include 24/7 support and free migration.

Korea VPS (Seoul, KT network)

Plan Specs Traffic / port Best for Monthly
KR-CLOUD-02 2 cores / 2 GB / 20 GB SSD 1 TB / 100 Mbps Light n8n from $28.88
KR-CLOUD-03 3 cores / 4 GB / 40 GB SSD 2 TB / 100 Mbps Dify minimum, test environments from $38.88
KR-CLOUD-04 4 cores / 8 GB / 80 GB SSD 3 TB / 200 Mbps Dify in production, or Dify + n8n from $48.88
KR-CLOUD-06 6 cores / 16 GB / 240 GB SSD 5 TB / 200 Mbps Team-scale Dify + n8n, large knowledge bases from $88.88

Taiwan VPS (Taipei)

Plan Specs Traffic / port Best for Monthly
TW Professional 2 cores / 2 GB / 80 GB SSD 1 TB / 80 Mbps Light n8n from $38
TW Business 4 cores / 4 GB / 120 GB SSD 1 TB / 80 Mbps Dify minimum from $48
TW Enterprise 8 cores / 8 GB / 160 GB SSD 2 TB / 100 Mbps Dify in production, or Dify + n8n from $68
TW Flagship 16 cores / 16 GB / 320 GB SSD 3 TB / 100 Mbps Team-scale deployments, small local model experiments from $78

Japan VPS (Tokyo)

Japan VPS plans range from 1 core / 512 MB / 20 GB from $28/mo up to 16 cores / 16 GB / 240 GB from $118/mo, with 500 GB–5 TB monthly traffic and Linux/Windows on every plan except the entry tier — check the IMIDC website for current pricing. For Dify, pick a tier with 4 GB of RAM or more; for Dify + n8n on one server, 8 GB or more.

Heavier Loads: Dedicated Servers

For multi-department use, very large knowledge bases or high concurrency, consider IMIDC dedicated servers in Japan, Korea or Taiwan (from $199/mo) or Los Angeles, USA (from $499/mo; AMD EPYC 7002, 128 GB+ RAM, NVMe SSD) — check the IMIDC website for current pricing. These are still CPU servers; IMIDC's current product list does not include GPU servers.

Server Locations and AI Provider Support

Choose a location based on where your users are: for users in Japan, Korea, Taiwan and the wider Asia-Pacific, pick the nearest node. The table below reflects each provider's official supported-regions list as checked in October 2026 (only regions where IMIDC has locations are shown). Providers update these lists, so check again before launch.

IMIDC location OpenAI API Anthropic API Google Gemini API Recommended for AI API workloads
Japan · Tokyo Supported Supported Supported Yes
South Korea · Seoul Supported Supported Supported Yes
Taiwan · Taipei Supported Supported Supported Yes
USA · Los Angeles Supported Supported Supported Yes
South Africa · Johannesburg Supported Supported Supported Yes
Hong Kong Not listed Not listed Not listed No
Russia · Moscow Not listed Not listed Not listed No
Mainland China (reference) Not listed Not listed Not listed N/A

Compliance note: a server's location is only where your app is deployed — it does not determine who may use a model. When calling any model API, both your business and your app's end users must be located in a country or region the provider officially supports, and you must follow the provider's terms of service and usage policies. Do not attempt to use any server location to get around a provider's regional restrictions.

Before You Deploy

  1. Provision the VPS (Ubuntu 22.04 / 24.04 LTS recommended) and log in over SSH (see SSH login to Linux).
  2. Install Docker Engine and the Compose plugin following Install Docker and Docker Compose on Linux, then check versions:
docker --version          # Dify requires 19.03+
docker compose version    # Dify requires 2.24.0+
  1. Point DNS A records for dify.example.com and n8n.example.com to the server IP.

Install Dify (Official Docker Compose)

These steps follow Dify's official self-hosting documentation, which recommends cloning the latest release:

sudo apt update && sudo apt install -y git curl jq
git clone --branch "$(curl -s https://api.github.com/repos/langgenius/dify/releases/latest | jq -r .tag_name)" https://github.com/langgenius/dify.git
cd dify/docker
cp .env.example .env

A plain git clone https://github.com/langgenius/dify.git also works, but it gives you the latest code on the main branch; use a tagged release in production.

Before starting, make two changes in .env:

# 1. Generate a new key and replace the default SECRET_KEY
openssl rand -base64 42
# 2. Bind Dify's bundled Nginx to localhost only; the host Nginx handles HTTPS
EXPOSE_NGINX_PORT=127.0.0.1:8080
EXPOSE_NGINX_SSL_PORT=127.0.0.1:8443

Then start it:

docker compose up -d
docker compose ps

If you are not using a domain yet, keep the default port 80 and open http://SERVER_IP/install. Create the admin account immediately after the containers start so nobody else can reach the setup page first.

Install n8n (Docker Compose)

n8n's documentation covers a single-container docker run setup and a full Docker Compose stack (which includes the AI code sandbox and needs 2 vCPU / 4 GB or more). Below is a minimal Compose file built on n8n's official environment variables, designed to sit behind Nginx:

mkdir -p ~/n8n && cd ~/n8n
nano compose.yaml
services:
  n8n:
    image: n8nio/n8n
    restart: unless-stopped
    ports:
      - "127.0.0.1:5678:5678"
    environment:
      - N8N_HOST=n8n.example.com
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
      - N8N_WEBHOOK_URL=https://n8n.example.com/
      - WEBHOOK_URL=https://n8n.example.com/
      - N8N_PROXY_HOPS=1
      - GENERIC_TIMEZONE=Asia/Seoul
      - TZ=Asia/Seoul
      - N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
      - N8N_RUNNERS_ENABLED=true
    volumes:
      - n8n_data:/home/node/.n8n
volumes:
  n8n_data:
docker compose up -d

Notes: newer n8n versions renamed WEBHOOK_URL to N8N_WEBHOOK_URL; the old variable still works with a deprecation warning, so setting both covers old and new versions. Set the time zone to match your business. For a quick trial, n8n's official commands are:

docker volume create n8n_data
docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n n8nio/n8n

HTTPS with an Nginx Reverse Proxy

See Nginx reverse proxy with free Let's Encrypt SSL for the full walkthrough. Two details matter for AI apps: Dify streams its responses, so turn off proxy buffering; the n8n editor uses WebSockets, so forward the Upgrade headers. Example:

server {
    listen 80;
    server_name n8n.example.com;
    location / {
        proxy_pass http://127.0.0.1:5678;   # for Dify use http://127.0.0.1:8080
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        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;
        proxy_set_header X-Forwarded-Host $host;
        proxy_buffering off;
        proxy_read_timeout 300s;
        client_max_body_size 100m;          # knowledge-base upload size
    }
}
sudo nginx -t && sudo systemctl reload nginx
sudo certbot --nginx -d n8n.example.com -d dify.example.com

Security Hardening Checklist

Item What to do
SSH Disable root password login, use key authentication, run fail2ban
Firewall Expose only SSH, 80 and 443. Docker-published ports bypass ufw rules, so bind every app port to 127.0.0.1
First-run setup Both Dify /install and n8n's first visit create the admin account — finish them right after deployment
Secrets Replace Dify's default SECRET_KEY; keep model API keys only in the platform's credential store or .env, set .env to mode 600 and never commit it to Git
Access control Restrict admin consoles to office IP allowlists; expose only the webhook paths you need
Backups Back up dify/docker/volumes and n8n's n8n_data volume regularly (it holds the encryption key; without it saved credentials cannot be decrypted)
Updates Follow Dify and n8n security advisories; back up first, then follow the official upgrade guides
Data compliance Knowledge bases and chat logs may contain personal data; handle and retain it according to local law and provider terms

After deployment, use the methods in Server benchmark guide to check CPU, disk and network, and watch real memory use with docker stats to decide whether to upgrade.

FAQ

What are Dify's minimum server requirements?

Dify officially requires CPU ≥ 2 cores and RAM ≥ 4 GB. That is enough to run, but memory gets tight as knowledge bases and concurrency grow; for production, 4 cores / 8 GB is recommended, such as IMIDC Korea KR-CLOUD-04 (from $48.88/mo — check the IMIDC website for current pricing).

How much server do I need for n8n?

A single n8n container can start at 2 cores / 2 GB. The full official Compose stack with the AI code sandbox requires at least 2 vCPU and 4 GB RAM. Scale up based on monitoring as workflows and concurrency grow.

Can Dify and n8n run on the same server?

Yes. Both run in Docker without port conflicts (in this guide Dify listens on local port 8080 and n8n on 5678), and the host Nginx routes traffic by domain. Start with 4 cores / 8 GB.

Can I run large local models on IMIDC servers?

IMIDC currently offers CPU servers with no GPU products. CPU servers are suited to calling hosted model APIs or running small quantized models for light tasks; training and large-scale inference need GPU servers.

Can I deploy an AI customer service bot that calls OpenAI, Claude or Gemini on a Hong Kong or Moscow server?

Not recommended. According to each provider's official supported-regions list, Hong Kong, mainland China and Russia are not supported by the OpenAI, Anthropic or Google Gemini APIs. Build AI API workloads for users in supported regions, deploy them on nodes such as Japan, Korea, Taiwan or the USA, and follow each provider's terms.

Do I need an ICP license to deploy on an overseas VPS?

No. IMIDC's Japan, Korea and Taiwan VPS are outside mainland China, so no ICP filing is required and you can deploy as soon as the server is provisioned.

Conclusion

Sizing a self-hosted AI workflow server comes down to this: Dify is memory-bound (4 GB minimum, 8 GB comfortable), n8n scales with concurrency, and running both on one box calls for 4 cores / 8 GB or more. Pick a location near your users, and make sure both your users and your business are in the model providers' supported regions. To get started, see IMIDC Korea VPS, Taiwan VPS or Japan VPS; if you are unsure which plan fits, contact IMIDC for help.

Related Reading

Was this answer helpful?

Related Tutorials