TraderMemos

常見問題與排查

新自託管用戶真正會遇到的問題 —— 登錄、CORS、端口、上傳與數據。

初始化與登錄

登錄頁提示「Could not reach API — check Server URL」

SPA 連不上 API。Docker 一體化部署:Server 字段留空(UI 使用同源 /api/v1)。 CDN + API 分離部署:將 Server 設爲你的 API 源,如 https://api.example.com —— /api/v1 會自動追加。

沒看到初始化嚮導 / 提示「setup already complete」

嚮導只在數據庫沒有任何用戶時出現。已有用戶就直接登錄。想真正從零開始需要清空數據卷 (docker compose down -v —— 這會刪除你的交易日誌)。

爲什麼別人無法註冊?

有意如此。Owner 創建後,POST /auth/register 返回 403,除非設置 TM_ALLOW_REGISTRATION=true。管理員也可以通過 CLI 添加用戶: docker compose exec api /tradermemos create-user --email … --password …

密碼被拒絕

密碼至少需要 10 個字符

忘記密碼了

沒有自助重置功能(你的服務器沒有郵件服務可以發送重置郵件)。使用 API 容器內的管理 CLI 重置:

docker compose exec api /tradermemos reset-password --email you@example.com --password '…'

服務端與部署

API 拒絕啓動:「insecure JWT secret」

這是有意設計。請設置真正的密鑰 —— TM_JWT_SECRET=$(openssl rand -hex 32) —— 或者僅限本地一次性測試時設置 TM_ALLOW_INSECURE_JWT=true(隨附的 Compose 爲方便首次 運行已這樣設置;生產環境務必移除)。

3000(或 8080)端口被佔用

修改 docker-compose.yml 中宿主機側的端口映射(如 web 服務改爲 "3001:80")。API 自身端口由 TM_HTTP_PORT 控制。

瀏覽器控制台出現 CORS 錯誤

只有分離部署(UI 與 API 不同源)才需要 CORS。在 API 上設置 TM_CORS_ORIGINS 爲 SPA 的精確來源 —— 支持 https://*.vercel.app 之類的通配符。同源部署 (Docker 一體化、邊緣重寫)應保持留空

能把 API 跑在 Vercel 或 Cloudflare Workers 上嗎?

不能 —— 它是 Go + SQLite + 文件上傳,需要真實磁盤。API 請放在 Docker、VPS、NAS 或 Railway(掛數據卷)上;一鍵按鈕只部署 Web UI。參見 Fork 並部署

我的數據到底在哪裏?

Docker:tm_data 數據卷 —— /data/tradermemos.db 加上 /data/attachments。這個數據卷 就是你的日誌本體;參見備份與恢復

選 SQLite 還是 Postgres?

個人實例選 SQLite(默認)—— 零額外組件,備份就是一個文件。多用戶或已有數據庫設施的 場景適合 Postgres(make up-postgres)。兩者之間遷移:導出 ZIP,再導入即可。

功能

上傳返回 413

文件超過了上限。API 各上限默認 10 MiB(TM_ATTACH_MAX_BYTESTM_IMPORT_MAX_BYTESTM_OCR_MAX_BYTES);隨附 nginx 允許 20 MB。調高對應上限 —— 以及反向代理的 client_max_body_size —— 參見配置參考

同一個文件導了兩次 —— 會有重複嗎?

不會。成交按代碼 + 方向 + 數量 + 價格 + 時間戳去重;重複部分計入已跳過。導錯的批次 也可以在導入頁面整批回滾。

支持列表裏沒有我的券商

先查看支持的券商 —— 預設覆蓋了常見平臺,MT4/MT5 對賬單可直接導入。除此之外,任何包含代碼 / 方向 / 數量 / 價格 / 日期列的 CSV 都能通過 列映射導入。常見表頭會被自動識別。

截圖掃描超時或報錯

設置 → AI → 測試檢查連通性,確認模型支持視覺;本地 / 較慢的模型請調高 TM_OCR_VISION_TIMEOUT_SEC 及代理的讀取超時 (參見反向代理)。「503 not configured」 表示啓用開關、基址與密鑰尚未全部保存。

我的交易數據會被發送到哪裏嗎?

不會。一切都留在你的服務器上。所有例外都在你的掌控之中:AI 功能會調用配置的端點; 行情數據(默認開啓,TM_MARKET_DATA_ENABLED)與財經日曆(默認開啓, TM_ECON_CALENDAR_ENABLED)會從各自數據源獲取公開數據;你創建的警報通道會推送到你的 Webhook 地址或 Expo 推送;你創建的分享鏈接在撤銷前會公開對應的統計頁 (TM_SHARE_LINKS_ENABLED,默認關閉)。

還是沒解決?

  • 查看 API 日誌:make logs(或 docker compose logs -f api
  • curl http://localhost:3000/healthz —— 確認 API 存活並查看版本
  • 帶上日誌輸出提交 issue

本頁內容