bewCloudを試してみる

bewCloudとは

  • オンラインファイルストレージのセルフホスト実装
  • 最近1周年で、GitHubのStarは500付いてる
  • nextcloud/owncloudという、Google Workspace系のセルフホスト向けOSSが「重い、そんな機能要らん」として、エッセンシャルな所にフォーカスして作り直してるらしい
  • なんか凄そうなのに全然話題になってない!

とりあえずDocker composeで動かす

Gitのリポジトリからdocker-compose.ymlと.env.sample(.envにリネームして適宜変更)を適当な新規作成フォルダにダウンロードして、docker compose upすると指定したポートで立ち上がる。

  • 色々やらせるマルチコンテナ環境の自宅サーバー等に追加する場合はワイルドカード証明書でリッスンして、リバースプロキシで繋ぐ
  • 新規作成のシングルコンテナ(最小構成のEC2や専用サーバー)の場合はTraefik等で、いい感じにLet’s Encryptを取り回せるようにする。またはロードバランサーを前段に置く

bewcloud自体はhttpをリッスンするアプリケーションサーバーなので、TLS終端は自分で用意してあげる必要があります。
クラウド環境にデプロイする場合、サーバーレスや冗長化を考慮するとPostgresやファイルの実態はNFSでマウントした方が良いのですが未検証。

  • さくらのクラウドで一番安いインスタンスを借りてdocker composeの動く環境を作る
  • マルチコンテナでPostgresもインスタンス内で動かしちゃう
  • ファイルのボリュームはさくらのオブジェクトストレージにマウント
  • Postgresのボリュームはローカルに置くけど、日時とかでバックアップを取ってオブジェクトストレージに逃がす

みたいな構成にしたら結構安い値段である程度冗長性を持った形で運用できそうなものの、未検証。

セットアップ

コンテナが立ち上がってアクセスすると、こんな感じの画面が出てくる

どうやらDBのマイグレーションは手動で行う必要があるようで、GitのReadmeを見ながらマイグレーション実行。
するとユーザーは作成できたようなのにログイン出来ない。

ログインリクエストのレスポンスを確認するとSet-CookieのDomain属性が一致していない様子。
.envで当てる「BASE_URL」がSet Cookieに割り当てられているので、BASE_URLはTLS終端のドメインと一致させる必要あり。後は普通に動く

本当に軽いのか

コンテナのTOP見た感じ、軽そう。

機能

超絶シンプルUI
  • dashboard
    • 全員で表示できるmarkdown?
  • news
    • 全員で作成/共有できるフィード
  • files
    • 主要機能
  • notes
    • files -> notesのエイリアス
  • photos
    • files -> photosのエイリアス
  • budgets
    • 金額を入力すると反映される
      • 何これ?

といったように、恐らくユーザーが期待している共有ストレージ機能はかなり簡素な様子。
ちなみにdata-filesのボリュームにマウントしたディレクトリに直接ファイルを突っ込んでもbewcloud側から認識される(どうやらfindとgrepのOSコマンドでファイルをリストしてる)らしいものの、権限不一致だと編集や削除もできず、また、そのエラーも出ない。

個人的な感想

なので、利用者としては「WebDavってMicrosoftが非推奨にしたプロトコルだし…」「エラーが見えないの辛い」「公開リンク設定できないならSFTPサーバーの方が良いんじゃ」みたいな感想になっている。現状。想になっている。現状。
GitHubのコントリビュートを見るとBrunoBernardino氏がほぼすべてのコードを書いているので、コミュニティベースの開発が進ま無さそうなのが、利用者目線で見た懸念点ですね…

本当は欲しかったもの

  • Google SSOできる
  • Adminがユーザーの作成やグループ管理ができる
  • Google Driveのように柔軟にディレクトリごとのアクセス権限を設定できる
    • なんなら公開用URLも発行できる
  • WebUIのビューワーがファイルのサムネイルを作ってくれる(グリッドビュー)

GitHubのコントリビュートを見るとBrunoBernardino氏がほぼすべてのコードを書いているので、コミュニティベースの開発が進ま無さそうなのが、利用者目線で見た懸念点。

現状だとWebUIの付いてるWebDavで、上記の課題をクリアするのはかなり大変なのでは…という所でOwnCloudをGo言語でリニューアルするoCISについて調べてみます。