PolyMedX Production 部署精簡版(執行用)#

正式環境:MongoDB Server(獨立) + Application Server(polymed-system)

這裏假設:

Application Server:10.10.0.10 MongoDB Server: 10.10.0.20


0. 首次取得原始碼(Application Server)#

sudo mkdir -p /opt/polymedx
sudo chown "$USER" /opt/polymedx
cd /opt/polymedx

repo init \
  -u git@ssh.dev.azure.com:v3/pixsee/PolyMedX/polymedx-manifest \
  -b main \
  -m default.xml

repo sync -c -j8

1. MongoDB Server#

# 1. 設定目錄
sudo mkdir -p /opt/polymedx
sudo chown "$USER" /opt/polymedx
cd /opt/polymedx

# 2. 複製檔案
# 將其中的 Application Server 中的 workspace-config/mongodb-deployment 整個目錄複製到 MongoDB Server 的 /opt/polymedx/

# 3. 確認目錄(從 Application Server 複製過來)
# /opt/polymedx/mongodb-deployment/
# ├── docker-compose.yml
# ├── production.mongodb.env.example
# └── mongo-init/

cd /opt/polymedx/mongodb-deployment

# 4. 設定
cp production.mongodb.env.example production.mongodb.env
chmod 600 production.mongodb.env
# 編輯 production.mongodb.env(IP、帳密、INIT_CLIENT_*)

production.mongodb.env 關鍵項目:

MONGO_BIND_ADDRESS=10.10.0.20 #如果遇到問題改用 0.0.0.0
MONGO_PORT=27017
DEFAULT_MONGO_DB_NAME=tams
MONGO_INITDB_ROOT_USERNAME=tams_root
MONGO_INITDB_ROOT_PASSWORD='強密碼'
MONGO_APP_USERNAME=polymedx_app
MONGO_APP_PASSWORD='另一組強密碼'
INIT_CLIENT_ID=production-client
INIT_CLIENT_SECRET='強密碼'
INIT_CLIENT_NAME=PolyMedX Production
# 5. 啟動
docker compose --env-file production.mongodb.env config -q
docker compose --env-file production.mongodb.env pull
docker compose --env-file production.mongodb.env up -d
docker compose --env-file production.mongodb.env ps   # 確認 healthy

# (可選)既有 volume 補建 admin
docker compose --env-file production.mongodb.env \
  --profile bootstrap run --rm bootstrap-admin

2. Application Server#

# 1. 進入 workspace(repo sync 後的根目錄)
cd /opt/polymedx

# 2. 建立 env
cp production.env.example production.env
cp tams-frontend/.env.example tams-frontend/.env
cp tams-backend-service/.env.example tams-backend-service/.env
cp rmf-api-service/.env.example rmf-api-service/.env

chmod 600 production.env tams-backend-service/.env rmf-api-service/.env tams-frontend/.env

production.env 關鍵項目:

DEFAULT_MONGO_URI=mongodb://10.10.0.20:27017/tams?authSource=tams
DEFAULT_MONGO_DB_NAME=tams
MONGO_APP_USERNAME=polymedx_app
MONGO_APP_PASSWORD='與 MongoDB 相同密碼'
REDIS_PASSWORD='強密碼'
RMF_API_KEY='正式 RMF API key'
ROSBRIDGE_URL=ws://host.docker.internal:9090
# 3. 驗證連線
nc -vz 10.10.0.20 27017

# 4. 部署
make prod-config          # 確認沒有 mongodb 服務
make prod-build           # 首次或程式更新時
make prod-up              # 啟動

# 5. 檢查
make prod-ps
make prod-logs

首次登入:

  • Email:admin@tams.com
  • Password:Tams123! 上線後請立即修改密碼

3. 日常指令#

指令用途
make prod-up啟動
make prod-ps狀態
make prod-logs日誌
make prod-restart重啟
make prod-down停止
make prod-up-seedprod-up-build + 地圖 seed job

⚠️ 正式環境請只用 make prod-*,不要用 make up / make down


快速檢查清單#

  • repo sync 完成,原始碼已取得
  • workspace-config/mongodb-deployment 已複製到 MongoDB Server
  • DEFAULT_MONGO_URIMONGO_BIND_ADDRESS 的 ip 設定
  • MONGO_APP_* 兩邊密碼一致
  • make prod-config 無 mongodb 服務
  • 預設管理員密碼已修改