セルフホスティング
アップデート
稼働中の TraderMemos インスタンスを更新する方法 — プルして再起動するだけ。マイグレーションは自動実行されます。
データベースのマイグレーションは API 起動時に自動実行されるため、アップグレードはプルと 再起動だけです。とはいえ、メジャーバージョンをまたぐ場合は事前に バックアップを取得してください。
Docker(既定)
cd TraderMemos
git pull # compose/Makefile の変更があれば取り込む
docker compose pull # 新しいイメージを取得
make up # コンテナを再作成(docker compose up -d)Hub のイメージを取得するのではなく、ソースからビルドしている場合は次のとおりです。
git pull
make up-build # リポジトリから両方のイメージを再ビルド稼働中のバージョンを確認します。
curl -s http://localhost:3000/healthz
# {"status":"ok","version":"0.7.0","go":"go1.26","commit":"…"}バージョンの固定(本番環境で推奨)
latest はリリースのたびに移動します。ルートの .env でリリースを固定し、意図的に上げていく
運用にしてください。
# .env
TM_IMAGE_TAG=0.7.0# アップグレード: TM_IMAGE_TAG を編集してから
docker compose pull && make up公開されるタグは semver に従います(0.7.0、0.7、0、latest、および不変のコミット sha
タグ)。イメージはマルチアーキテクチャ対応です(amd64 + arm64)。リリースと主な変更点は
CHANGELOG と
GitHub Releases に記載されています。
マイグレーションの挙動
- マイグレーションは API バイナリに埋め込まれ、起動時に適用されます(SQLite と Postgres の両系統)。
- SQLite の DB の隣に置かれるファイルロック(
tradermemos.db.migrate.lock)が、2 つのプロセスが 同時に起動した場合の同時マイグレーションを防ぎます。 - 自動ダウングレードはありません。スキーマのマイグレーション後に古いイメージへ戻すことは サポートされていません。代わりにアップグレード前のバックアップ から復元してください。
フォーク / CDN 構成の場合
- Vercel / Cloudflare / Netlify の Web: 自分のフォークの既定ブランチへプッシュすると自動的に 再デプロイされます。フォークを上流と同期することが、そのままアップデートになります。
- Railway の API: プッシュのたびに再デプロイされます。
/dataボリュームはデプロイをまたいで 永続するため、アタッチしたままにしてください。