n8n is the leading open-source workflow automation platform — a self-hosted alternative to Zapier and Make (Integromat) that connects 400+ apps and APIs without per-task pricing. Running n8n on a Hong Kong VPS gives Asia-Pacific teams an automation hub that reaches WeChat Work, DingTalk, Alipay, and other Chinese platform APIs with CN2 GIA reliability, without sharing business workflow data with US-based SaaS automation providers.
Why Self-Host n8n?
- Cost — Zapier costs $19.99–$599/month depending on task volume; n8n on your VPS costs zero beyond the infrastructure you already pay for
- Chinese platform integration — WeChat Work, DingTalk, Alipay, Baidu, Alibaba Cloud APIs respond faster and more reliably from a Hong Kong VPS with CN2 GIA than from Zapier’s US servers
- Data sovereignty — workflow data (customer records, financial transactions, internal documents) processed on your VPS, not on Zapier’s servers
- No task limits — unlimited workflow executions, unlimited steps per workflow
- Custom code nodes — JavaScript and Python code execution in workflow steps for complex logic
Step 1: Deploy n8n with Docker
<code">apt update && apt upgrade -y
curl -fsSL https://get.docker.com | sh
systemctl enable --now docker
apt install -y nginx certbot python3-certbot-nginx
mkdir -p /opt/n8n/{data,postgres-data}
cat > /opt/n8n/docker-compose.yml << 'EOF'
version: '3.8'
services:
postgres:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_DB: n8n
POSTGRES_USER: n8n
POSTGRES_PASSWORD: StrongN8nDBPass!
volumes:
- ./postgres-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U n8n"]
interval: 10s
timeout: 5s
retries: 5
n8n:
image: n8nio/n8n:latest
restart: unless-stopped
ports:
- "127.0.0.1:5678:5678"
environment:
# Database
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=StrongN8nDBPass!
# Server
- N8N_HOST=automation.yourdomain.com
- N8N_PORT=5678
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://automation.yourdomain.com/
- N8N_EDITOR_BASE_URL=https://automation.yourdomain.com/
# Security
- N8N_ENCRYPTION_KEY=GENERATE_32_CHAR_KEY_HERE
# Performance
- EXECUTIONS_PROCESS=main
- N8N_CONCURRENCY_PRODUCTION_LIMIT=20
# Timezone
- GENERIC_TIMEZONE=Asia/Hong_Kong
- TZ=Asia/Hong_Kong
volumes:
- ./data:/home/node/.n8n
depends_on:
postgres:
condition: service_healthy
EOF
cd /opt/n8n && docker compose up -d
docker compose logs -f n8nStep 2: Nginx with SSL
<code">cat > /etc/nginx/sites-available/n8n << 'EOF'
server {
listen 80;
server_name automation.yourdomain.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2;
server_name automation.yourdomain.com;
ssl_certificate /etc/letsencrypt/live/automation.yourdomain.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/automation.yourdomain.com/privkey.pem;
client_max_body_size 50m;
location / {
proxy_pass http://127.0.0.1:5678;
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;
# Required for n8n's long polling
proxy_read_timeout 600s;
proxy_buffering off;
}
}
EOF
ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
certbot --nginx -d automation.yourdomain.com
nginx -t && systemctl reload nginxStep 3: First-Time Setup
Visit https://automation.yourdomain.com and create your admin account. Set a strong password — n8n has access to any credentials you store and all the APIs you connect.
Step 4: Asia-Specific Workflow Examples
Workflow 1: WeChat Work (企业微信) Notifications
Trigger: New order created in your database → Send WeChat Work group message
- Trigger: Webhook node — receives POST from your application when new order is placed
- Transform: Set node — format order details into message
- Action: HTTP Request node
- URL:
https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=YOUR_TOKEN - Method: POST
- Body:
{"toparty":"1","msgtype":"text","agentid":YOUR_AGENT_ID,"text":{"content":"New order: {{$json.order_id}} from {{$json.customer}}, amount: ¥{{$json.amount}}"}}
- URL:
<code"># Test WeChat Work webhook connectivity from HK VPS: curl -X POST "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=YOUR_CORPID&corpsecret=YOUR_SECRET" # Should return access_token — confirms CN2 GIA reach to WeChat API
Workflow 2: Automated Daily Report to DingTalk (钉钉)
- Trigger: Schedule node — runs daily at 9:00 AM HKT
- Fetch data: Postgres node — query yesterday’s sales summary
- Format: Code node (JavaScript) — build Markdown report
- Send: HTTP Request to DingTalk robot webhook
<code"># n8n Code node (JavaScript) to format the report:
const sales = $('Postgres').all();
const total = sales.reduce((sum, row) => sum + row.json.amount, 0);
return [{
json: {
msgtype: "markdown",
markdown: {
title: "Daily Sales Report",
text: `## 昨日销售汇报\n\n**总销售额:** ¥${total.toFixed(2)}\n**订单数:** ${sales.length}\n\n*数据来源: Hong Kong VPS*`
}
}
}];Workflow 3: GitHub → Slack Deployment Notifications
- Trigger: Webhook from GitHub Actions on deployment completion
- Route: IF node — success vs failure branch
- Notify: Slack node — different messages for success/failure with deployment details
Workflow 4: Monitor Website → Alert on Downtime
- Trigger: Schedule node — every 5 minutes
- Check: HTTP Request to
https://yourdomain.com/health - IF: status code !== 200 → go to alert branch
- Alert: Send WeChat Work message + Email + PagerDuty (if configured)
- IF: previous run was also failure → escalate (prevents alert storms)
Step 5: Credential Management
In n8n: Credentials → Add Credential — store API keys for all your connected services. n8n encrypts credentials using the N8N_ENCRYPTION_KEY set during setup. Credentials are referenced in workflows by name — never stored in plaintext in workflow definitions.
For highly sensitive credentials (payment gateway private keys, database passwords), use environment variables passed to n8n’s Docker container rather than n8n’s credential store.
Step 6: Import/Export Workflows
<code"># Export all workflows for backup docker exec n8n n8n export:workflow --all --output=/home/node/.n8n/workflows-backup.json # Copy backup to host docker cp n8n:/home/node/.n8n/workflows-backup.json /opt/n8n/workflows-backup.json # Import workflows on a new instance docker exec n8n n8n import:workflow --input=/home/node/.n8n/workflows-backup.json
<code"># Automated backup
cat > /opt/n8n-backup.sh << 'EOF' #!/bin/bash DATE=$(date +%Y%m%d_%H%M%S) BACKUP_DIR="/opt/backups/n8n" mkdir -p $BACKUP_DIR # Export workflows docker exec n8n n8n export:workflow --all \ --output=/home/node/.n8n/workflows-${DATE}.json 2>/dev/null
docker cp n8n:/home/node/.n8n/workflows-${DATE}.json $BACKUP_DIR/
# Database backup
docker compose -f /opt/n8n/docker-compose.yml exec -T postgres \
pg_dump -U n8n n8n | gzip > $BACKUP_DIR/n8n_db_${DATE}.sql.gz
find $BACKUP_DIR -mtime +14 -delete
echo "n8n backup complete: $DATE"
EOF
chmod +x /opt/n8n-backup.sh
crontab -l | { cat; echo "0 3 * * * /opt/n8n-backup.sh"; } | crontab -Step 7: Update n8n
<code">cd /opt/n8n docker compose pull n8n docker compose up -d n8n docker compose logs n8n | tail -20
n8n Community Templates for Asia Business
Browse n8n.io/workflows for community templates. Useful categories for Asia-Pacific business automation:
- CRM automation — sync contacts between Airtable, Notion, and CRM systems
- E-commerce — order notification, inventory alerts, review monitoring
- Data pipelines — extract data from APIs, transform, load to PostgreSQL or Google Sheets
- HR workflows — new employee onboarding triggers across HRIS, Slack, email, Gitea
- Monitoring alerts — server health, API error rates, business metric thresholds
Conclusion
Self-hosted n8n on a Hong Kong VPS gives Asia-Pacific teams an unlimited, data-sovereign workflow automation platform with reliable connectivity to Chinese business APIs (WeChat Work, DingTalk, Alipay) that US-hosted Zapier/Make cannot match. The Docker Compose deployment with PostgreSQL runs efficiently on a 2 GB VPS alongside other services, and the 400+ integrations cover virtually every business API your team uses — at zero per-task cost regardless of execution volume.
Automate your workflows: Browse Server.HK Hong Kong VPS plans — n8n runs comfortably on a 2 GB plan; add 4 GB for complex multi-step workflows with high concurrency requirements.