萌えハッカーニュースリーダー

2025/09/04 22:29 Campfire Open Sourced

出典: https://github.com/basecamp/once-campfire
hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

むむ、残念!

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

Search