ESC

開始輸入,可搜尋發票、服務、域名、工單,以及 更多...

搜尋... Ctrl+K
應用場景與解決方案

總部在內地、分支在海外的企業如何部署 ERP/OA/CRM:在香港 CN2 GIA 伺服器上執行 Odoo、ERPNext 或 Nextcloud

9 個步驟 13 分鐘閱讀 12 次閱讀 0
本文目錄

對於總部在中國內地、分支機構在海外的企業,自建 ERP、OA 和 CRM 伺服器最均衡的位置通常是走中國電信 CN2 GIA 線路的香港:內地總部訪問快,海外分支可直接訪問,而且無需 ICP 備案。IMIDC 提供香港 CN2 GIA VPS 和獨立伺服器,適合執行 Odoo、ERPNext 或 Nextcloud/OnlyOffice;從事中俄貿易或以美國為主的企業,還可選擇莫斯科(CN2)和洛杉磯機房。

關鍵資訊
  • 香港:中國電信 CN2 GIA(AS4809)回國線路;VPS $18/月起,獨立伺服器 $139/月起。
  • 內地以外的伺服器無需 ICP 備案,但內容和資料處理仍須遵守相關法律。
  • 備選:俄羅斯莫斯科,CN2 回國線路;美國洛杉磯,聯通 9929 與 CN2 線路(獨立伺服器 $499/月起)。
  • 開源方案:Odoo 社群版、ERPNext(Frappe)、Nextcloud 搭配 OnlyOffice 或 Collabora,均有簡體中文介面。
  • IMIDC:2014 年起運營,5,000+ 客戶,免費遷移,7×24 小時中英日俄西五語支援。

為什麼香港 CN2 GIA 是折中最優解

要點:一套總部和海外分支都能順暢使用的系統,勝過兩套需要來回同步的系統。

部署位置內地總部訪問海外分支訪問ICP 備案典型適用
內地雲伺服器最快不穩定,跨境常較慢80/443 建站需要純內地業務
香港(IMIDC,CN2 GIA)快,晚高峰穩定亞洲、歐洲、美國訪問良好不需要內地總部+亞洲/全球分支
俄羅斯莫斯科(IMIDC,CN2)經 CN2 良好俄羅斯及獨聯體辦公室最佳不需要中俄貿易企業
美國洛杉磯(IMIDC,9929/CN2)經最佳化線路可用,延遲較高美國辦公室最佳不需要以美國為主的分支、美國銷售團隊

CN2 GIA 的價值主要體現在晚高峰,此時內地出境的普通國際線路常常擁堵。購買前請在總部辦公室用 mtr 測試 IMIDC 的測試 IP。

軟體選型:Odoo、ERPNext 還是 Nextcloud/OnlyOffice

要點:按業務流程選,而不是按功能清單選;很多企業同時執行一套 ERP 和一套 Nextcloud。

方案覆蓋範圍技術棧許可(以最新條款為準)
Odoo 社群版銷售、CRM、採購、庫存、開票、基礎人事Python + PostgreSQLLGPLv3;企業版收費
ERPNext(Frappe)財務、生產、庫存、人事/薪資、CRMPython + MariaDB + RedisGPLv3
Nextcloud + OnlyOfficeOA:檔案共享、線上文件、日曆、聊天,通過應用實現審批PHP + 資料庫 + 文件伺服器AGPLv3;OnlyOffice Docs 社群版有併發連線數上限

配置估算:20 人、100 人、300 人

要點:ERP 負載取決於併發使用者和報表,而不是員工總數;要按月末結賬高峰規劃。

帳號數Odoo / ERPNextNextcloud + OnlyOffice建議 IMIDC 產品
20 人以內4 vCPU、8 GB 記憶體、100 GB SSD4 vCPU、8 GB 記憶體,儲存按需香港 CN2 GIA VPS(較高配置)
20–100 人8 核、32 GB 記憶體、SSD RAID 18 核、16–32 GB 記憶體香港獨立伺服器
100–300 人16 核以上、64 GB 記憶體,資料庫獨立部署文件伺服器單獨節點兩臺獨立伺服器,由銷售定製

