複数人でファイルの同期と共有ができカスタムプロパティやAIによるファイル説明の自動生成ができる「Seafile」

AIとの連携により、タグ付けや詳細などのプロパティが作成できるファイル共有サーバー「Seafile」がオープンソースで公開されています。
Seafile - Open Source File Sync and Share Software
https://www.seafile.com/en/home/

今回は、Google CloudでUbuntu 24.04.3 LTSのインスタンスを作成しDockerを利用して構築します。Setup community editionを参考に、コンソールを起動してrootユーザーとして操作します。AI拡張機能を利用する場合は、メタデータサーバーと合わせて追加します。
mkdir /opt/seafile
cd /opt/seafile
wget -O .env https://manual.seafile.com/13.0/repo/docker/ce/env
wget https://manual.seafile.com/13.0/repo/docker/ce/seafile-server.yml
wget https://manual.seafile.com/13.0/repo/docker/seadoc.yml
wget https://manual.seafile.com/13.0/repo/docker/caddy.yml
wget https://manual.seafile.com/13.0/repo/docker/md-server.yml
wget https://manual.seafile.com/13.0/repo/docker/seafile-ai.yml
.envファイルをエディタで開き、環境変数を設定。変更必須の項目は以下の通り。AIモデルとしてDeepSeekをテストしました。
#読込むymlファイルを追記
COMPOSE_FILE='...,md-server.yml,seafile-ai.yml'
#データベースのルートログイン用パスワード
INIT_SEAFILE_MYSQL_ROOT_PASSWORD=
#データベースのパスワード
SEAFILE_MYSQL_DB_PASSWORD=
#32文字以上のランダムな文字列
JWT_PRIVATE_KEY=
#ホストネーム
SEAFILE_SERVER_HOSTNAME=
#タイムゾーン
TIME_ZONE=Asia/Tokyo
#管理者アドレス
INIT_SEAFILE_ADMIN_EMAIL=
#管理者パスワード
INIT_SEAFILE_ADMIN_PASSWORD=
#AI拡張機能
ENABLE_SEAFILE_AI=true
SEAFILE_AI_LLM_TYPE=deepseek
#APIキー
SEAFILE_AI_LLM_KEY=
SEAFILE_AI_LLM_MODEL=deepseek-chat
「docker compose up -d」で起動。
docker compose up -d
このままではメタデータ機能が有効にならないのでいったん停止。
docker compose down
seahub_settings.pyファイルを編集。
nano /opt/seafile-data/seafile/conf/seahub_settings.py
#メタデータ管理機能を追記
ENABLE_METADATA_MANAGEMENT = True
METADATA_SERVER_URL = 'http://seafile-md-server:8084'
再度「docker compose up -d」で起動。
docker compose up -d
SEAFILE_SERVER_HOSTNAMEで設定したホスト名をDNSに追加。ブラウザを立ち上げホスト名でアクセスするとログイン画面が表示されます。管理者アドレスとパスワードを入力して「ログイン」をクリック。

初期画面が表示されます。

メニューの「ファイル」をクリックし「マイ・ライブラリ」をクリック。

マイ・ライブラリが表示されるのでファイルをドラッグしてアップロード。

アップロードしたファイルが表示されます。メタデータ機能を有効にするため「設定」をクリック。

「拡張プロパティ」からトグルをクリックして有効化し「登録」をクリック。

ファイルのメタデータを表示する欄が追加されました。AIでタグを生成するため「All files」をクリックしてファイル一覧を表示し、ファイルを右クリックして「AI」から「ファイルのタグを生成する」を選択。

タグとしては何も検出されませんでした。他のファイルも全て試しましたが、タグとしては何も検出されませんでした。

設定を確認するとタグの言語に日本語がありません。

言語設定の影響を検証するため、言語設定を変更します。プロフィールアイコンから「設定」をクリック。

「言語」を選択し、言語設定で「English」を選択。

再度タグの生成をテストしましたが、タグの判別は行えませんでした。しかし「Generate description」で詳細を生成するように選択すると…

詳細が生成されました。月の写真でしたが解析では人間の目と判断しているようです。タグの生成可否や詳細の精度などAIのモデルによって結果が異なる可能性があります。

◆機能一覧
・複数ユーザーでの利用

・タグ付けによるファイルの整理
AIを活用してファイルの説明・要約・タグを自動生成、構造化されたカテゴリ分けが可能。
・メタデータとカスタムビュー
所有者・ステータス・機密レベル・ファイル作成日時といった構造化されたメタデータをファイルに追加。
・強固なセキュリティ
クライアント側暗号化でファイルを保護でき、2段階認証・リモートワイプ・詳細な監査ログ・ウイルススキャンなど、コンプライアンスと安心を確保する機能。
・安全なファイル共有
フォルダやサブフォルダを読み取り専用・読み書き・プレビューなど柔軟な権限で共有できます。共有リンクはパスワード・有効期限・メールベースの認証で保護でき、バージョン管理により以前のバージョンを復元。

・ドキュメント共同編集
SeaDocを使用してブラウザで直接ドキュメントを共同編集。

・Wiki
複数ページのWikiを作成して知識を構造化された方法で整理。

・クロスプラットフォームアクセス
Windows・macOS・Linux向けに2種類のクライアントが提供されており、フォルダ内の全てのファイルを取得し同期するタイプのクライアントソフトと…

OneDriveのようにドライブとして認識され、必要な時だけ実際のファイルをダウンロードする機能があるクライアントソフトがダウンロードサイトにて提供。

AndroidおよびiOS向けにも、スマートフォンからファイルを閲覧・プレビュー・共有でき、写真を自動的にバックアップする機能。
Proバージョンを利用することでフルテキスト検索やウイルススキャンなどが使用でき、クラウドサービスで構築するクラウドプランも用意されています。関連記事
FirebaseのようにGUIでバックエンドを構築できる無料でオープンソースのシステム「PocketBase」、わずか1ファイルのみ - GIGAZINE
ほぼすべてのデバイスをファイルサーバーに変える「copyparty」、転送が中断してもレジュームで続きから可能&HTTP・WebDAV・FTP・TFTP・SMB/CIFSをサポート - GIGAZINE
8000円未満でオープンソースの格安NASを自作した大学生が現れる、ケースは3Dプリンター製でOSも自作のものを搭載 - GIGAZINE
独自のデータベースやWordPressなどのアプリを簡単にセルフホストできて管理できるオープンソースPaaS「Coolify」 - GIGAZINE
DNAを用いてデータを長期保存できる大容量カセットテープシステムが開発される、理論上は1km当たり362ペタバイト保存可能 - GIGAZINE
