SSH Tunnel 打造跨網段開發流:筆電直連家裡 Mac Mini 上的 Hermes Agent
# TL;DR
我的開發環境是這樣的:
本地端:筆電(macOS)上跑的是 Hermes AI Agent 的 Web 管理介面(Multi-Agent 平台前端)
遠端:Hermes Agent 本身架在家裡的 mac mini,listen 在 127.0.0.1:8642,同時還肩負著 Telegram Bot、Discord Bot 等對外服務
我在咖啡廳寫程式時,需要本地的前端能打到家裡的 Hermes 後端 API。最後用 SSH Tunnel + Tailscale 解決,前後端 code 各自不動一行。
這篇記錄完整流程,包含原理、指令、以及實際踩過的坑。
# 場景與目標
more...2025 OEM 網站開發筆記 [60] - Django 開發伺服器轉 uWSGI 正式上線環境流程
# 前言
本篇著重在從開發環境切換至 uWSGI 正式環境需改動的地方,而不是從 0 開始,所以會更精簡,詳細從開始部署以及更詳細的參數解釋可參考
透過 Nginx 部署 Django 至私有主機
# Django 開發伺服器轉向 uWSGI 的優點
Django 的 python manage.py runserver 是一個開發伺服器,而 uWSGI 是生產級別(Production Deployment)的應用伺服器
使用 uWSGI 而不是開發伺服器的原因:
性能優化:uWSGI 可生成多個工作進程來將傳入的請求並行化到多個 CPU 核心,才能處理高流量網站。
安全性更高:Djang
more...2025 OEM 網站開發筆記 [10] - Martor 編輯器圖片上傳至專案圖片目錄並自動以文章 slug 命名創建資料夾
# 自訂上傳圖片目的地
透過 imgur 來管理專案圖片是不理想的且 imgur 的圖片連結也會隨著時間而失效
MARTOR_UPLOAD_PATH : 儲存圖片的資料夾路徑目的地
MARTOR_UPLOAD_URL : 上傳圖片的 API URL(views)
# backend/settings.py
...
# Upload to locale storage
MARTOR_UPLOAD_PATH = 'images/uploads/{}'.format(time.strftime("
more...Go 語言函式定義跳轉 (VS Code)
# 過程
開發時,已經習慣長按 ctrl+類名或函式名稱,讓編輯器自動跳轉到該類別或函式的定義位置來快速查看程式碼的實作細節
由於我改用 mise 來管理 golang 版本,導致 vscode golang extension 無法正確辨識 golang 的執行檔位置,長按 ctrl + 點擊類名或函式名稱時就沒反應
# 解法
ctrl + , 快速打開設定頁面,搜尋 go.alternateTools 並點擊在 settings.json 中編輯
直接在 settings.json 中加入以下設定
....
"go.alternateTools": 
more...2025 OEM 網站開發筆記 [番外] - GSAP target [元素類別名稱] not found 問題解決
# 問題
GSAP target .page-title not found. https://gsap.com Error Component Stack
at BlogPostList (blog-post-list.tsx:15:19)
at div (<anonymous>)
at div (<anonymous
以上這類錯誤發生的主因是 GSAP 嘗試在 DOM 元素完全渲染到頁面之前對其進行動畫處理
原本會導致錯誤發生的程式碼:
useGSAP(() => {
// 頁面載入時的
more...2025 OEM 網站開發筆記 [30] - Django 郵件伺服器設 & 前端帶入寄件人資訊自動寄信
# 前言
像這種郵件發送的功能,通常會在後端處理,前端只需提供表單內容,這樣做的原因有幾個:
安全性:郵件發送需要 SMTP 憑證,這些不應暴露在前端程式碼
可靠性:Django 有成熟的郵件發送模塊(django.core.mail)
擴展性:後期可以輕鬆添加更多功能,如記錄表單歷史、自動回覆等
防濫用:可以實現速率限制、驗證碼等防護機制
# 後端
針對此專案我會額外建立一個 django app 來專門放所有與郵件相關的功能
# settings 配置郵件設定
EMAIL_HOST 是用中華電信的 SMTP 郵件伺服器,通常 TLS 連接使用的是端口 587
# settings.py
more...2025 OEM 網站開發筆記 [11] - 開發後台 Markdown 編輯器並於前端成功渲染
# 前言
本專案選擇 martor 作為後台的文章內文 Markdown 編輯器,比 ckeditor 更輕量化且支援 Markdown 語法,還有提供預覽、支援圖片上傳...功能等功能
# martor 編輯器套件設定
安裝套件
pip install martor
然後在 settings.py 進行基本設定
# settings.py
INSTALLED_APPS = [
# ...
'martor',
# ...
]
# Martor 配置
MARTOR_ENABLE_CONFIGS = {
more...SIP Protocol 教學(二):為什麼 VoIP 通話聲音失真?從 SDP 協商到 G.711 編碼一次搞懂
一個「聲音失真」的 Bug 背後,藏了多少層細節?從 SDP Offer/Answer 協商、G.711 編碼差異,到 Gain 調整提升 ASR 辨識率,一次搞懂。
more...




