Redditで何か話題になってたので。OnceのCampfireはざっくり言うならSlackやTeamsのようなチャットツールと言うと多分通りがよいと思われる。OSSで、自分でサーバたてられるのが特徴。現実的にはRuby on Railsの会社っていうのが一番の気もしつつ。
チャットできるやつちょっとほしいなと思っていたので、軽くローカルで試した。ほんとに軽く。。。メッセージの送受信とbotだけ。。。
環境
- M2 Pro Mac mini
- macOS Sonoma 14.7.7
- Docker Desktop 4.43.2
インストール(最小限)
とりあえず「basecamp/once-campfire」からcloneする。その後、本当に最小限、ローカルで動作を確認することだけを目的にした起動。
# クローン
git clone https://github.com/basecamp/once-campfire.git
cd once-campfire
# 秘密鍵を生成
export SECRET_KEY_BASE=$(openssl rand -hex 64)
# ビルド
docker build -t campfire .
# 実行(SSL無効でローカルテスト)
docker run \
--publish 3000:80 \
--volume campfire-storage:/rails/storage \
--env SECRET_KEY_BASE=$SECRET_KEY_BASE \
--env DISABLE_SSL=true \
campfireSSL切ってるし通知も切ってる。とにかく動作を見たかった。
動作確認
最初、管理者の設定となる。例によってポート3000にアクセスし、名前、メールアドレス、パスワードを入力してログイン。
開くといきなりチャットルームになる。これは全員参加。適当に話すと適当にチャットできる。
新しい人を参加させるには、参加者が招待URLを送る方式。これは管理者じゃなくてもできるようだ。なので、参加URLを知っている人なら誰でも参加できる模様。招待URLはいつでも更新可能。
ただし、参加後に閲覧できるルームは管理者が制御する。逆に言うと、ルームごとのアカウント制御を管理者が適切にする方式っぽいね。
参加したあとはまんまSlack。

全員自分。そしてbot。悲しい。
botは設定画面の、右上にあるロボットっぽいアイコンから設定することが可能。

Webhook URLはレスポンスほしい時の投げ先なので、投稿するだけなら空でよし。設定するとcurlのサンプルがあるので、実行するとtestロボットが投稿。つまりこれもURL知ってるとできる感じだね。なんかあったらURL変えたらええやろのスタンスか。

こんな感じ。
所感
ということでマジでインストールしてちょっといじっただけなので、これからちょいちょいと触っていきたい。
所感としては、なんというか、本当にシンプルなんだけれど、それ以上に人を信頼してるシステムだなぁと思った。さすがというべきなのか。
管理人がルームごとに参加者の制御と適宜なんかあったらURL変更する運用かな。URL知っていれば参加できるけどルームへの参加は許可がいるし、なんかしたらBANされてURLも変えられるし、それでええやん、って感じ。参加者に一定の信頼を置いた、管理者による人治主義のシステムと思った。
検索すると使った人の記事より先にコードを読みたがっている人の記事が出てくるようなアプリではあるんだが、コードの行数が少ないと驚かれていたけれど、言語の表現力や技術だけでなく、設計思想の根幹にユーザへの信頼もあるんでなかろうか。
まぁ人は確かに間違える生き物なんだけど、その間違いを「許せない!!責任を取れ!!!」みたいに許容できなくなったり、まして「人間は悪意を持った犯罪者だ!!!」みたいに一切信用しないと、システムはどんどん複雑になるよね。逆に言うと、人間に信頼し、間違いを許容すればシステムはシンプルになる。とはいえ事故はあるので、それを防ぐガードレールはあったほうがいいんじゃないってのはそうだと思うし、塩梅ではあるんだけれど。
とりあえず、いじっていこうかな。チャットボットちょっとほしかったんだ。

コメント