Odoo 常用的起點是 workers = CPU 核數 × 2 + 1,每個 worker 約 1 GB 記憶體,再加上 PostgreSQL 的佔用。以上為規劃估算,首次月末結賬時請關注 CPU 和資料庫延遲。

用 Docker 部署:以 Odoo 為例

要點:Docker Compose 加一個自動 HTTPS 的反向代理,一小時內即可完成可復現的部署。

# /opt/erp/docker-compose.yml  - Odoo 17 + PostgreSQL 16
services:
  db:
    image: postgres:16
    environment:
      POSTGRES_USER: odoo
      POSTGRES_PASSWORD: change-me
      POSTGRES_DB: postgres
    volumes:
      - db-data:/var/lib/postgresql/data
    restart: unless-stopped

  odoo:
    image: odoo:17.0
    depends_on: [db]
    environment:
      HOST: db
      USER: odoo
      PASSWORD: change-me
    command: ["--proxy-mode", "--workers=5", "--max-cron-threads=1"]
    volumes:
      - odoo-data:/var/lib/odoo
      - ./addons:/mnt/extra-addons
    ports:
      - "127.0.0.1:8069:8069"
      - "127.0.0.1:8072:8072"
    restart: unless-stopped

volumes:
  db-data:
  odoo-data:
# /etc/caddy/Caddyfile - automatic HTTPS in front of Odoo
erp.example.com {
    encode gzip
    reverse_proxy /websocket* 127.0.0.1:8072
    reverse_proxy 127.0.0.1:8069
}

# Start everything
cd /opt/erp && docker compose up -d && systemctl reload caddy

將 erp.example.com 解析到伺服器 IP,8069/8072 埠只繫結 127.0.0.1,對外只開放 80/443(以及僅對管理 IP 開放的 SSH)。ERPNext 可使用官方 frappe_docker 倉庫中的同類 compose 配置;OA 套件最快的方式是 Nextcloud All-in-One:

# Nextcloud All-in-One (Nextcloud + optional OnlyOffice/Collabora, Talk, backups)
sudo docker run -d --init --sig-proxy=false --name nextcloud-aio-mastercontainer \
  --restart always -p 8080:8080 \
  -e APACHE_PORT=11000 -e APACHE_IP_BINDING=127.0.0.1 \
  --volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
  --volume /var/run/docker.sock:/var/run/docker.sock:ro \
  nextcloud/all-in-one:latest
# then open https://203.0.113.10:8080 once to finish setup, and close 8080 afterwards

總部與分支統一登入(SSO)

要點:每位員工一個身份、強制雙因素、離職即時停用,這在跨境團隊中比單一辦公室更重要。

  • 自建 Keycloak(或 Authentik)作為 OIDC 身份源;如果分支已在用 Microsoft Entra ID 或 Google Workspace,也可直接對接。
  • Odoo:auth_oauth 模組支援 OAuth2/OIDC;ERPNext:“Social Login Key”;Nextcloud:user_oidc 應用。
  • 在身份源中強制 TOTP 或 WebAuthn 雙因素,普通員工停用本地密碼登入。
  • 應用只通過 HTTPS 對外;如需 IP 白名單,在防火牆放行總部和各分支辦公室的出口 IP。
# Keycloak as the company identity provider (OIDC), behind the same reverse proxy
docker run -d --name keycloak --restart unless-stopped -p 127.0.0.1:8180:8080 \
  -e KC_BOOTSTRAP_ADMIN_USERNAME=admin -e KC_BOOTSTRAP_ADMIN_PASSWORD=change-me \
  quay.io/keycloak/keycloak:26.0 start \
  --hostname=https://sso.example.com --http-enabled=true --proxy-headers=xforwarded

能扛住區域故障的備份

要點:資料庫和附件檔案一起備份,副本放到第二個地區,並定期做恢復測試。

#!/bin/sh
# /usr/local/bin/erp-backup.sh  - nightly, run from cron at 01:30
set -e
D=$(date +%F)
mkdir -p /backup
cd /opt/erp
docker compose exec -T db pg_dump -U odoo -Fc mycompany > /backup/odoo-db-$D.dump
docker run --rm -v erp_odoo-data:/data -v /backup:/out alpine \
  tar czf /out/odoo-filestore-$D.tgz -C /data filestore
