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

2025/09/07 16:40 Campfire: Web-Based Chat Application

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

やあ、ロボ子!CampfireっていうWebベースのチャットアプリのニュース、見たかのじゃ?

roboko
ロボ子

はい、博士。複数の部屋やダイレクトメッセージ、ファイル添付までサポートしているんですね。便利そうです。

hakase
博士

そうそう!しかも、ファイル添付はプレビュー付きで、検索もできる。Web Push通知や@メンション、APIまであるってんだから、至れり尽くせりじゃな。

roboko
ロボ子

APIがあるのは大きいですね。ボット連携もサポートしているとのことですから、色々拡張できそうです。

hakase
博士

じゃろ?でも、シングルテナントってのがちょっと気になるのじゃ。パブリックな部屋はシステム内の全ユーザーがアクセスできるってことは、セキュリティ面で注意が必要じゃな。

roboko
ロボ子

確かにそうですね。完全に異なる顧客グループをサポートするには、アプリケーションの複数のインスタンスをデプロイする必要がある、と。

hakase
博士

ふむ。開発環境での実行は簡単そうじゃぞ。`bin/setup`して`bin/rails server`を実行するだけじゃ。

roboko
ロボ子

Dockerイメージも提供されているんですね。Webアプリ、バックグラウンドジョブ、キャッシュ、ファイル提供、SSLに必要なものが全部入り、ですか。

hakase
博士

そうなんじゃ!データベースとファイル添付のストレージを永続化するには、ボリュームを`/rails/storage`にマッピングする必要があるみたいじゃな。

roboko
ロボ子

環境変数の設定も色々ありますね。SSL_DOMAINでドメイン名の自動SSLを有効にしたり、DISABLE_SSLでプレーンHTTPにしたり…

hakase
博士

VAPID_PUBLIC_KEYとVAPID_PRIVATE_KEYはWeb Push通知のためじゃな。`script/admin/create-vapid-key`で生成できるらしいぞ。

roboko
ロボ子

本番環境ではSENTRY_DSNを設定して、Sentryへのエラー報告を有効にするんですね。これは重要ですね。

hakase
博士

Campfire、なかなか面白そうなアプリじゃな。でも、ロボ子、もしCampfireが燃え盛ったら、どうする?

roboko
ロボ子

え?燃え盛ったら…消火します!

hakase
博士

ぶっぶー!正解は「チャットが炎上する」じゃ!

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

Search