[iDempiere] 正式環境部署:從零到上線的完整指南

本篇文章更新時間:2026/02/07
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知或向一介資男的 LINE 社群反應。
如果本站內容對你有幫助,歡迎贊助支持


上一篇用 Docker 快速體驗了 iDempiere,但正式環境需要更完整的部署規劃。這篇文章會走過一遍在 Linux 伺服器上從零開始部署 iDempiere 正式環境的完整流程,涵蓋系統安裝、資料庫設定、中文化、SSL 憑證和服務管理。

這是 iDempiere 開源 ERP 系列文章 的第 5 篇。

本篇是我先前文章〈[iDempiere] 開源 ERP 部署上線版 Production 的流程方法(含中文化)〉的擴充版,加入了更多解說和最佳實踐建議。

系統需求

項目 最低需求 建議配置
作業系統 Ubuntu 22.04+ / Debian 12+ Ubuntu 24.04 LTS
Java OpenJDK 17 OpenJDK 17(LTS)或 23
資料庫 PostgreSQL 13+ PostgreSQL 17
CPU 2 核心 4 核心以上
記憶體 4 GB 8 GB 以上
磁碟空間 20 GB 50 GB 以上(SSD 建議)

來源:iDempiere Wiki: Install Prerequisites

步驟一:初始化作業系統

# 更新系統
sudo apt update && apt upgrade -y && apt remove -y && apt autoremove -y && apt clean -y && apt autoclean -y

# 安裝必要套件
sudo apt install curl ca-certificates screen htop zip unzip git jq -y

# 安裝中文字型(iDempiere 報表產出需要)
sudo apt install fonts-noto-cjk fonts-arphic-uming fonts-arphic-ukai fontconfig -y

# 設定時區
timedatectl set-timezone Asia/Taipei

⚠️ 重要:時區設定必須在啟動 iDempiere 之前完成,否則系統內的時間戳記會使用預設時區。

步驟二:安裝 PostgreSQL

使用 PostgreSQL 官方套件庫安裝最新的穩定版本:

# 下載並安裝 PostgreSQL 官方金鑰
sudo install -d /usr/share/postgresql-common/pgdg
curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo tee /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc > /dev/null

# 加入 apt 套件庫
. /etc/os-release && sudo sh -c "echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt ${VERSION_CODENAME}-pgdg main' > /etc/apt/sources.list.d/pgdg.list"

# 安裝 PostgreSQL 17
sudo apt update && sudo apt install postgresql-17 -y

資料庫初始化

# 修改 postgres 預設密碼
echo "alter user postgres password 'postgres'" | sudo su postgres -c "psql -U postgres"

編輯 /etc/postgresql/17/main/pg_hba.conf,將本地連線的驗證方式從 peer 改為 scram-sha-256

# 將此段
local   all   all   peer
# 改為
local   all   all   scram-sha-256

重新載入設定:

service postgresql reload

建立 iDempiere 專用帳號和資料庫

-- 登入 PostgreSQL
sudo -u postgres psql

-- 建立角色
CREATE ROLE adempiere SUPERUSER LOGIN PASSWORD 'adempiere';

-- 建立資料庫(注意 LC_COLLATE 和 LC_CTYPE 必須是 'C')
CREATE DATABASE idempiere WITH OWNER = adempiere ENCODING 'UTF8' LC_COLLATE='C' LC_CTYPE='C' TEMPLATE=template0;

-- 設定 search_path
ALTER ROLE adempiere SET search_path TO adempiere, pg_catalog;

-- 啟用 UUID 擴充
\c idempiere
CREATE EXTENSION "uuid-ossp";

\q

⚠️ 關於 LC_COLLATE='C':這是 iDempiere 的要求,使用 C locale 可以確保排序行為在所有環境中一致。

步驟三:安裝 Java 環境

推薦使用 SDKMAN 來管理 Java 版本:

# 安裝 SDKMAN
curl -s "https://get.sdkman.io" | bash && source "$HOME/.sdkman/bin/sdkman-init.sh"

# 安裝 Java 和 Maven
sdk install java 17.0.13-tem  # 使用 Temurin LTS 版本
sdk install maven

# 確認安裝
java -version
mvn -version

步驟四:編譯與安裝 iDempiere

從原始碼編譯可以確保日後能整合自訂外掛和安全修正:

# 下載原始碼
git clone https://github.com/idempiere/idempiere.git
cd idempiere
git switch release-12  # 切到穩定版
git pull

# 編譯(視主機效能約需 5-15 分鐘)
mvn verify -U

# 建立部署目錄
mkdir ~/idempiere_12

# 解壓縮種子資料庫
jar xvf org.adempiere.server-feature/data/seed/Adempiere_pg.jar && mv Adempiere_pg.dmp ~/idempiere_12

# 複製編譯成品
cp ~/idempiere/org.idempiere.p2/target/products/org.adempiere.server.product/linux/gtk/x86_64/ ~/idempiere_12/ -R

