システム更新ガイド¶
本ドキュメントでは、New APIシステムの更新方法とベストプラクティスを提供し、システムが最新バージョンへスムーズにアップグレードされることを保証します。
更新前の準備作業¶
システムを更新する前に、以下の準備作業を実行することを推奨します。
- データのバックアップ:データベースと重要な設定ファイルをバックアップします
- 更新履歴の確認:GitHub Releasesで最新バージョンの更新内容を確認します
- 互換性の確認:新バージョンが既存のプラグイン、統合、またはカスタム設定と互換性があるかを確認します
- 適切な時間の選択:ユーザーへの影響を減らすため、トラフィックの少ない時間帯に更新を実行します
Dockerデプロイの更新方法¶
方法一:シングルコンテナデプロイの更新¶
単一のDockerコンテナを使用してNew APIをデプロイしている場合は、以下の手順で更新できます。
# ラストイメージをプル
docker pull calciumion/new-api:latest
# 古いコンテナを停止して削除
docker stop new-api
docker rm new-api
# 同じパラメータを使用してコンテナを再実行
docker run --name new-api -d --restart always \
-p 3000:3000 \
-e TZ=Asia/Shanghai \
-v /your/data/path:/data \
calciumion/new-api:latest
ご注意ください
特にデータボリュームのマウントと環境変数の設定において、元のコンテナと同じパラメータを使用して新しいコンテナを起動するようにしてください。
方法二:Docker Composeを使用した更新¶
Docker Composeを使用してデプロイしている場合(Docker Compose設定説明を参照)、更新プロセスはより簡単です。
# プロジェクトディレクトリへ移動
cd new-api
# 最新イメージをプル
docker compose pull
# サービスを停止して再起動
docker compose down
docker compose up -d
または、より簡潔なコマンドを使用します。
方法三:宝塔パネルを使用した更新¶
宝塔パネル(BaoTa Panel)を使用してデプロイしている場合は、以下の手順で更新できます。
- 宝塔パネルにログインし、Docker管理 -> コンテナリスト へ移動します。
- New APIコンテナを見つけ、その他 -> 再作成 をクリックします。
- 最新イメージのプル オプションにチェックを入れ、他の設定が変更されないことを確認します。
- 送信 をクリックすると、システムは自動的に最新イメージをプルし、コンテナを再作成します。
ソースコードからコンパイルした場合の更新方法¶
ソースコードからNew APIをコンパイルしてデプロイしている場合、更新手順は以下の通りです。
# プロジェクトディレクトリへ移動
cd new-api
# 最新コードをプル
git pull
# バックエンドをコンパイル
go build -o new-api
# フロントエンドを更新してコンパイル
cd web
bun install
bun run build
cd ..
# サービスを再起動
./new-api --port 3000
マルチノードデプロイの更新戦略¶
マルチノードデプロイ環境の場合、以下の更新戦略を採用することを推奨します。
- まずスレーブノードを更新:最初に1つのスレーブノードを更新し、その安定性をテストします。
- 段階的に進行:スレーブノードが安定していることを確認した後、残りのスレーブノードを順次更新します。
- 最後にマスターノードを更新:すべてのスレーブノードが安定稼働した後、マスターノードを更新します。
この戦略により、サービス中断のリスクを最大限に抑えることができます。
詳細ガイド
クラスタデプロイの完全なガイドについては、クラスタデプロイメントドキュメントを参照してください。
更新後の確認事項¶
システム更新後、システムが正常に動作していることを確認するために、以下の事項をチェックしてください。
- 管理画面へのアクセス:正常にログインし、管理画面にアクセスできることを確認します
- ログの確認:システムログにエラーや警告がないかを確認します
- API呼び出しのテスト:いくつかのAPI呼び出しをテストし、機能が正常であることを確認します
- データベース移行の確認:データベース構造の更新が成功したことを確認します
- チャネルステータスの確認:すべてのチャネル接続が正常であることを確認します
バージョンロールバック¶
更新後に問題が発生した場合、以前の安定バージョンにロールバックできます。
Docker ロールバック¶
# 特定バージョンのイメージをプル
docker pull calciumion/new-api:v1.x.x
# 現在のコンテナを停止して削除
docker stop new-api
docker rm new-api
# 旧バージョンイメージを使用してコンテナを再作成
docker run --name new-api -d --restart always \
-p 3000:3000 \
-e TZ=Asia/Shanghai \
-v /your/data/path:/data \
calciumion/new-api:v1.x.x
ソースコード ロールバック¶
# プロジェクトディレクトリへ移動
cd new-api
# 特定のバージョンに切り替え
git checkout v1.x.x
# 再コンパイル
go build -o new-api
# フロントエンドを更新してコンパイル
cd web
bun install
bun run build
cd ..
# サービスを再起動
./new-api --port 3000
よくある質問¶
更新後にサービスが起動しない¶
- ログにエラーメッセージがないか確認してください
- データベース接続が正常か確認してください
- 環境変数の設定が正しいか確認してください
更新後に機能が異常になる¶
- API形式の変更がないか確認してください
- フロントエンドとバックエンドのバージョンが一致しているか確認してください
- 新バージョンに追加の設定が必要ないか確認してください
データベース構造の非互換性¶
- 更新履歴にデータベース移行に関する説明がないか確認してください
- データベース移行スクリプトを手動で実行する必要があるか確認してください
- 開発者にデータベースアップグレードのガイダンスを問い合わせてください
自動更新ツール(慎重に使用)¶
自動更新を希望するユーザーは、Watchtowerを使用してコンテナを自動更新できます。
docker run --rm -v /var/run/docker.sock:/var/run/docker.sock \
containrrr/watchtower -c \
--run-once new-api
ご注意ください
自動更新は、特にデータベース構造が変更される際に予期せぬ問題を引き起こす可能性があります。自動更新はテスト環境でのみ使用し、本番環境では手動で更新プロセスを制御することを推奨します。