Nextcloud Assistant + Ollama:あなたのクラウドにAIを導入 セルフホスト型
Nextcloud にも独自の AI アシスタントが登場し、メールの要約、言い換え、テキスト生成、文書の内容についてのチャットを、インターフェースから直接利用できるようになりました。デフォルトではクラウドサービスの利用を促されますが、必ず利用する必要はありません。このガイドでは、Nextcloud Assistant をセルフホストの Ollama に接続し、データを 100% 手元に保持する方法を紹介します。AppAPI と ExApp の設定手順、OpenAI 互換の連携、推奨モデル、家庭や中小企業での利用に適したサーバー構成を順に解説します。
#Nextcloud を Ollama に接続する理由
Nextcloud Assistantは、Nextcloudに組み込まれたAIウィンドウです(上部バーの「魔法の杖」アイコン)。テキストの要約や言い換え、下書きの生成、要点の抽出、翻訳などのタスクがまとめられています。Nextcloud Hubからは「コンテキスト付きチャット」アシスタントも利用でき、モデルと対話したり、適切なコンテキストを与えて自分のファイルについて質問したりできます。
問題は、デフォルトで提供されるバックエンドまたはデモで使われるAPIが、しばしばクラウドサービス(OpenAIやNextcloudのホストサービス)を指すことです。自己ホストのクラウドの場合は、まさに避けたかったこと——プライベートコンテンツの第三者への送信——が再び発生します。自分のマシン上で動作し、http://localhost:11434 で待ち受けるOllamaにアシスタントを接続することで、ドキュメントのテキストは厳密に自社インフラ内に留まります。
- データ主権
- ファイル、メール、メモの内容がサーバーの外に出ることはありません。GDPRへの対応にも、単に安心して使うためにも役立ちます。
- 利用コストゼロ
- トークン単位の課金はございません。ハードウェアの償却後、要約や文章作成は無料かつ無制限です。
- 選択可能なモデル
- 指定されたモデルを使わされるのではなく、VRAMに応じてモデル(Qwen、Gemma、Granite)とその量子化方式を自分で選べます。
- オフラインでも動作
- インターネット接続がなくても、Nextcloudサーバーおよび Ollama が稼働している限り、アシスタントは利用可能です。
#動作の仕組み:AppAPIとExApp
職場でのローカルAI導入:GDPR、AI Act、マルチユーザーアーキテクチャ、コスト、経営陣向けメモ。
- 永久に利用できるオンラインスペース
- PDF + ファイル
- 生涯アップデート
Nextcloud は Ollama と直接通信しません。その間には外部アプリケーションのメカニズムが介在します。この3つの構成要素を理解しておくと、設定時の試行錯誤を大幅に減らすことができます。
- アシスタント
- Nextcloudに統合されたフロントエンドアプリで、要約、言い換え、チャットといったタスクをユーザーインターフェースから利用できるようにします。
- AppAPI
- 外部アプリケーション(ExApps)のライフサイクル、つまりインストール、デプロイ、通信を管理するNextcloudアプリです。最初にインストールすべき基盤となります。
- AIバックエンド用ExApp
- タスクプロバイダーを実装し、推論エンジンと通信できる外部アプリケーション(コンテナ)です。ローカル用途で最もよく使われるのは、「integration_openai」(Ollamaを含む、あらゆるOpenAI互換エンドポイントに対応)と、専用ExApp経由で利用する「LocalAI」です。
- Deploy Daemon
- ExAppsのコンテナを起動・停止するためにAppAPIが制御するサービス(多くの場合はDocker)です。Deploy Daemonが正常に動作していなければ、どのExAppもデプロイできません。
したがって、リクエストは次の流れで処理されます。Assistantで「要約」をクリック → Nextcloudがタスクをプロバイダーに委ねる → ExApp(例:integration_openai)がOpenAI形式の呼び出しを組み立てる → その呼び出しがOllamaのエンドポイントに送られる → 応答が同じ経路を逆にたどって戻る。重要なのは、連携用ExAppの接続先を、OpenAI互換モードでOllamaのURLに設定することです。
#前提条件
- 比較的新しいバージョンのNextcloud Hub
- AppAPIとAssistantに対応したバージョン(Hub 6/7以降)。AppAPIとDeploy Daemonをインストールできるよう、Docker/AIOでのインストール環境、または自分で管理しているサーバーが理想的です。
- Ollama がインストールされ、アクセス可能
- 同じマシン、またはネットワーク上の別のマシンにインストールされ、アクセスできること。デーモンはデフォルトでhttp://localhost:11434で待ち受けます。「ollama --version」と「ollama ps」で確認してください。
- Deploy Daemon 用のDocker
- AppAPIはDockerデーモンを介してExAppsをデプロイします。Nextcloud AIOにはこの仕組みが組み込まれていますが、手動インストールの場合はDockerへのアクセス(ソケットまたはAPI)が必要です。
- 少しのVRAMまたはRAM
- Q4 の目安:7B モデルは約 5 GB、14B モデルは約 9 GB に収まります。GPU がない場合は RAM が代わりを担い、速度は落ちますが、ときどき要約する用途なら許容できる範囲です。
- Nextcloudの管理者アクセス
- アシスタント、AppAPI、統合設定は「管理設定」で行います
#1. Ollama を準備し、モデルを選択する
まずは、フランス語に対応した汎用的な指示調整済みモデルから始めましょう。家庭での利用や小規模なチームには、Q4_K_Mで量子化したQwen 3.5 9Bが品質とメモリ使用量の最もよいバランスを提供します。フランス語での要約や言い換えを十分な精度で行え、非常に大きなコンテキスト(256kトークン)を扱い、約6.6 GBのVRAMに収まります。さらに省メモリなGranite 4.2 8B(IBM、Apache 2.0)は約5.3 GBで済み、より控えめな構成のサーバーに適しています。
重要な点は、NextcloudからOllamaに接続できる必要があることです。NextcloudをDockerで動かしている場合、「localhost」はホストマシンではなくコンテナを指します。Ollamaがすべてのネットワークインターフェースで接続を待ち受けるようにし、連携設定の接続先にホストのIPアドレス(またはプラットフォームに応じてhost.docker.internal)を指定してください。
#2. AppAPIおよびDeploy Daemonをインストールする
Nextcloudでは、AIはAppAPIを経由します。このステップは、AIタスク用のExAppsのデプロイを可能にする基盤を構築します。
- 01AppAPI をインストール管理設定 → アプリケーション → 「Tools」(または「Outils」)カテゴリ → 「AppAPI」を検索して有効にします。その後、管理設定に専用の項目として表示されます。
- 02Deploy Daemonを設定する管理設定 → AppAPI に「Docker型のDeploy Daemon」を追加してください。Nextcloud AIOではデーモンが事前に準備されています。そうでない場合はDockerのソケットへのアクセス(例:/var/run/docker.sock)を入力し、組み込みの接続テストを実行してください。
- 03状態の確認AppAPIはデーモンの状態を表示します(緑=準備完了)。緑になっていない間はExAppsをデプロイできません。この問題を解決するまでは、先に進んでも意味がありません。
- 04Assistantアプリをインストールする引き続き「Applications」で、「Assistant」がまだ有効になっていなければ有効にしてください。このアプリがインターフェースに魔法の杖のアイコンを表示します。
#3. OpenAI/LocalAIと連携する
「OpenAI and LocalAI integration」アプリは、OpenAI APIに準拠するあらゆるエンドポイントと通信できます。Ollamaは/v1を公開しているため、このアプリに正しいURLを指定し、モデルを選択するだけで接続できます。
- 01連携機能をインストールするアプリケーション → 「OpenAI and LocalAI integration」を検索して有効にしてください。この連携機能により、アシスタントが利用できるタスクプロバイダー(テキスト生成、要約など)が登録されます。
- 02OllamaのURLを入力する管理設定 → 「Connected accounts」(または連携機能のセクション)→ 「Service URL」欄に、OllamaのOpenAIエンドポイントを指定してください。例:http://IP_DE_L_HOTE:11434/v1 。APIキーは空欄にするか、ダミーの値を入力してください。OllamaはAPIキーを検証しません。
- 03デフォルトのモデルを選択同ページで、テキスト生成に使用するモデルを選択してください(例:qwen3.5:9b)。リストに表示されていない場合は、「ollama list」によって返される正確なモデル名を入力してください。
- 04保存してテストする設定を確定してください。連携機能がエンドポイントに問い合わせ、モデルの一覧を取得します。ここでエラーが出る場合、ほぼ必ずURLかネットワークに問題があります(トラブルシューティングを参照してください)。
#4. ファイルを要約し、文章を作成し、ファイルの内容についてチャットする
プロバイダーを接続すると、Assistantの魔法の杖が動き出します。ここからは、シンプルなものから機能豊富なものまで、具体的な使い方を紹介します。
- テキストの要約
- アシスタント(魔法の杖のアイコン)を開き、テキストを貼り付けるか選択して、タスク「要約」を選んでください。Nextcloud Mailの長いメールや、非常に長いメモに最適です。
- 言い換え/修正
- 段落をよりフォーマルな文体に書き直す、文章表現を修正する、短くする。Nextcloud Text や Deck のカードで便利です。
- 草案を作成
- 「金曜日の会議への招待文を書いてください」といった指示をもとに、アシスタントが手直しを前提とした初稿を作成します。
- キーポイントの抽出
- 報告書をアクションや決定のリストに変換する
- 文脈を踏まえたチャット
- アシスタントのディスカッションタブは、Ollamaモデルと自由にやり取りできるため、Nextcloudを離れないでブレインストーミングに活用できます。
厳密な意味で「自分のファイルについてチャットする」、つまり文書内に答えがある質問をするには、モデルにコンテキストを提供する必要があります。方法は 2 つあります。単発の文書ならファイルの内容をチャットに貼り付けるか、ファイルをインデックス化して意味検索でモデルに情報を渡す「Context Chat」型の ExApp をデプロイします。後者は Nextcloud に統合された RAG に相当します。前者はすぐに使えますが、後者には追加の ExApp と、より多くのリソースが必要です。
#サーバーに必要なリソースを見積もる
適切なハードウェアは、同時利用者数と目指す用途の規模(必要なときだけ要約するのか、RAGを常時運用するのか)によって変わります。以下に現実的な目安を示します。
- 家庭用(1~5人用)
- Q4_K_M の 7〜8B モデル。RTX 3060 12 GB のようなエントリークラスの GPU、またはユニファイドメモリを搭載した Apple Silicon Mac なら、要約や文章作成には十分な余裕があります。GPU がなくても CPU で動作し、リクエスト1件あたり数秒から数十秒かかります。
- 小規模の中小企業(5~20名)
- 7~14Bモデル。RTX 4070/4080 16GBはピーク時の負荷に対応できます。Q4の14Bモデルは約9GBに収まります。Nextcloudの残りの構成要素に使うシステムRAMも、余裕を持って確保してください。
- 継続的な高負荷利用 / Context Chat
- エンベディングとベクトルストアの負荷も考慮してください。24 GBのRTX 4090、または24〜48 GBのユニファイドメモリを搭載したMac M4 Proを目安にし、「ollama ps」を継続的に確認して、モデルがGPU上に留まっていることを確かめてください。
- CPUのみ
- あまり高い性能を求めない家庭なら実用的です。3B〜7Bを優先し、応答の遅さは受け入れてください。それを超えると、快適に使うにはGPUがすぐに不可欠になります。
#トラブルシューティング
- 「Connection refused」/モデルがリストされていません
- NextcloudがOllamaに接続できていません。多くの場合、NextcloudがDockerで動作しているにもかかわらず、URLがlocalhostを指しています。Nextcloudコンテナ内からcurlでURLをテストし、host.docker.internalまたはホストのIPアドレスを使ってください。
- Deploy Daemonの表示が赤のまま
- AppAPI が Docker にアクセスできていません。ソケット /var/run/docker.sock のマウントと権限を確認してください。AIO ではマスターコンテナを再起動してください。デーモンのステータスが緑にならない限り、どの ExApp もデプロイできません。
- アシスタントはタスクを表示しません。
- プロバイダーが登録されていません。「OpenAI and LocalAI integration」(またはExAppバックエンド)が有効で、正しく設定されていることを確認してから、ページを再読み込みしてください。
- 要求されたモデルが見つかりません
- 名前が「ollama list」の表示と一致していません。正確なタグ(例:qwen3.5:9b)を入力し、モデルが「ollama pull」でダウンロード済みであることを確認してください。
- 応答が非常に遅い
- モデルはVRAMが不足しているためCPU上で動作しています。「ollama ps」で確認し(GPU対CPU)、サイズまたは量子化レベルを下げてください。
- 英語での回答
- 一部のモデルはデフォルトで英語で応答します。フランス語が得意なモデル(Qwen、Mistral)を選ぶか、連携機能のシステムプロンプトに「フランス語で応答してください」という指示を追加してください。
#さらに詳しく
この構成では、当サイトで既に解説した構成要素を再利用しています。このガイドの内容をさらに掘り下げるガイドは以下のとおりです。
- Ollama のインストール:Windows、macOS、Linux
- NextcloudをOllamaに接続する前に、ゼロから導入する場合の基本インストールガイドです。
- 量子化の選択(Q4、Q5、Q8、FP16)
- Nextcloudサーバーで利用できるVRAMとモデルのサイズの折り合いをつけるために。
- イントラネット上でチーム向けAIチャットボットをデプロイする
- お使いのクラウドを中心に、複数ユーザー向けのOllamaスタックをさらに拡張するために。
ご意見、誤りのご指摘、補足はありますか?ぜひお知らせください。皆さんにとってより良いガイドにするために役立ちます。