Start typing to search across invoices, services, domains, tickets, and more...
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.
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 |
"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 |
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.
| 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 |
| 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 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.
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.
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.
docker --version # Dify requires 19.03+
docker compose version # Dify requires 2.24.0+
dify.example.com and n8n.example.com to the server IP.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.
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
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
| 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.
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).
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.
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.
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.
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.
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.
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.