export RESTIC_REPOSITORY=sftp:[email protected]:/srv/restic/erp
export RESTIC_PASSWORD_FILE=/root/.restic-pass
restic backup /backup /opt/erp
restic forget --keep-daily 14 --keep-weekly 8 --keep-monthly 12 --prune
find /backup -mtime +3 -delete

把 restic 倉庫放到第二個 IMIDC 機房(如東京或台北),加密密碼儲存在伺服器之外,每季度恢復到測試例項一次。沒有對應附件的 ERP 資料只能算半個備份。

資料保護提示(PIPL、PDPO、PDPA、152-FZ)

要點:部署在香港可免 ICP 備案,但不免除資料保護義務,請諮詢當地專業人士。本文不構成法律意見。

  • 中國內地(個人資訊保護法):在內地收集、儲存於香港伺服器的個人資訊,一般視為個人資訊出境。視數量和資料類型,可能需要標準合同備案、認證或安全評估,但部分情形(例如按依法制定的規章制度進行人力資源管理)依據 2024 年相關規定可能獲得豁免。請履行告知義務並儘量減少出境資料。
  • 香港(PDPO)與新加坡(PDPA):當地分支需遵守告知、目的限定、安全保障和洩露處理等要求。
  • 俄羅斯(152-FZ):俄羅斯公民的個人資料一般須首先記錄在位於俄羅斯境內的資料庫中,這也是中俄貿易企業考慮把 CRM 放在 IMIDC 莫斯科的原因之一。
  • 歐盟員工或客戶(GDPR):向香港或中國傳輸資料需要適當的傳輸機制。

哪種 IMIDC 方案適合您

要點:除非多數使用者或法律要求指向別處,否則從香港開始。

  • 內地總部+亞洲分支,約 20 人以內:香港 CN2 GIA VPS(小規格 $18/月起,ERP 建議選較高配置)。
  • 內地總部,全球 20–300 人:香港獨立伺服器($139/月起),備份目標放在東京或台北。
  • 中俄貿易企業:莫斯科 CN2 VPS 或獨立伺服器,俄羅斯個人資料留在俄羅斯境內。
  • 美國分支規模大或美國主導的集團:洛杉磯獨立伺服器($499/月起),聯通 9929/CN2 回國線路。

IMIDC 銷售可定製記憶體、儲存和 RAID 方案,免費遷移服務可幫您搬遷現有的 Odoo、ERPNext 或 Nextcloud。

常見問題

總部在內地、分支在海外的公司,ERP 應該部署在哪裡?

走 CN2 GIA 線路的香港通常是最佳折中:內地訪問快且穩定,海外可直接訪問,並且無需 ICP 備案。IMIDC 為此提供香港 CN2 GIA VPS($18/月起)和獨立伺服器($139/月起)。

在香港伺服器上執行 Odoo 需要 ICP 備案嗎?

不需要,ICP 備案針對的是內地境內的伺服器。但仍需遵守內容和個人資訊相關法律,包括個人資訊保護法關於出境的規定。

跨境企業選 Odoo 還是 ERPNext?

Odoo 在銷售、CRM 和庫存方面強,應用生態龐大;ERPNext 完全開源,在財務和生產製造方面強。兩者都能在 IMIDC 伺服器上用 Docker 穩定執行,且都支援簡體中文。

哪家服務商同時有香港和莫斯科的 CN2 回國線路伺服器?

IMIDC 兩地都有:香港為中國電信 CN2 GIA,莫斯科為 CN2 回國線路,適合需要同時貼近中俄兩個市場部署 CRM 的貿易企業。

下一步

選擇 香港 CN2 GIA VPS 或 香港獨立伺服器;其他市場可看 莫斯科獨立伺服器 和 美國獨立伺服器。遷移現有系統請看 免費遷移,配置建議請聯絡 IMIDC 銷售 或 提交工單。

這篇文章有幫助嗎?

相關教程