Skip to content

設定(環境変数) ​

すべての設定は環境変数から読み込まれます(internal/config/config.go)。.env.example をコピーして .env を作成し、値を埋めてください。

変数名必須既定値説明
PORT-8080HTTP サーバーの待受ポート
DISCORD_PUBLIC_KEY推奨(空)Interaction 署名検証用の公開鍵(hex)。未設定だと検証をスキップし、警告ログを出力します
BOT_TOKEN✅-Discord Bot トークン。REST API 呼び出しに使用
APPLICATION_ID✅-Discord アプリケーションID。コマンド登録・deferred response の編集先URLに使用
TEAMS_WEBHOOK_URL-(空)設定すると鍵の貸出・返却・遡り登録のたびに Teams の Adaptive Card 通知が送られる
SPREADSHEET_ID✅-ログ記録先の Google スプレッドシートID
KEY_BUTTON_CHANNEL_ID-固定チャンネルID (1479268831447875584)ボタンメッセージ・ステータスメッセージを投稿するチャンネル
LOG_CHANNEL_ID-KEY_BUTTON_CHANNEL_ID と同じ操作ログ・返却期限アラートを投稿するチャンネル。ボタン用チャンネルを騒がしくしたくない場合に分離できる
STATUS_MESSAGE_ID-(空)常設ステータスメッセージのID。既存メッセージを編集し続けるためのもので、初回作成時に自動でファイルへ書き戻される
ENV_FILE_PATH-.envSTATUS_MESSAGE_ID の書き戻し先ファイルパス
SQLITE_DB_PATH-./data/nbc-bot.db返却期限アラートの永続化に使う SQLite ファイルのパス

Google Sheets への認証 ​

nbc-bot は Application Default Credentials(ADC)でスプレッドシートに認証します。ローカルやコンテナ環境では、サービスアカウントJSONキーを用意し GOOGLE_APPLICATION_CREDENTIALS にそのパスを設定してください。サービスアカウントには対象スプレッドシートの編集者権限を共有しておく必要があります。

WARNING

サービスアカウントJSON(*-sa.json)や .env は秘密情報です。.gitignore で除外済みですが、誤ってコミットしないよう注意してください。

STATUS_MESSAGE_ID の永続化について ​

nbc-bot は起動時に .env を読み込みません(.env の読み込みはプロセスマネージャ側、例えば systemd の EnvironmentFile= などに委ねる設計)。そのため STATUS_MESSAGE_ID は「アプリが自分で書き戻す」ことでのみ永続化されます。ENV_FILE_PATH が指すファイルに対して、対象の行だけを書き換える(存在しなければ追記する)安全な書き込み(一時ファイル→rename)を行います。

デプロイ先でこの値が正しく永続化されるよう、ENV_FILE_PATH は実際にプロセスマネージャが読み込む .env ファイルと同じパスを指すようにしてください。