<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>筆記</title><link>https://79ba2528.notes-54i.pages.dev/</link><description>Recent content on 筆記</description><generator>Hugo</generator><language>zh-tw</language><atom:link href="https://79ba2528.notes-54i.pages.dev/index.xml" rel="self" type="application/rss+xml"/><item><title/><link>https://79ba2528.notes-54i.pages.dev/docs/log-%E5%BE%AA%E7%92%B0%E7%B4%80%E9%8C%84%E9%83%A8%E7%BD%B2-tams-hmi/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://79ba2528.notes-54i.pages.dev/docs/log-%E5%BE%AA%E7%92%B0%E7%B4%80%E9%8C%84%E9%83%A8%E7%BD%B2-tams-hmi/</guid><description>&lt;h1 id="log-循環紀錄部署tams--hmi"&gt;Log 循環紀錄部署（TAMS + HMI）&lt;a class="anchor" href="#log-%e5%be%aa%e7%92%b0%e7%b4%80%e9%8c%84%e9%83%a8%e7%bd%b2tams--hmi"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;TAMS：每小時更新當天 log；每日 &lt;code&gt;00:10&lt;/code&gt; 完整匯出前一天。&lt;/li&gt;
&lt;li&gt;HMI：每日 &lt;code&gt;09:00&lt;/code&gt; 從 &lt;code&gt;172.18.35.29:3100&lt;/code&gt; 完整匯出前一天。&lt;/li&gt;
&lt;li&gt;兩者皆保留 90 天。&lt;/li&gt;
&lt;li&gt;輸出格式為 JSONL。&lt;/li&gt;
&lt;li&gt;Log 儲存根目錄為 &lt;code&gt;/Data/Log/&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;使用 &lt;code&gt;loki-readers&lt;/code&gt; 群組控管讀取權限。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;目錄結構：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/Data/Log/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;├── tams/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;│ ├── 2026-08-04.jsonl
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;│ └── 2026-08-05.jsonl
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;├── hmi/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;│ └── 2026-08-04.jsonl
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;├── loki-export-cron.log
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;└── loki-export-hmi-cron.log&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="1-安裝-logcli"&gt;1. 安裝 LogCLI&lt;a class="anchor" href="#1-%e5%ae%89%e8%a3%9d-logcli"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;已安裝者可跳過。&lt;/p&gt;
&lt;p&gt;LogCLI 建議與 Loki 使用相同版本。以下以 Loki &lt;code&gt;v2.9.2&lt;/code&gt;、Linux amd64 為例：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt-get update
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt-get install -y curl unzip util-linux
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#953800"&gt;tmp_dir&lt;/span&gt;&lt;span style="color:#0550ae"&gt;=&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#cf222e"&gt;$(&lt;/span&gt;mktemp -d&lt;span style="color:#cf222e"&gt;)&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;curl -fL &lt;span style="color:#0a3069"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; https://github.com/grafana/loki/releases/download/v2.9.2/logcli-linux-amd64.zip &lt;span style="color:#0a3069"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -o &lt;span style="color:#0a3069"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#953800"&gt;$tmp_dir&lt;/span&gt;&lt;span style="color:#0a3069"&gt;/logcli.zip&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;unzip &lt;span style="color:#0a3069"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#953800"&gt;$tmp_dir&lt;/span&gt;&lt;span style="color:#0a3069"&gt;/logcli.zip&amp;#34;&lt;/span&gt; -d &lt;span style="color:#0a3069"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#953800"&gt;$tmp_dir&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo install &lt;span style="color:#0a3069"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -m &lt;span style="color:#0550ae"&gt;0755&lt;/span&gt; &lt;span style="color:#0a3069"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#0a3069"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#953800"&gt;$tmp_dir&lt;/span&gt;&lt;span style="color:#0a3069"&gt;/logcli-linux-amd64&amp;#34;&lt;/span&gt; &lt;span style="color:#0a3069"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; /usr/local/bin/logcli
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;rm -rf &lt;span style="color:#0a3069"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#953800"&gt;$tmp_dir&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo /usr/local/bin/logcli --version&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="2-建立群組授權"&gt;2. 建立群組授權&lt;a class="anchor" href="#2-%e5%bb%ba%e7%ab%8b%e7%be%a4%e7%b5%84%e6%8e%88%e6%ac%8a"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;建議使用群組授權，不要直接開放所有帳號讀取 backend log。&lt;/p&gt;</description></item><item><title/><link>https://79ba2528.notes-54i.pages.dev/docs/polymedx-production-%E9%83%A8%E7%BD%B2%E7%B2%BE%E7%B0%A1%E7%89%88-%E5%9F%B7%E8%A1%8C%E7%94%A8/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://79ba2528.notes-54i.pages.dev/docs/polymedx-production-%E9%83%A8%E7%BD%B2%E7%B2%BE%E7%B0%A1%E7%89%88-%E5%9F%B7%E8%A1%8C%E7%94%A8/</guid><description>&lt;h1 id="polymedx-production-部署精簡版執行用"&gt;PolyMedX Production 部署精簡版（執行用）&lt;a class="anchor" href="#polymedx-production-%e9%83%a8%e7%bd%b2%e7%b2%be%e7%b0%a1%e7%89%88%e5%9f%b7%e8%a1%8c%e7%94%a8"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;blockquote class='book-hint '&gt;
&lt;p&gt;正式環境：MongoDB Server（獨立） + Application Server（polymed-system）&lt;/p&gt;
&lt;/blockquote&gt;&lt;p&gt;這裏假設:&lt;/p&gt;
&lt;p&gt;Application Server：10.10.0.10
MongoDB Server： 10.10.0.20&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="0-首次取得原始碼application-server"&gt;0. 首次取得原始碼（Application Server）&lt;a class="anchor" href="#0-%e9%a6%96%e6%ac%a1%e5%8f%96%e5%be%97%e5%8e%9f%e5%a7%8b%e7%a2%bcapplication-server"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo mkdir -p /opt/polymedx
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo chown &lt;span style="color:#0a3069"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#953800"&gt;$USER&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#34;&lt;/span&gt; /opt/polymedx
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6639ba"&gt;cd&lt;/span&gt; /opt/polymedx
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;repo init &lt;span style="color:#0a3069"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -u git@ssh.dev.azure.com:v3/pixsee/PolyMedX/polymedx-manifest &lt;span style="color:#0a3069"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -b main &lt;span style="color:#0a3069"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -m default.xml
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;repo sync -c -j8&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;
&lt;h2 id="1-mongodb-server"&gt;1. MongoDB Server&lt;a class="anchor" href="#1-mongodb-server"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;# 1. 設定目錄&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo mkdir -p /opt/polymedx
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo chown &lt;span style="color:#0a3069"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#953800"&gt;$USER&lt;/span&gt;&lt;span style="color:#0a3069"&gt;&amp;#34;&lt;/span&gt; /opt/polymedx
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6639ba"&gt;cd&lt;/span&gt; /opt/polymedx
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;# 2. 複製檔案&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;# 將其中的 Application Server 中的 workspace-config/mongodb-deployment 整個目錄複製到 MongoDB Server 的 /opt/polymedx/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;# 3. 確認目錄（從 Application Server 複製過來）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;# /opt/polymedx/mongodb-deployment/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;# ├── docker-compose.yml&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;# ├── production.mongodb.env.example&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;# └── mongo-init/&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6639ba"&gt;cd&lt;/span&gt; /opt/polymedx/mongodb-deployment
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;# 4. 設定&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cp production.mongodb.env.example production.mongodb.env
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;chmod &lt;span style="color:#0550ae"&gt;600&lt;/span&gt; production.mongodb.env
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#57606a"&gt;# 編輯 production.mongodb.env（IP、帳密、INIT_CLIENT_*）&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;production.mongodb.env 關鍵項目：&lt;/strong&gt;&lt;/p&gt;</description></item><item><title/><link>https://79ba2528.notes-54i.pages.dev/docs/%E9%9B%A2%E7%B7%9A%E9%83%A8%E7%BD%B2-docker-image/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://79ba2528.notes-54i.pages.dev/docs/%E9%9B%A2%E7%B7%9A%E9%83%A8%E7%BD%B2-docker-image/</guid><description>&lt;h1 id="離線部署-docker-image"&gt;離線部署 docker image&lt;a class="anchor" href="#%e9%9b%a2%e7%b7%9a%e9%83%a8%e7%bd%b2-docker-image"&gt;#&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;以下是 frontend + backend 的離線部署流程。假設建置機有外網、部署機為一般 Linux x86_64。&lt;/p&gt;
&lt;h2 id="1-有外網的建置機建立-image"&gt;1. 有外網的建置機：建立 image&lt;a class="anchor" href="#1-%e6%9c%89%e5%a4%96%e7%b6%b2%e7%9a%84%e5%bb%ba%e7%bd%ae%e6%a9%9f%e5%bb%ba%e7%ab%8b-image"&gt;#&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;在專案根目錄執行（版本號可自行替換）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6639ba"&gt;export&lt;/span&gt; &lt;span style="color:#953800"&gt;RELEASE_TAG&lt;/span&gt;&lt;span style="color:#0550ae"&gt;=&lt;/span&gt;&lt;span style="color:#0550ae"&gt;20260804&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Frontend：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6639ba"&gt;cd&lt;/span&gt; tams-frontend
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker buildx build &lt;span style="color:#0a3069"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --platform linux/amd64 &lt;span style="color:#0a3069"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --load &lt;span style="color:#0a3069"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -t tams-frontend:&lt;span style="color:#0a3069"&gt;${&lt;/span&gt;&lt;span style="color:#953800"&gt;RELEASE_TAG&lt;/span&gt;&lt;span style="color:#0a3069"&gt;}&lt;/span&gt; &lt;span style="color:#0a3069"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -t tams-frontend:latest &lt;span style="color:#0a3069"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --build-arg &lt;span style="color:#953800"&gt;VITE_WS_URL&lt;/span&gt;&lt;span style="color:#0550ae"&gt;=&lt;/span&gt;same-origin &lt;span style="color:#0a3069"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --build-arg &lt;span style="color:#953800"&gt;VITE_API_URL&lt;/span&gt;&lt;span style="color:#0550ae"&gt;=&lt;/span&gt;/api/v1 &lt;span style="color:#0a3069"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --build-arg &lt;span style="color:#953800"&gt;VITE_LIDAR_MODE&lt;/span&gt;&lt;span style="color:#0550ae"&gt;=&lt;/span&gt;real &lt;span style="color:#0a3069"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --build-arg &lt;span style="color:#953800"&gt;VITE_LIDAR_TEST_ROBOT&lt;/span&gt;&lt;span style="color:#0550ae"&gt;=&lt;/span&gt;&lt;span style="color:#6639ba"&gt;true&lt;/span&gt; &lt;span style="color:#0a3069"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --build-arg &lt;span style="color:#953800"&gt;VITE_HOSPITAL_INITIAL_RELEASE&lt;/span&gt;&lt;span style="color:#0550ae"&gt;=&lt;/span&gt;&lt;span style="color:#6639ba"&gt;true&lt;/span&gt; &lt;span style="color:#0a3069"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --build-arg &lt;span style="color:#953800"&gt;VITE_LOW_BATTERY_THRESHOLD_MIN&lt;/span&gt;&lt;span style="color:#0550ae"&gt;=&lt;/span&gt;&lt;span style="color:#0550ae"&gt;20&lt;/span&gt; &lt;span style="color:#0a3069"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Backend：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f7f7f7;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#6639ba"&gt;cd&lt;/span&gt; ../tams-backend-service
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;docker buildx build &lt;span style="color:#0a3069"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --platform linux/amd64 &lt;span style="color:#0a3069"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --target production &lt;span style="color:#0a3069"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; --load &lt;span style="color:#0a3069"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -t tams-backend:&lt;span style="color:#0a3069"&gt;${&lt;/span&gt;&lt;span style="color:#953800"&gt;RELEASE_TAG&lt;/span&gt;&lt;span style="color:#0a3069"&gt;}&lt;/span&gt; &lt;span style="color:#0a3069"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; -t tams-backend:production &lt;span style="color:#0a3069"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; .&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;code&gt;VITE_API_URL=/api/v1&lt;/code&gt; 會編譯進 frontend bundle，因此瀏覽器會對前端同源 &lt;code&gt;/api/v1/...&lt;/code&gt; 發請求，再由 Nginx 轉送至 backend。&lt;/p&gt;</description></item></channel></rss>