系統需求與前置準備
本文件說明部署 AppFuse 應用系統所需的軟硬體環境及前置準備工作。
系統架構需求
應用伺服器需求
Java 運行環境
本系統需要 JDK 25 或更高版本。
| 名稱 | 版本 | 說明 |
|---|---|---|
| OpenJDK | 25+ | 推薦使用 |
| Azul Zulu | 25+ | 企業支援選項 |
| Oracle JDK | 25+ | 需要授權 |
| Amazon Corretto | 25+ | AWS 環境推薦 |
驗證安裝:
$ java -version
openjdk version "25" 2025-09-16
OpenJDK Runtime Environment (build 25+...)
OpenJDK 64-Bit Server VM (build 25+..., mixed mode, sharing)
Java Application Server
本系統使用符合 Jakarta Servlet 6.1 標準的技術開發,可在以下 Java Application Server 上運行:
| 名稱 | 版本 | Servlet Spec | 說明 |
|---|---|---|---|
| Apache Tomcat | 11.0+ | 6.1 | 推薦使用,本文件主要說明 |
注意:Spring Boot 4.0 要求 Jakarta Servlet 6.1(Jakarta EE 11)。JBoss EAP 8.0 僅支援 Jakarta EE 10(Servlet 6.0),尚不相容。待 Red Hat 發布支援 Jakarta EE 11 的版本後方可使用。
Node.js 環境(建構時需要)
前端應用建構需要 Node.js 22.x。
| 名稱 | 版本 | 說明 |
|---|---|---|
| Node.js | 22.x | LTS 版本 |
| npm | 10.x | 隨 Node.js 安裝 |
驗證安裝:
$ node -version
v22.19.0
$ npm -version
10.x.x
Web 伺服器
| 名稱 | 版本 | 用途 |
|---|---|---|
| Nginx | 1.18+ | 反向代理、靜態檔案服務、SSL 終結 |
作業系統
以下作業系統經過測試驗證:
| 名稱 | 版本 | 說明 |
|---|---|---|
| Ubuntu Server | 22.04+ LTS | 推薦 |
| Rocky Linux | 8.x+ | RHEL 相容 |
| Red Hat Enterprise Linux | 8.x+ | 企業環境 |
| Windows Server | 2019+ | Windows 環境 |
| macOS | 13+ | 開發環境 |
Ubuntu 版本檢查與升級:
# 檢查版本
cat /etc/os-release
# 更新系統套件
sudo apt update
sudo apt -y upgrade
# 升級至新版 Ubuntu(如需要)
sudo do-release-upgrade
資料庫伺服器需求
本系統支援多種關聯式資料庫:
| 名稱 | 版本 | 說明 |
|---|---|---|
| MySQL | 8.0+ | 推薦,廣泛使用 |
| PostgreSQL | 12+ | 開源首選 |
| Microsoft SQL Server | 2019+ | 企業環境 |
| Oracle Database | 19c+ | 企業環境 |
| H2 | 2.x | 僅限開發/測試 |
MySQL 建議配置
-- 檢查 transaction isolation
SHOW GLOBAL VARIABLES LIKE 'transaction_isolation';
-- 建議值:READ-COMMITTED
-- 檢查封包大小
SHOW GLOBAL VARIABLES LIKE 'max_allowed_packet';
-- 建議值:268435456 (256MB)
-- 檢查最大連線數
SHOW GLOBAL VARIABLES LIKE 'max_connections';
-- 建議值:200+
編碼與排序
資料庫必須支援 UTF-8 編碼以處理多國語文:
| 資料庫 | 編碼設定 | 排序設定 |
|---|---|---|
| MySQL | utf8mb4 | utf8mb4_unicode_ci |
| PostgreSQL | UTF8 | en_US.UTF-8 |
| SQL Server | - | Chinese_Taiwan_Stroke_CI_AS |
網路需求
開放埠號
| 埠號 | 服務 | 說明 |
|---|---|---|
| 80 | HTTP | Nginx(可選,建議重導向至 HTTPS) |
| 443 | HTTPS | Nginx(生產環境必須) |
| 8080 | API | Spring Boot(僅內部存取) |
| 3306 | MySQL | 資料庫(僅內部存取) |
| 5432 | PostgreSQL | 資料庫(僅內部存取) |
網路架構
硬體需求
最低需求(開發/測試)
| 資源 | 規格 |
|---|---|
| CPU | 2 核心 |
| 記憶體 | 4 GB |
| 硬碟 | 20 GB SSD |
建議需求(生產環境)
| 資源 | 規格 |
|---|---|
| CPU | 4+ 核心 |
| 記憶體 | 8+ GB |
| 硬碟 | 100+ GB SSD |
時區與時間同步
確認時區設定
系統時區應設定為本地時區,以確保日誌時間易於閱讀:
$ date
Thu Nov 27 10:30:00 CST 2024
$ timedatectl
Local time: Thu 2024-11-27 10:30:00 CST
Universal time: Thu 2024-11-27 02:30:00 UTC
RTC time: Thu 2024-11-27 02:30:00
Time zone: Asia/Taipei (CST, +0800)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
設定時區
如果時區不正確,執行以下指令設定(以台北時區為例):
sudo timedatectl set-timezone Asia/Taipei
時間同步(NTP)
確認系統時間與標準時間同步。檢查 System clock synchronized 是否為 yes:
$ timedatectl
System clock synchronized: yes
NTP service: active
如果顯示 NTP service: inactive,啟用時間同步:
sudo timedatectl set-ntp on
安裝 NTP 服務(選用)
如果系統不支援 timesyncd,可安裝 ntp 套件:
# 停用 timesyncd(避免衝突)
sudo timedatectl set-ntp no
# 安裝 NTP
sudo apt install ntp -y
# 檢查 NTP 同步狀態
ntpq -p
確認同步成功:
$ timedatectl
System clock synchronized: yes
NTP service: n/a
重要:時間不同步可能導致 JWT Token 驗證失敗、日誌時間錯亂等問題。
前置準備清單
在開始安裝前,請確認已完成以下準備:
帳戶與權限
- 應用伺服器的系統帳戶(如
appmgr) - 資料庫管理員帳戶
- 應用程式專用的資料庫帳戶
- 電子郵件服務帳戶(用於系統通知)
資料庫
- 已建立應用程式專用資料庫
- 已配置正確的編碼與排序
- 已授權應用程式帳戶存取資料庫
電子郵件服務
- 已取得 SMTP 伺服器位址
- 已取得郵件帳戶與密碼
- 已確認 SMTP 埠號(通常為 587 或 465)
網路
- 已開放必要的埠號
- 已配置防火牆規則
- (選用)已取得 SSL 憑證
軟體
- 已安裝 JDK 25+
- 已安裝 Apache Tomcat 11.0+
- 已安裝 Node.js 22.x(建構用)
- 已安裝 Nginx
準備工作完成後的資訊
完成準備工作後,您應該具備以下資訊:
# 應用伺服器
應用伺服器位址: app.example.com
系統帳戶: appmgr
系統密碼: ********
# 資料庫
資料庫伺服器位址: db.example.com
資料庫名稱: appdb
資料庫帳戶: appmgr
資料庫密碼: ********
# 電子郵件服務
SMTP 伺服器: smtp.example.com
SMTP 埠號: 587
SMTP 帳戶: noreply@example.com
SMTP 密碼: ********
# SSL(生產環境)
SSL 憑證檔案: /etc/nginx/ssl/example.com.crt
SSL 私鑰檔案: /etc/nginx/ssl/example.com.key
環境檢查腳本
建立以下腳本快速檢查環境:
#!/bin/bash
# check-prerequisites.sh
echo "=== 環境檢查 ==="
echo -n "Java: "
java -version 2>&1 | head -1
echo -n "Node.js: "
node --version 2>/dev/null || echo "未安裝"
echo -n "npm: "
npm --version 2>/dev/null || echo "未安裝"
echo -n "Nginx: "
nginx -v 2>&1
echo "=== 檢查完成 ==="
下一步
環境準備完成後,請參閱 安裝指南 進行系統安裝。