CLIツール使用方法
ABC User Feedback CLI(auf-cli)は、システムのインストール、実行、管理を簡素化するコマンドラインツールです。Node.jsとDockerがインストールされていれば、追加の依存関係をインストールしたりリポジトリをクローンしたりすることなく、npxを通じてすぐに実行できます。
主要機能
- 必要なインフラの自動設定(MySQL、SMTP、OpenSearch)
- 環境変数設定の簡素化
- APIおよびウェブサーバーの自動起動/停止
- ボリュームデータのクリーンアップ
- 動的Docker Composeファイル生成
使用されるDockerイメージ
line/abc-user-feedback-web:latest- ウェブフロントエンドline/abc-user-feedback-api:latest- APIバックエンドmysql:8.0- データベースrnwood/smtp4dev:v3- SMTPテストサーバーopensearchproject/opensearch:2.16.0- 検索エンジン(オプション)
前提条件
CLIツールを使用する前に、次の要件を満たす必要があります:
基本コマンド
初期化
ABC User Feedbackに必要なインフラを設定するには、次のコマンドを実行します:
npx auf-cli init
このコマンドは次の作業を実行します:
- 環境変数設定用の
config.tomlファイルを作成 - アーキテクチャ(ARM/AMD)に応じて必要なインフラを設定
初期化が完了すると、現在のディレクトリにconfig.tomlファイルが作成されます。必要に応じてこのファイルを編集して環境変数を調整できます。
サーバー起動
APIおよびウェブサーバーを起動するには、次のコマンドを実行します:
npx auf-cli start
このコマンドは次の作業を実行します:
config.tomlファイルから環境変数を読み取り- Docker Composeファイルを生成してサービスを開始
- APIおよびウェブサーバーコンテナと必要なインフラ(MySQL、SMTP、OpenSearch)を起動
サーバーが正常に起動すると、ウェブブラウザでhttp://localhost:3000(または設定されたURL)からABC User Feedbackウェブインターフェースにアクセスできます。CLIは次のURLを表示します:
- ウェブインターフェースURL
- API URL
- MySQL接続文字列
- OpenSearch URL(有効な場合)
- SMTPウェブインターフェース(smtp4dev使用時)
サーバー停止
APIおよびウェブサーバーを停止するには、次のコマンドを実行します:
npx auf-cli stop
このコマンドは実行中のAPIおよびウェブサーバーコンテナとインフラコンテナを停止します。ボリュームに保存されたすべてのデータは保持されます。
ボリュームクリーンアップ
起動中に作成されたDockerボリュームをクリーンアップするには、次のコマンドを実行します:
npx auf-cli clean
このコマンドはすべてのコンテナを停止し、MySQL、SMTP、OpenSearchなどのDockerボリュームを削除します。
警告: この操作はすべてのデータを削除するため、必要な場合は事前にバックアップしてください。
--imagesオプションを使用して未使用のDockerイメージもクリーンアップできます:
npx auf-cli clean --images
設定ファイル(config.toml)
initコマンドを実行すると、現在のディレクトリにconfig.tomlファイルが作成されます。このファイルはABC User Feedbackの環境変数を設定するために使用されます。
以下はconfig.tomlファイルの例です:
[web]
port = 3000
# api_base_url = "http://localhost:4000"
[api]
port = 4000
jwt_secret = "jwtsecretjwtsecretjwtsecretjwtsecretjwtsecretjwtsecret"
# master_api_key = "MASTER_KEY"
# access_token_expired_time = "10m"
# refresh_token_expired_time = "1h"
# [api.auto_feedback_deletion]
# enabled = true
# period_days = 365
# [api.smtp]
# host = "smtp4dev" # SMTP_HOST
# port = 25 # SMTP_PORT
# sender = "user@feedback.com"
# username=
# password=
# tls=
# cipher_spec=
# opportunitic_tls=
# [api.opensearch]
# enabled = true
[mysql]
port = 13306
必要に応じてこのファイルを編集して環境変数を調整できます。環境変数の詳細については、環境変数設定ドキュメントを参照してください。
高度な使用方法
ポート変更
デフォルトでは、ウェブサーバーはポート3000を、APIサーバーはポート4000を使用します。これらを変更するには、config.tomlファイルで次の設定を変更します:
[web]
port = 8000 # ウェブサーバーポート変更
api_base_url = "http://localhost:8080" # API URLも一緒に変更する必要があります
[api]
port = 8080 # APIサーバーポート変更
[mysql]
port = 13307 # 必要に応じてMySQLポート変更
OpenSearch有効化
高度な検索機能のためにOpenSearchを有効にするには:
[api.opensearch]
enabled = true
注意事項:
- OpenSearchには最低2GBの使用可能メモリが必要です
- OpenSearchコンテナは
http://localhost:9200で利用可能です - OpenSearchステータス確認:
http://localhost:9200/_cluster/health
SMTP設定
開発環境では、デフォルトのsmtp4dev設定を推奨します:
[api.smtp]
host = "smtp4dev"
port = 25
sender = "dev@feedback.local"
smtp4devウェブインターフェースはhttp://localhost:5080で送信されたメールを確認できます。
トラブルシューティング
一般的な問題
-
Docker関連エラー:
- Dockerが実行中か確認:
docker --version - Docker権限確認:
docker ps - Docker Desktopが正しくインストールされ実行中か確認
- Dockerが実行中か確認:
-
ポート競合:
- ポート使用確認:
lsof -i :PORT(macOS/Linux)またはnetstat -ano | findstr :PORT(Windows) config.tomlでポート設定変更- 一般的な競合ポート: 3000、4000、13306、9200、5080
- ポート使用確認:
-
サービス起動失敗:
- コンテナログ確認:
docker compose logs SERVICE_NAME - Dockerイメージが利用可能か確認:
docker images - 十分なシステムリソース(メモリ、ディスク容量)を確認
- コンテナログ確認:
-
データベース接続問題:
- MySQLコンテナステータス確認:
docker compose ps mysql - MySQLログ確認:
docker compose logs mysql - 接続テスト:
docker compose exec mysql mysql -u userfeedback -p
- MySQLコンテナステータス確認:
デバッグのヒント
-
コンテナログ確認:
# すべてのコンテナログ
docker compose logs
# 特定のサービスログ
docker compose logs api
docker compose logs web
docker compose logs mysql -
サービスステータス確認:
# APIステータス確認
curl http://localhost:4000/api/health
# OpenSearchステータス確認(有効な場合)
curl http://localhost:9200/_cluster/health -
データベース直接アクセス:
# MySQL接続
docker compose exec mysql mysql -u userfeedback -p userfeedback
制限事項
CLIツールは開発およびテスト環境用に設計されています。本番環境へのデプロイには、次を考慮してください:
-
セキュリティ考慮事項:
- 機密データには設定ファイルではなく環境変数を使用
- 適切なシークレット管理を実装
- 本番レベルのJWTシークレットを使用
- HTTPS/TLS暗号化を有効化
-
スケーラビリティと可用性:
- KubernetesやDocker Swarmなどのオーケストレーションツールを使用
- ロードバランシングと自動スケーリングを実装
- 適切なモニタリングとアラートを設定
- 管理データベースサービス(RDS、Cloud SQLなど)を使用
-
データ管理:
- 自動化されたバックアップ戦略を実装
- 適切なバックアップがある永続ボリュームを使用
- データ保持ポリシーを考慮
- ディスク使用量とパフォーマンスをモニタリング
次のステップ
詳細なAPIおよびウェブサーバー設定オプションについては、環境変数設定ドキュメントを参照してください。