TraderMemos
セルフホスティング

設定

API が読み取るすべての TM_* 環境変数と、その既定値・制御内容の一覧です。

サーバーの設定はすべて TM_ プレフィックスの環境変数で行います。シェル、Compose の environment:、またはローカル開発では api/.env に設定してください。変更後は API を再起動する 必要があります。

基本

変数既定値用途
TM_HTTP_PORT8080API のリッスンポート。PORT(Railway/Heroku 形式)は TM_HTTP_PORT が未設定の場合にのみ尊重されます
TM_DATABASE_URL(未設定 → SQLite)統一 DB URL — sqlite:///data/tradermemos.db または postgres://user:pass@host:5432/db?sslmode=require空文字列を設定すると起動エラーになります
TM_DB_PATHdata/tradermemos.db旧来の SQLite パス。TM_DATABASE_URL が未設定の場合にのみ使われます
TM_ATTACH_DIR(自動導出)添付ファイル/メディアのディスクルート。SQLite では <db dir>/attachments、Postgres では data/attachments が既定です。Postgres では明示的に設定してください
TM_DEFAULT_CURRENCYUSD口座の既定通貨
TM_LOG_LEVELinfoログレベル(debuginfowarnerror

認証とセキュリティ

変数既定値用途
TM_JWT_SECRETdev-insecure-change-meJWT 署名キー、32 文字以上。既知の脆弱な値の場合、TM_ALLOW_INSECURE_JWT=true がない限りサーバーは起動を拒否します。openssl rand -hex 32 で生成してください
TM_ALLOW_INSECURE_JWTfalse(同梱の Compose では初回起動の利便性のため true脆弱/短い JWT シークレットを許可します。公開ホストでは絶対に有効にしないでください
TM_ALLOW_REGISTRATIONfalse初回ユーザーのセットアップ後に POST /auth/register を開放します。既定は無効で、明示的に有効化しない限りオーナーのみが存在します
TM_CORS_ORIGINS(空 — CORS 無効)CDN + API 分離構成向けのカンマ区切り許可リスト。https://*.vercel.app のようなワイルドカードホストに対応します。同一オリジン構成では空のままにしてください

アップロード上限

変数既定値用途
TM_ATTACH_MAX_BYTES10485760(10 MiB)トレードのスクリーンショットやノートメディアの 1 ファイルあたり上限
TM_IMPORT_MAX_BYTES10485760(10 MiB)CSV/JSON インポートのアップロード上限
TM_OCR_MAX_BYTES10485760(10 MiB)スクリーンショットスキャン画像の上限(0 以下の場合は添付ファイルの上限にフォールバックします)

同梱の nginx は client_max_body_size 20m を許可しています。いずれかの上限を 20 MiB を超えて 引き上げる場合は、nginx の値(および上流のリバースプロキシ) も引き上げてください。

AI — スクリーンショットスキャンとトレードコーチ

これらは既定値にすぎません設定 → AI で AI 設定を保存すると、データベースの値が優先 されます。キーはサーバー側に保存され、ブラウザへ送られることはありません。 AI 機能を参照してください。

変数既定値用途
TM_OCR_ENABLEDfalseスクリーンショットからの約定抽出を有効化
TM_OCR_VISION_BASE_URLhttps://api.openai.com/v1画像入力用の OpenAI 互換エンドポイント
TM_OCR_VISION_API_KEY(空)画像入力用 API キー
TM_OCR_VISION_MODELgpt-4o-mini画像入力モデル
TM_OCR_VISION_TIMEOUT_SEC90画像入力リクエストのタイムアウト(秒)
TM_COACH_ENABLEDfalseLLM トレードコーチを有効化
TM_COACH_BASE_URLhttps://api.openai.com/v1コーチ用の OpenAI 互換エンドポイント
TM_COACH_API_KEY(空)コーチ用 API キー
TM_COACH_MODELgpt-4o-miniコーチ用モデル

マーケットデータ

変数既定値用途
TM_MARKET_DATA_ENABLEDtrueマーケットデータサービスを有効化
TM_MARKET_DATA_PROVIDERyahooプロバイダー名
TM_MARKET_DATA_API_KEY(空)プロバイダーが必要とする場合の API キー
TM_ECON_CALENDAR_ENABLEDtrue経済指標カレンダーのフィードを有効化
TM_ECON_CALENDAR_FEED_URL(組み込み)イベントフィード URL の上書き
TM_ECON_CALENDAR_REFRESH_MIN60フィード更新間隔(分)

共有とバックグラウンドジョブ

変数デフォルト用途
TM_SHARE_LINKS_ENABLEDfalse公開シェアページを有効化。デフォルトはオフ — シェアリンクはジャーナルの一部を認証なしで公開します
TM_PUBLIC_WEB_URL(空)シェアリンク URL の生成に使う公開 Web アプリのオリジン。API と同一オリジンで Web を配信する構成(同梱の nginx)では空のまま
TM_JOBS_ENABLEDtrueバックグラウンドジョブの全体スイッチ。レプリカを増やす場合は 1 台だけで動くよう他を無効化
TM_JOB_EXCURSION_INTERVAL_MIN360MAE/MFE バックフィルの間隔(分、0 で無効)
TM_JOB_EXCURSION_LIMIT101 回のバックフィルで処理するトレード数(0 で無効)
TM_JOB_FLEX_SYNC_INTERVAL_MIN360IBKR Flex 自動同期の間隔(分、0 で無効)
TM_JOB_ALERTS_INTERVAL_MIN60アラートルール評価の間隔(分、0 で無効)
TM_ALERTS_ALLOW_PRIVATE_WEBHOOKSfalseアラート Webhook がプライベート/ループバックアドレスへ届くのを許可(SSRF ガード — 受信先が LAN 内にある場合のみオンに)

Web のビルド時変数

SPA は静的です。以下はビルド時に埋め込まれる値で、サーバーが読み取るものではありません。

変数用途
VITE_APIビルドに埋め込む固定の API ベース(例: https://api.example.com/api/v1)。空のままにすると相対パス /api/v1 を使うか、ログイン時にユーザーがサーバー欄を設定します

Compose 専用の変数

ルートの .env から docker compose が読み取るもので、コンテナには渡されません。

変数既定値用途
DOCKERHUB_USERNAMEsinhong2011tradermemos-api / tradermemos-web イメージの Docker Hub ネームスペース
TM_IMAGE_TAGlatestイメージタグ — 本番では 0.1.6 のようにリリースを固定してください

このページの内容