# 匯入種子資料庫
cd ~/idempiere_12/ && psql -d idempiere -U adempiere -h localhost -f Adempiere_pg.dmp

# 執行初始設定
cd ~/idempiere_12/x86_64/ && ./console-setup-alt.sh

# 匯入預設資料
cd ~/idempiere_12/x86_64/utils && ./RUN_ImportIdempiere.sh

步驟五:設定系統服務

建立 systemd 服務檔案 /etc/systemd/system/idempiere.service

[Unit]
Description=iDempiere ERP Server
After=network.target postgresql.service

[Service]
Environment="TZ=Asia/Taipei"
Type=simple
User=root
Group=root
WorkingDirectory=/root/idempiere_12/x86_64
ExecStart=/root/idempiere_12/x86_64/idempiere-server.sh
Restart=on-failure
RestartSec=5
KillMode=control-group

[Install]
WantedBy=multi-user.target
# 啟用並啟動服務
systemctl daemon-reload
systemctl start idempiere
systemctl enable idempiere
systemctl status idempiere

步驟六:啟用繁體中文

詳細步驟可參考我的文章〈[iDempiere] 部署上線版的流程方法(含中文化)〉和〈[iDempiere] User, Client 與本地化〉,這裡列出關鍵步驟:

  1. 使用 SuperUser / System 角色登入
  2. 搜尋 Language 功能,找到 zh_TW,勾選 System Language 和 Login Locale 並儲存
  3. 搜尋 Translation Import/Export,匯入 繁體中文語系包
  4. 搜尋 Synchronize Terminology 同步一次
  5. 回到 Language 設定,點選 Language Maintenance 執行 Add Missing Translation
  6. 搜尋 Cache Reset 清除快取
  7. 登出後重新登入,即可看到中文介面

步驟七:安全性與反向代理

設定 Nginx 反向代理 + SSL

建議使用 Nginx 做反向代理並搭配 Let's Encrypt 免費 SSL 憑證:

# 安裝 Nginx 和 Certbot
sudo apt install nginx certbot python3-certbot-nginx -y

建立 Nginx 設定檔 /etc/nginx/sites-available/idempiere

server {
    listen 80;
    server_name erp.yourdomain.com;

    location / {
        proxy_pass https://127.0.0.1:8443;
        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 支援(iDempiere 的桌面通知需要)
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}
# 啟用設定
sudo ln -s /etc/nginx/sites-available/idempiere /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

# 取得 SSL 憑證
sudo certbot --nginx -d erp.yourdomain.com

步驟八:備份策略

定期備份資料庫是維運的基本功:

#!/bin/bash
# /root/scripts/backup-idempiere.sh
BACKUP_DIR="/root/backups"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR

# 備份資料庫
pg_dump -U adempiere -h localhost idempiere | gzip > "$BACKUP_DIR/idempiere_${DATE}.sql.gz"

# 保留最近 7 天的備份
find $BACKUP_DIR -name "idempiere_*.sql.gz" -mtime +7 -delete

加入 crontab 每日執行:

echo "0 3 * * * /root/scripts/backup-idempiere.sh" | crontab -

安裝 REST API 外掛

REST API 外掛讓 iDempiere 可以與外部系統整合,強烈建議安裝。詳細步驟請參考〈部署上線版的流程方法〉文章的「安裝 REST API 外掛」章節。

上線前檢查清單

  • ☐ PostgreSQL 連線驗證方式已從 peer 改為 scram-sha-256
  • ☐ 資料庫密碼已從預設值修改
  • ☐ SuperUser 密碼已修改(預設 System)
  • ☐ 時區已正確設定(Asia/Taipei)
  • ☐ 中文字型已安裝
  • ☐ 繁體中文語系已匯入
  • ☐ SSL 憑證已設定(反向代理)
  • ☐ 防火牆已設定(僅開放必要端口)
  • ☐ 資料庫備份 crontab 已設定
  • ☐ systemd 服務已設定為開機自動啟動
  • ☐ 已測試 reboot 後服務自動恢復

小結

iDempiere 的正式部署並不複雜,但細節很多。把握住幾個重點:PostgreSQL 的 locale 設定、Java 版本匹配、時區設定、以及安全性配置,基本上就不會有太大問題。

下一篇我們會進入系列的核心 — 銷售流程全走查。從建立客戶、開報價單到收款沖帳,一步步在 GardenWorld 示範資料中實際操作。


iDempiere 開源 ERP 系列文章(完整目錄)


參考資料

  1. [iDempiere] 開源 ERP 部署上線版 Production 的流程方法(含中文化)— MXP Blog
  2. [iDempiere] Mac 開發環境建置 2025 年 OpenJDK 23 版本 — MXP Blog
  3. [iDempiere] User, Client 與本地化 — MXP Blog
  4. iDempiere Wiki - Install Prerequisites
  5. iDempiere GitHub Repository
  6. iDempiere 繁體中文語系包
  7. SDKMAN - Software Development Kit Manager

Share:

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


文章
Filter
Apply Filters
Mastodon