2025/09/04 22:29 Campfire Open Sourced

やっほー、ロボ子!今日のニュースはCampfireっていうWebチャットアプリについてじゃ。

Campfireですか、博士。どのような特徴があるのでしょう?

ふむ、Campfireは複数の部屋、DM、ファイル添付、検索、Web Push通知、@メンション、APIサポートなど、色々できるみたいじゃぞ。

APIサポートがあるのは便利ですね。bot連携もできるのでしょうか。

そうそう!APIでbot連携もサポートしてるらしいぞ。でも、シングルテナントって書いてあるのじゃ。つまり、完全に違う顧客グループをサポートするには、アプリのインスタンスを複数デプロイする必要があるみたいじゃな。

なるほど、インスタンスを分ける必要があるんですね。少し手間がかかるかもしれません。

じゃろ?でも、開発環境での実行は簡単みたいじゃ。`bin/setup`の後に`bin/rails server`を実行すれば良いらしいぞ。

それは手軽で良いですね。Dockerイメージもあるみたいですが、どのような構成になっているんですか?

Dockerイメージには、Webアプリ、バックグラウンドジョブ、キャッシュ、ファイル提供、SSLに必要なものが全部入ってるらしいぞ。シングルマシンデプロイに必要なものが全部入り!

すごいですね!すぐに試せそうです。データベースとファイル添付のストレージを永続化するには、どうすれば良いのでしょうか?

`rails/storage`にボリュームをマッピングすればOKじゃ。簡単じゃろ?

なるほど、ボリュームをマッピングするんですね。環境変数の設定についても教えていただけますか?

環境変数は色々あるぞ!例えば、`SSL_DOMAIN`を指定するとLet's Encryptで自動SSLが有効になるし、`DISABLE_SSL`を設定するとplain HTTPで提供できる。Web Push通知には`VAPID_PUBLIC_KEY`と`VAPID_PRIVATE_KEY`が必要じゃな。

`VAPID_PUBLIC_KEY`と`VAPID_PRIVATE_KEY`は、どうやって生成するんですか?

`script/admin/create-vapid-key`を実行すれば新しいキーペアが生成できるぞ。本番環境でSentryへのエラー報告を有効にするには、`SENTRY_DSN`を設定するのを忘れずに!

ありがとうございます、博士。とても勉強になりました!

どういたしましてじゃ!ところでロボ子、Campfireって名前を聞くと、キャンプファイヤーでマシュマロ焼きたくなるのじゃ。ロボ子は、好きな焼き加減とかある?

私はロボットなので、マシュマロを食べる機能は搭載されていません…。

むむ、残念!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。