メインコンテンツまでスキップ

環境変数構成

このドキュメントでは、ABC User FeedbackのAPIサーバーおよびウェブサーバーで使用する主要な環境変数と設定方法を説明します。


1. APIサーバー環境変数

必須環境変数

環境変数説明デフォルト
JWT_SECRETJWT署名用シークレットキーなしjwtsecretjwtsecretjwtsecret
MYSQL_PRIMARY_URLMySQL接続URLなしmysql://user:pass@host:3306/db
ACCESS_TOKEN_EXPIRED_TIMEAccess Token有効期間10m10m30s1h
REFRESH_TOKEN_EXPIRED_TIMERefresh Token有効期間1h1h7d

JWTシークレットは十分に複雑で安全な文字列を使用する必要があります。

⚠️ セキュリティ注意事項

  • JWT_SECRETは最低32文字以上の複雑な文字列を使用してください
  • 本番環境では絶対にデフォルト値を使用しないでください
  • 環境変数ファイル(.env)はバージョン管理に含めないでください
  • 機密情報は環境変数やシークレット管理システムを通じて管理してください

オプション環境変数

環境変数説明デフォルト
APP_PORTAPIサーバーポート40004000
APP_ADDRESSバインドアドレス0.0.0.0127.0.0.1
ADMIN_WEB_URL管理者ウェブURLhttp://localhost:3000https://admin.company.com
BASE_URLSwaggerドキュメントで使用するAPIサーバーの公開URLなしhttps://api.example.com
MYSQL_SECONDARY_URLSセカンダリDB URL(JSON配列)なし["mysql://..."]
AUTO_MIGRATIONアプリ起動時のDB自動マイグレーションtruefalse
MASTER_API_KEYマスター権限APIキー(オプション)なしabc123xyz
NODE_OPTIONSNode実行オプションなし--max_old_space_size=4096

SMTP設定(メール認証)

環境変数説明
SMTP_HOSTSMTPサーバーアドレスsmtp.gmail.com
SMTP_PORTポート(通常587または465)587
SMTP_USERNAMEログインユーザーuser@example.com
SMTP_PASSWORDログインパスワードまたはトークンapp-password
SMTP_SENDER送信者アドレスnoreply@company.com
SMTP_BASE_URLメール内リンク用基本URLhttps://feedback.company.com
SMTP_TLSTLS使用有無true
SMTP_CIPHER_SPEC暗号化仕様TLSv1.2
SMTP_OPPORTUNISTIC_TLSSTARTTLSサポート有無true

📎 詳細設定については、SMTP統合ガイドを参照してください。


2. OpenSearch設定(オプション)

環境変数説明
OPENSEARCH_USEOpenSearch有効化有無true
OPENSEARCH_NODEOpenSearchノードURLhttp://localhost:9200
OPENSEARCH_USERNAME認証IDadmin
OPENSEARCH_PASSWORD認証パスワードadmin123

OpenSearchは検索速度向上およびAI機能改善に使用されます。


3. 自動フィードバック削除設定

環境変数説明デフォルト / 条件
AUTO_FEEDBACK_DELETION_ENABLED古いフィードバック削除機能有効化false
AUTO_FEEDBACK_DELETION_PERIOD_DAYS削除基準日数365(有効な場合必須)

4. ウェブサーバー環境変数

必須環境変数

環境変数説明
NEXT_PUBLIC_API_BASE_URLクライアントで使用するAPIサーバーアドレスhttp://localhost:4000

オプション環境変数

環境変数説明デフォルト
PORTフロントエンドポート30003000

5. 設定方法

Docker Compose例

services:
api:
image: line/abc-user-feedback-api
environment:
- JWT_SECRET=changeme
- MYSQL_PRIMARY_URL=mysql://user:pass@mysql:3306/userfeedback
- SMTP_HOST=smtp.sendgrid.net
- SMTP_USERNAME=apikey
- SMTP_PASSWORD=your-sendgrid-key

.envファイル例

# apps/api/.env
JWT_SECRET=changemechangemechangeme
MYSQL_PRIMARY_URL=mysql://root:pass@localhost:3306/db
ACCESS_TOKEN_EXPIRED_TIME=10m
REFRESH_TOKEN_EXPIRED_TIME=1h
SMTP_HOST=smtp.example.com
SMTP_SENDER=noreply@example.com
# BASE_URL=https://api.example.com # リバースプロキシの後ろで提供する場合に設定

# apps/web/.env
NEXT_PUBLIC_API_BASE_URL=http://localhost:4000

7. トラブルシューティングガイド

問題原因と解決策
環境変数が認識されない.env位置確認またはコンテナ再起動
DB接続失敗MYSQL_PRIMARY_URL形式または接続情報確認
SMTPエラーポート/TLS設定または認証情報再確認
OpenSearchエラーノードURLまたはユーザー認証確認
JWTトークンエラーJWT_SECRET長さおよび複雑性確認
環境変数検証失敗必須環境変数欠落またはタイプエラー確認
ポート競合APP_PORTPORT設定確認

関連ドキュメント