feat: add CodiMD database port-forward helper scripts

Add three scripts to simplify CodiMD database access via port-forward:
- db-port-forward.sh: Start SSH tunnel and kubectl port-forward
- db-port-forward-stop.sh: Stop port-forward processes
- db-status.sh: Check port-forward status

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-07 12:06:47 +08:00
parent a0e20877a2
commit 67d41fa688
3 changed files with 105 additions and 0 deletions

View File

@@ -0,0 +1,31 @@
#!/bin/bash
# 停止 CodiMD 資料庫 Port Forward
echo "=== 停止 CodiMD 資料庫 Port Forward ==="
# 方法 1: 使用保存的 PID
if [ -f /tmp/codimd-db-port-forward.pid ]; then
PID=$(cat /tmp/codimd-db-port-forward.pid)
if ps -p $PID > /dev/null 2>&1; then
kill $PID
echo "✅ 已終止 PID: $PID"
rm -f /tmp/codimd-db-port-forward.pid
exit 0
else
echo "⚠️ PID $PID 不存在,嘗試其他方法..."
rm -f /tmp/codimd-db-port-forward.pid
fi
fi
# 方法 2: 使用 pgrep
PIDS=$(pgrep -f "port-forward.*codimd-db")
if [ -n "$PIDS" ]; then
echo "找到運行中的 port-forward process(es):"
echo "$PIDS"
pkill -f "port-forward.*codimd-db"
echo "✅ 已終止所有相關 process"
exit 0
fi
echo "❌ 沒有找到運行中的 port-forward"
exit 1

51
apps/codimd/db-port-forward.sh Executable file
View File

@@ -0,0 +1,51 @@
#!/bin/bash
# 啟動 CodiMD 資料庫 Port Forward
DB_SVC="codimd-db"
DB_NAMESPACE="default"
LOCAL_PORT="5432"
REMOTE_PORT="5432"
REMOTE_HOST="ubuntu@192.168.42.120"
echo "=== 啟動 CodiMD 資料庫 Port Forward ==="
# 檢查是否已經在運行
if pgrep -f "port-forward.*${DB_SVC}" > /dev/null; then
echo "⚠️ Port-forward 已經在運行中"
echo " 使用 ./db-port-forward-stop.sh 來停止"
exit 1
fi
# 透過 SSH 執行 kubectl port-forward
ssh -L ${LOCAL_PORT}:localhost:${REMOTE_PORT} ${REMOTE_HOST} \
"sudo kubectl port-forward -n ${DB_NAMESPACE} svc/${DB_SVC} ${LOCAL_PORT}:${REMOTE_PORT}" \
&
PF_PID=$!
echo $PF_PID > /tmp/codimd-db-port-forward.pid
# 等待 port 開始監聽
echo "⏳ 等待 port-forward 建立..."
for i in {1..10}; do
if nc -z localhost ${LOCAL_PORT} 2>/dev/null; then
echo "✅ Port-forward 已建立: localhost:${LOCAL_PORT} -> ${DB_SVC}:${REMOTE_PORT}"
echo " PID: $PF_PID"
echo ""
echo "現在可以使用 cli-anything-codimd:"
echo ""
echo " cli-anything-codimd admin list-users \\"
echo " --db-type postgresql \\"
echo " --db-host localhost \\"
echo " --db-name codimd \\"
echo " --db-user codimd \\"
echo " --db-password 8xG94tL0uKlGiBEd"
echo ""
echo "停止方式: ./db-port-forward-stop.sh"
exit 0
fi
sleep 1
done
echo "❌ Port-forward 建立失敗"
rm -f /tmp/codimd-db-port-forward.pid
exit 1

23
apps/codimd/db-status.sh Executable file
View File

@@ -0,0 +1,23 @@
#!/bin/bash
# 檢查 CodiMD 資料庫 Port Forward 狀態
echo "=== CodiMD 資料庫 Port Forward 狀態 ==="
if pgrep -f "port-forward.*codimd-db" > /dev/null; then
PIDS=$(pgrep -f "port-forward.*codimd-db")
echo "✅ Port-forward 正在運行"
echo " PID(s): $PIDS"
# 檢查 port 是否可連接
if nc -z localhost 5432 2>/dev/null; then
echo "✅ Port 5432 可連接"
else
echo "⚠️ Port 5432 無法連接"
fi
exit 0
else
echo "❌ Port-forward 未運行"
echo ""
echo "啟動方式: ./db-port-forward.sh"
exit 1
fi