Synaplan について
Synaplanは、チームチャット、ドキュメント検索、長期記憶を必要とする組織向けのオープンソースでセルフホスト可能なAIワークスペースです。RAG、複数チャネルで使えるアシスタント、回答ごとのコスト表示を備え、複数のモデルプロバイダーとローカルのOllamaモデルに対応します。
主な機能
- 01ドキュメントのセマンティックRAG検索
- 02チャット回答ごとのコスト表示
- 03複数のモデルプロバイダーとOllamaに対応
- 04Webサイト用チャットウィジェットとチャネル連携
- 05MCPサーバーとクライアントを搭載
- 06プラグイン、OpenAPI REST API、管理画面を提供
活用シーン
- 01アップロードしたドキュメントを基にチームの質問に回答
- 02Webサイトにチャットアシスタントを埋め込み
- 03WhatsAppとメールで同じアシスタントを利用
- 04閉域ネットワークでAIワークスペースをセルフホスト
MCP 対応
SynaplanはMCPサーバーとクライアントを提供し、RAGと記憶をMCPツールとしてクライアントに公開します。Anthropic互換の`POST /v1/messages`エンドポイントも備えています。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://web.synaplan.com/mcpclaude mcp add --transport http metadist-synaplan https://web.synaplan.com/mcp{"mcpServers":{"metadist-synaplan":{"type":"http","url":"https://web.synaplan.com/mcp"}}}Cursor で開く{"servers":{"metadist-synaplan":{"type":"http","url":"https://web.synaplan.com/mcp"}}}VS Code で開く{"mcpServers":{"metadist-synaplan":{"type":"http","url":"https://web.synaplan.com/mcp"}}}{"mcpServers":{"metadist-synaplan":{"serverUrl":"https://web.synaplan.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://web.synaplan.com/mcp認証が必要ツール
詳細
AIの自由を実現します。
ホスティング版を試す、または3分で自分で実行する — オープンソースでセルフホスト可能なAIプラットフォーム(PHP/Symfony)です。あらゆるモデルとのチャット、ドキュメントを対象にしたRAG、埋め込み可能なウィジェット、MCP、そして回答ごとのコスト確認ができます。Apache-2.0。web.synaplan.comでは、有料プランまたは招待コードで登録できます。試してみたい友人やパートナーには招待コードをお送りします。[email protected]までご連絡ください。自分で実行する場合は無料です。
ウェブサイト · ドキュメント · ライブインスタンス · iOS · Android · デスクトップ · Outlook アドイン · Discord
Synaplanが役に立ったら、スターを付けていただけると、次の人が見つけやすくなります。
チャット、回答ごとのコスト、ファイル、生成メディア、接続できるアプリをご紹介します。約30秒です。
クイックスタート
git clone https://github.com/metadist/synaplan.git
cd synaplan
make up
**http://localhost:5173**を開きます。[email protected] / admin123でログインし、最初のメッセージを入力してください。Synaplan Demoが始まります(14日間、1日40メッセージまで。APIキーは不要です — 仕組みはこちら)。または、ご自身のAIキー(無料:Groq)またはローカルのOllamaを接続してください。
公開済みイメージ、Docker GUI、閉域ネットワーク、Linuxサーバーなど、その他のインストール方法をご覧ください。
Synaplan の比較
Synaplan をチャット画面やアプリビルダーと比較して調べる方が多くいます。それぞれのプロジェクトの用途は次のとおりです。優劣をつけるための表ではありません。
| Synaplan | Open WebUI | LibreChat | Dify | |
|---|---|---|---|---|
| どのようなものか | チャット、ファイルを活用したナレッジ、サイトウィジェット、WhatsApp とメールで同じアシスタントを使えるチーム向けプラットフォーム | ローカルモデルやクラウドモデル向けのチャットインターフェース | 多数のプロバイダーに対応するチャットアプリ | AI アプリとワークフローを構築するためのビルダー |
| 初回起動 | 複数のコンテナ、約 4 GB | 1 つのコンテナ | Compose スタック | Compose スタックとホスト型クラウド |
| 回答のコスト | 回答に表示 | 回答には表示されない | 回答には表示されない | ビルダーの使用ログには表示されるが、チャットの回答には表示されない |
| サイト、WhatsApp、メールで同じアシスタントを使えるか | はい | いいえ | いいえ | サイトウィジェットには対応。WhatsApp とメールは標準搭載されていない |
チャット画面だけが必要なら、Open WebUI または LibreChat のほうがすぐに使い始められます。
Synaplan を選ぶ理由
- プランの階層に縛られない自由。 バックエンド、フロントエンド、ウィジェット、プラグインを含むプラットフォーム全体が Apache-2.0 ライセンスで、1 つのコマンドで起動します。セルフホスト版もクラウド版と同じソフトウェアで、セルフホスト環境でもユーザー自身がアカウントを作成できます。ホスト型プラットフォームの web.synaplan.com では、有料プランまたは招待コードを使って新しいアカウントを作成できます。友人やパートナーは [email protected] に連絡してコードを請求できます。
- 数百のモデルを 1 か所で利用。 OpenAI、Anthropic、Google Gemini、Groq、Mistral、xAI、HuggingFace、EU の主権型プロバイダー、さらに Ollama 経由のあらゆるローカルモデルに対応しています。UI でタスクごとにプロバイダーを切り替えられます。
- プランナーは必要な場面でだけ高価なモデルを使います。 リクエストは小さなタスクグラフ(抽出 → 要約 → 生成 → 返信)に変換されます。各ステップはライブカードで表示されます。すべての回答にコストが表示されます。
- オフラインでも自分の環境で。 オンプレミス、EU のクラウド、または完全なエアギャップ環境に対応しています。データを使った学習は行いません。テレメトリーを強制することもありません。
- いつもの作業環境で。 Web、iPhone、Android、デスクトップ、Outlook、チャットウィジェット、WhatsApp、メールに加え、Microsoft 365、Dropbox、Nextcloud / ownCloud、カレンダー、Jira、Confluence、OpenCloud に対応しています。
- フォークせずに拡張。 プラグイン、OpenAPI REST API、MCP サーバーとクライアント、Claude Code などに対応する Anthropic 互換エンドポイントを備えています。オプションのサイドカーは有効にするまで起動しません。
ツアーを見る

スクリーンショットをクリックすると、拡大表示できます。
UIの変更後は、scripts/build-readme-tour.shを実行してこれらのアセットを再生成してください。
その他のインストール方法
クイックスタートでは、ローカルにチェックアウトします。以下の方法では、公開イメージ、パブリックインターネットへの経路がないマシン、Linuxサーバーを利用します。
このマシン上で
クイックスタートはこの手順です。**http://localhost:5173**を開いてください。数秒以内にステータス画面が表示され、起動手順がすべて一覧表示されます。準備ができると、アプリに切り替わります。初回起動には5~15分かかります。2回目以降は数秒です。
make upは、残りのイメージのプルが完了する前に:5173で応答します。docker compose up -dでも同じスタックを起動できますが、プルが完了するまで:5173は応答しません。
[email protected]/admin123でログインします。ステータス画面にも表示されています。- 最初のチャットメッセージを入力します。Synaplan Demo(14日間、
web.synaplan.com経由で1日40メッセージ)が開始されます。または、プロバイダーキーを1つ貼り付けてください(無料:Groq)。設定ファイルを編集する必要はありません。 - ターミナルで同じメモを確認できます:
docker compose logs -f startup-notes。
クラウドキーがない場合は、COMPOSE_PROFILES=local-ai ENABLE_LOCAL_GPT_OSS=true make upを実行すると、ローカルチャットモデル(gpt-oss:20b、約14 GB)がプルされます。ダウンロードが完了するとチャットを開始できます。
git checkout不要の公開イメージ
ファイルは1つで十分です。隣に置く.envは任意です。
mkdir synaplan && cd synaplan
curl -fsSL -o compose.yaml https://raw.githubusercontent.com/metadist/synaplan/main/deploy/quickstart/compose.yaml
docker compose up -d
**http://127.0.0.1:8000**を開きます。初回アクセス時にセットアップ画面が開くので、管理者を作成し、Start with Synaplan Demoをクリックするか、プロバイダーキーを1つ貼り付けます(無料:Groq)。これで完了です。初回起動時はイメージをプルするため、数分かかります。
より小さな構成(約5.3 GBではなく約3.2 GB)が必要ですか?deploy/quickstart/compose.lite.yamlでは、tts、qdrant(ドキュメント検索はMariaDB VECTORのままです。メモリ機能は一時停止します)、centrifugoを省略しつつ、ボリューム名は完全に同じです。そのため、チャットやファイルを失うことなく、後からcompose.yamlに切り替えられます。
Docker GUI(Portainer、Dockge、Synology Container Managerなど):スタックを作成し、deploy/quickstart/compose.yamlをComposeファイルとして貼り付けて、デプロイします。deploy/quickstart/.env.exampleにある設定は、どれもスタックの環境変数に設定できますが、必須のものはありません。GUIが別のマシン(NASやサーバー)で動作している場合は、SYNAPLAN_HTTP_BIND=0.0.0.0とSYNAPLAN_URL=http://<そのマシンのIP>:8000を追加してください。これらがないと、Synaplanはそのマシン自体でしか開けません。Dockgeでは、1回限りのsecrets-init手順が完了すると、スタックが「exited」と表示されます。これは想定どおりで、Synaplanは引き続き動作します。
設定は.envに記述し、その後docker compose up -dを再実行します(GUIの場合は、スタックの変数を設定してから再デプロイします)。
SYNAPLAN_VERSIONでリリースページのリリースタグを指定します。空欄の場合は、このファイルの公開時点のリリースが使われます。latestは指定しないでください。SYNAPLAN_HTTP_BIND=0.0.0.0とSYNAPLAN_URL=http://<このマシンのIP>:8000を設定すると、ネットワークからアクセスできるようになります。SYNAPLAN_URLには、利用者が入力するアドレスを指定する必要があります。そうしないと、ライブチャットが接続されません。ネットワークアドレスで通常のhttp://を使うと、ブラウザーによってマイクとクリップボードへのコピーがブロックされます。チャットとファイルは利用できます。この2つの機能を使うには、閉じたネットワークでHTTPSを使用してください。- プロバイダーキー、初期管理者、メールの設定は、例にそれぞれ1行ずつ記載されています。
データは名前付きのDockerボリュームに保存されます。データベース、アップロードファイル、ベクトル、生成されたシークレットが含まれます。これらはまとめて保管してください。secretsボリュームがないとデータベースは起動しません。docker compose downを実行してもすべて保持されます。docker compose down -vを実行するとすべて削除されます。
**リリースの変更:**ボリュームをバックアップし、SYNAPLAN_VERSIONを設定してから、docker compose up -dを実行します(またはGUIでスタックを再デプロイします)。新しいタグによってデータベースが移行された後に古いタグへ戻す場合は、そのバックアップを復元する必要があります。手順については、セルフホスト環境のデプロイを更新するを参照してください。
Officeドキュメント、ローカルAI、ファイル操作、閉じたネットワークでのTLS、スクリプトによるバックアップには、代わりに完全版のdeploy/compose.yamlとdeploy/selfhost.env.exampleを使用してください。
クローズドネットワーク
オプトイン方式です。デフォルトでは、このマシン上の http://127.0.0.1:8000 がそのまま使われます。
ネットワークがパブリックインターネットへの経路を持たず、利用者がマシンのアドレスを使って Synaplan を開く場合に有効にしてください。チャットには https://<address>/ が必要です。証明書はマシンが作成します。ブラウザーに警告が一度表示されます。
このネットワーク上の IPv4 アドレスならどれでも使えます。10.0.0.0/8、172.16.0.0/12、192.168.0.0/16、100.64.0.0/10、169.254.0.0/16 に加え、割り当て済みでアナウンスしていないブロックも利用できます。
cp deploy/selfhost.env.example deploy/.env
# Set SYNAPLAN_VERSION. Leave SYNAPLAN_HTTP_BIND at 127.0.0.1.
deploy/scripts/local-tls.sh 10.0.0.15
deploy/scripts/prepare.sh
docker compose --env-file deploy/.env -f deploy/compose.yaml pull
deploy/scripts/validate-release.sh
docker compose --env-file deploy/.env -f deploy/compose.yaml up -d
同僚は https://10.0.0.15/ を開きます。ポート 80 と 443 が空いている必要があります。アプリ自体は 127.0.0.1:8000 のままです。2 つ目のインターフェースを使う場合は、別の引数を指定します。deploy/scripts/local-tls.sh 10.0.0.15 192.168.1.20。パブリックな名前を使う場合は、独自の HTTPS プロキシを使用し、この設定はオフのままにしてください。
詳細:docs.synaplan.com/local-network · deploy/README.md。
サーバーへのインストール
上記のコマンドは、開発スタック(ソースからのビルド、Vite、MailHog、phpMyAdmin)または公開済みイメージを対象としています。Linux サーバーでは、インストーラーが deploy/.env を書き込み、最新リリースを固定して、prepare → pull → validate → start → smoke-test を実行します。シークレットは deploy/data/secrets.env に保存されます。
curl -fsSL https://raw.githubusercontent.com/metadist/synaplan/main/install.sh | \
bash -s -- --mode server --domain https://ai.example.com
同じ手順を手動で行う方法は、インストールと deploy/README.md にあります。フラグについては、bash install.sh --help を実行してください。
手動でクローンしたくない場合に、開発スタックをワンライナーで起動する方法:
curl -fsSL https://raw.githubusercontent.com/metadist/synaplan/main/install.sh | bash
どこで仕事をしていても、同じ AI を
どのチャネルでも、同じアシスタント、同じナレッジベース、同じモデルポリシーをチームで利用できます。Channels でシステムに一度接続すると、プランナーがそのシステムから情報を読み取り、結果を送信できるようになります。
会話インターフェース
| インターフェース | 機能 | 入手先 |
|---|---|---|
| Web アプリ | チャットと管理 UI を完備。ライト/ダークモード、5 言語に対応 | このリポジトリ — make up |
| モバイルアプリ | iPhone と Android でチャット、ドキュメント、音声を利用できます。web.synaplan.com または独自サーバーを指定して使用します | App Store · Google Play |
| Synaplan Desktop | コンピューターをペアリングして、そのコンピューター上でスキルを実行します。Web アプリで Channels → Synaplan Desktop を選択してください。インストーラーはまだありません。リポジトリからビルドしてください。 | metadist/synaplan-desktop |
| Outlook アドイン | Synaplan を Outlook(Web、新旧バージョン、Mac)に追加し、メールを外部に送信せずに検索・処理できます | metadist/Synamail |
| チャットウィジェット | 1 つのスニペットで、どの Web サイトにもアシスタントを埋め込めます。クロスオリジンに対応し、人間への引き継ぎ機能も含まれます | ウィジェットガイド |
| WhatsApp と Email | AI が質問を受け取ったチャネルで回答します | WhatsApp · Email |
| MCP と Claude Code | RAG とメモリーを MCP ツールとして利用できます。Anthropic 互換の POST /v1/messages エンドポイントも提供します | MCP ガイド · ガイド |
接続済みシステム
Manage → Connections(または Manage → Connections → MCP Servers/Manage → Channels → Email)で設定します。チャットでは、Connections ページにピルとして表示されるチャンネル名を使用します。たとえば、nextcloud、dropbox、outlook です。
| チャンネル | 利用できる機能 | 設定 |
|---|---|---|
| Microsoft 365 | Outlook メールのリアルタイム検索、カレンダーの予定(outlook)、自分のメールボックスからの送信 | Manage → Connections — OAuth。パスワードは保存されません |
| Dropbox | 生成したファイルを Dropbox フォルダーに保存(dropbox) | Manage → Connections — OAuth |
| Nextcloud / ownCloud / WebDAV | 自分が所有するフォルダーにファイルを保存(nextcloud/folder) | Manage → Connections — アプリパスワードを使用します。アカウントのパスワードは使用しません |
| CalDAV カレンダー | 生成した会議を自分が所有するカレンダーに登録(calendar) | 同じ Nextcloud プリセットで、フォルダーとカレンダーを一度に作成できます |
| IMAP メールボックス | 任意の IMAP 受信トレイをリアルタイム検索し、Microsoft 365 の結果と統合 | Manage → Channels → Email |
| Jira & Confluence | 検索と要約。書き込みを許可すると、チケットやページを作成できます。貼り付けた Confluence ページは、サインイン済みのアカウントを通じて読み取られます | Manage → Connections → MCP Servers — Jira & Confluence カードから Atlassian にサインインします(API トークンは不要です) |
| 保存済みタスク | プランを固定し、必要に応じて、またはスケジュール(毎時/毎日/平日)に従って実行 | Manage → Automations → Saved Tasks |
| Nextcloud / OpenCloud アプリ | これらのクラウドのファイルを AI のナレッジとして使用します。ファイルストアが引き続き管理します | synaplan-nextcloud · synaplan-opencloud |
詳細とチャンネル名については、docs/CONNECTIONS.md を参照してください。
Synaplan エコシステム
以下はすべて同じプラットフォームを、さまざまな環境向けにパッケージ化したものです。用途に合うものを選んでください。ほかに必要なものはありません。
| プロジェクト | 概要 |
|---|---|
| synaplan | プラットフォーム本体(このリポジトリ):バックエンド、フロントエンド、ウィジェット、プラグイン、開発スタック、および Elestio、AWS Marketplace、Umbrel アダプターとの本番環境向け連携仕様を定める deploy/ |
| synaplan-charts | Kubernetes 用 Helm チャート。K8s クラスターを運用するパートナーや企業向け |
| モバイルアプリ | iOS と Android のネイティブアプリ — App Store · Google Play |
| synaplan-desktop | Synaplan Desktop — コンピューターを連携させ、その上でスキルを実行します。インストーラーはまだありません。ソースからビルドしてください。 |
| Synamail | Outlook アドイン(Web、新旧バージョン、Mac)— メールボックス内で Synaplan を利用できます |
| synaplan-nextcloud / synaplan-opencloud | Nextcloud / OpenCloud 用アプリ。ファイルストアの管理を維持したまま、それらのファイルを AI のナレッジとして使用できます(ownCloud は組み込みの WebDAV 接続を通じて動作します) |
| synaplan-tts | 音声出力用のオプションのセルフホスト可能なテキスト読み上げサービス |
| synaplan-base-php | プラットフォームの基盤となる Docker ベースイメージ(FrankenPHP + gRPC + whisper.cpp) |
前提条件
- Docker + Docker Compose v2(macOS/Windows では Docker Desktop、Linux では Docker Engine + Compose プラグイン)
- Git(Git がない場合は、
curl+tarを使ったワンライナーのインストーラーも利用できます) - 最低 8 GB RAM(
local-aiプロファイルを追加する場合は 16 GB を推奨) - 標準インストール用に 空きディスク容量が約 4 GB(ファイル作業と音声による回答を含みます。
local-ai用に約 1 GB を追加し、ローカルチャットモデルも有効にする場合は約 14 GB を追加します) - ホスト側でいくつかのポートを空けておく必要があります。ポートの一覧と、Compose ファイルを編集せずに変更する方法については、インストール — ポートの競合をご覧ください。
Apple Silicon(M1–M4)搭載の Mac — バックエンドイメージはプルせずにビルドしてください。 上記の 3 ステップでの起動では、すでにこの方法を使っています。
make upはマルチアーキテクチャ対応のベースイメージからバックエンドとワーカーをローカルでビルドするため、PHP/FrankenPHP はエミュレーションによる速度低下なしでarm64上でネイティブに実行されます。これは圧倒的に高速なセットアップ方法で、デフォルトで有効です。特別な操作は必要ありません。(公開されているghcr.io/metadist/synaplanイメージもマルチアーキテクチャ対応のため、プルした場合もネイティブに実行されます。)初回のローカルビルドには数分かかりますが、2 回目以降の起動ではキャッシュが使われます。phpMyAdmin は公式のマルチアーキテクチャ対応イメージで、Apple Silicon 上でネイティブに実行されます。MailHog は引き続き amd64 専用の上流イメージです。使用する場合は、すばやくエミュレーションできるよう Docker Desktop → Settings → General → "Use Rosetta for x86/amd64 emulation on Apple Silicon"(macOS 13 以降)を有効にしてください。
インストール方法
| モード | コマンド | サイズ | おすすめの用途 |
|---|---|---|---|
| ワンライナー | curl -fsSL https://raw.githubusercontent.com/metadist/synaplan/main/install.sh | bash | 約 4 GB | 最も手軽な起動方法です。前提条件を確認し、取得して、標準スタックを起動します(本番環境では --mode server を利用できます) |
| 標準 | make up | 約 4 GB | ローカルでの試用向けです。ワンクリック後すぐにチャットを利用できます(Synaplan Demo または独自のキー)。ファイル作業と音声による回答にも対応します。まずステータスページが起動し、その後に残りが起動します |
| クイックスタート(ライト) | deploy/quickstart/compose.lite.yaml | 約 3.2 GB | 公開イメージ、実行時コンテナ 6 個(Git クローンと .env は不要。compose.yaml とボリュームを共有します) |
| + ローカル AI | COMPOSE_PROFILES=local-ai make up | 約 5 GB | Ollama と bge-m3 埋め込みモデルを自身のハードウェアに追加します(ローカルチャットモデルは任意で、約 14 GB 追加) |
| 本番環境 | install.sh --mode server または deploy/ の Compose + スクリプト | 公開イメージ | Linux サーバー上でセルフホストします。インストールをご覧ください |
| Kubernetes | synaplan-charts | 公開イメージ | パートナー企業やエンタープライズ向けの Helm ベースのクラスター展開 |
通常の docker compose up -d でも同じスタックが起動しますが、すべてのイメージがプルされるまで :5173 は応答しません。make up は、数秒以内にステータスページを表示するためのコマンドです。
デフォルトでは AI の重みはダウンロードされないため、初回起動では Docker イメージと npm ci に最も時間がかかります。COMPOSE_PROFILES=local-ai は、セルフホスト型のインストールで deploy/.env に設定するものと同じ切り替え方法です。有効にすると、RAG とセマンティック検索用のローカル埋め込みモデル(bge-m3、約 1 GB)がバックグラウンドで取得され、進行状況はアプリに表示されます。
プロバイダーのキーを UI ではなくシェルから設定しますか?backend/.env に記載したキーも引き続き使用できます。バックエンドはコンテナの起動時にこのファイルを読み込み、初回使用時にキーを暗号化されたストアにインポートします。キーは起動前に記述するか、起動後にコンテナを再起動してください。
echo "GROQ_API_KEY=your_key" >> backend/.env
make up
# already running? pick up the new key with:
# docker compose restart backend worker
アクセス
http://localhost:5173 を開いてください。API は http://localhost:8000、API ドキュメントは http://localhost:8000/api/doc にあります。phpMyAdmin、MailHog、Qdrant、Tika、Ollama、TTS については、インストール — 開発サービスの URLをご覧ください。
デフォルトのログイン認証情報:
| メールアドレス | パスワード | レベル |
|---|---|---|
| [email protected] | admin123 | ADMIN |
| [email protected] | demo123 | PRO |
| [email protected] | test123 | NEW(未認証) |
機能
- AI チャット — Ollama、OpenAI、Anthropic、Gemini、Groq、Mistral、xAI、TrustedTokens(DE)、A2Agent(CN)、HuggingFace(プロバイダー一覧)
- 自己認識型アシスタント — 「ここで何ができますか?」と尋ねるか、
/helpと入力すると、AI アシスタントが一般的な紹介ではなく、このインストール環境で現在利用できる機能に基づいて回答します - マルチタスク DAG ルーティング — AI プランナーが複雑なリクエストを有向タスクグラフ(抽出 → 要約 → 生成 → 返信)に分解し、各ステップに適したモデルへ振り分けます。ステップの実行中はタスクカードがリアルタイムで表示されます。簡単なステップには低コストのモデルを使うため、無駄なトークンを減らせます
- RAG 検索 — MariaDB VECTOR または Qdrant を使った、セマンティックなドキュメント検索
- チャットウィジェット — あらゆるウェブサイトに埋め込めます(ウィジェットガイド)
- モバイルアプリ — iPhone と Android でチャット、ドキュメント、音声を利用できます。web.synaplan.com または独自サーバーに接続します(App Store · Google Play)
- Synaplan Desktop — コンピューターをペアリングして、そこでスキルを実行します。Channels → Synaplan Desktop を開いてください。インストーラーはまだありません(synaplan-desktop)
- AI アシスタント — バージョンを公開できる、保存済みのレシピ(指示、ナレッジフォルダー、ツール、トリガー)です(アシスタント)
- ツールと承認 — ツールレジストリーを一元管理します。書き込みを行うアクションは承認の下で一時停止します(ツール)
- ユーザーとグループ — フォルダー、チャット、アシスタント、タスクを共有できます。Operate → Users を開いてください(ユーザー)
- ファイル作業 — 選択したファイルのコピーに対して、隔離されたサイドカーで短時間の Python または Node の処理を実行します(ガイド)
- ライブサポート — リアルタイム WebSocket レイヤー(Centrifugo + Redis):ウィジェットのチャットへの人間の引き継ぎ、入力インジケーター、オペレーターへの通知に対応します(リアルタイムガイド)
- WhatsApp — Meta Business API との連携
- メール — AI を活用したメール返信に加え、メールボックスのリアルタイム検索(IMAP および Microsoft 365)
- 接続 — Microsoft 365、Dropbox、Nextcloud / ownCloud / WebDAV、CalDAV に対応。メールの読み込み、結果のファイル保存、カレンダーイベントの書き込みができます(接続ガイド)
- 保存済みタスク — 複数ステップのプランをピン留めし、必要なときやスケジュールに従って実行できます。Steps エディターと webhook トリガーを利用できます(Manage → Automations → Saved Tasks)
- 監視対象ページ — URL を保存してスケジュールに従って比較し、変更があったときに差分をメールで送信します
- 音声 — Whisper による文字起こし(入力)+ オプションの synaplan-tts(出力。5 種類の音声を内蔵し、UI 言語に応じて音声が選択されます)
- ドキュメント — PDF、Word、Excel、画像に対応し、OCR も利用できます。アシスタントは Office ファイルの作成と修正もできます。オプションの Collabora CODE サイドカーを使うと、サムネイル、PDF エクスポート、プレビュー、結合が可能です(Office ドキュメント)
- AI メモリー — Qdrant のベクトル検索を使ったユーザープロファイリング
- フィードバックシステム — Qdrant を活用したフィードバックの収集と分析
- プラグイン — 既存の動作に影響を与えないプラグインシステム(プラグインガイド)
- MCP サーバー (早期アクセス) — Model Context Protocol を介して AI クライアント(Claude、Cursor、…)を接続できます。RAG とメモリーを
POST /mcpでツールとして利用できます(MCP ガイド) - MCP クライアント (早期アクセス) — 独自の MCP サーバー(Jira、Confluence、CRM、wiki、n8n、…)を Manage → Connections → MCP Servers で接続できます。プランナーは
mcp_fetchでライブデータを取得し、そのサーバーで allow write actions を有効にすると、mcp_actionでチケットやページを作成できます。破壊的なツールは引き続き拒否されます。SSRF 対策済みで、トピックごとにオプトインできます。シード済みのBCONFIGフラグ(MCP.CLIENT_ENABLED、MULTITASK.MCP_FETCH_ENABLED、MULTITASK.MCP_ACTION_ENABLED)で有効化します。明示的な0の行はオペレーターによる緊急停止スイッチです。docs/MULTITASK_DATA_NODES.md を参照してください - Claude Code と Anthropic 互換 API — Claude Code または Anthropic プロトコルに対応した任意のクライアントをインスタンスに接続し(
POST /v1/messages)、Manage → Developer & devices → Coding clients で設定します(ガイド)
AI プロバイダーとモデル
Synaplan はプロバイダーに依存しません。Operate → AI infrastructure → Providers & keys で使用したいプロバイダーに接続できます(キーはその場で検証され、データベースに暗号化して保存されるため、再起動なしで有効になります)。または、以下の環境変数を backend/.env に設定できます。これらの変数はコンテナ起動時に読み込まれ、初回使用時に暗号化ストアへインポートされます。各ユーザーはタスク(チャット、画像認識、画像、動画、音声、埋め込み)ごとに異なるモデルを選択できます。モデルがハードコードされていることはありません。
| プロバイダー | backend/.env 内の変数 | モデル |
|---|---|---|
| OpenAI | OPENAI_API_KEY | GPT-5.6 Sol / Terra / Luna、GPT-5.5(+ Pro)、GPT-5.4(+ mini)、GPT Image、Whisper、text-embedding-3 |
| Anthropic | ANTHROPIC_API_KEY | Claude Opus 5、Sonnet 5、Fable 5、Opus 4.8、Haiku 4.5(チャット + 画像認識) |
| Google Gemini | GOOGLE_GEMINI_API_KEY | Gemini 3.x / 2.5 のチャット + 画像認識、Nano Banana(Pro / Lite を含む)、Veo 3.1、Gemini TTS |
| Groq | GROQ_API_KEY | Qwen 3.6 27B(チャット + 画像認識)、GPT-OSS 20B/120B、Whisper Large v3 |
| Mistral 🇫🇷 | MISTRAL_API_KEY | Mistral Medium 3.5(+ 画像認識)、Mistral Large 3、Mistral Large 4(+ 画像認識)、Voxtral の文字起こし + TTS |
| xAI | XAI_API_KEY | Grok 4.7 / 4.6 / 4.5(+ 画像認識、500K コンテキスト)、Grok Imagine の画像 + 動画(Pro / 1.5 ティアを含む) |
| Meta | META_API_KEY | Muse Spark 1.3、Muse Wonder(+ 画像認識)、Muse Image、Muse Voice Transcribe — Meta Model API |
| Cerebras | CEREBRAS_API_KEY | Qwen 3.8 27B(+ 画像認識)、GPT OSS 120B — 非常に高速な推論(約2,000~3,000トークン/秒) |
| TrustedTokens 🇩🇪 | TRUSTEDTOKENS_API_KEY | GLM 5.2 / 5.3(+ Flash の画像認識)、Chimera、Qwen3.6 35B(+ 画像認識)、GPT OSS 120B — ドイツの GPU(TNG)上での主権を確保した推論、データ保持ゼロ |
| A2Agent 🇨🇳 | A2AGENT_API_KEY | Qwen3.8 MAX / Flash(+ 画像認識)、DeepSeek V4 Pro / Flash、MiniMax M3 — A2Agent ゲートウェイ経由の中国製最先端モデル |
| HuggingFace | HUGGINGFACE_API_KEY | Kimi K3 / K2.5 / K2.6 / K2.7 Code(チャット + 画像認識) |
| TheHive | THEHIVE_API_KEY | Flux Schnell、SDXL |
| Higgsfield | HIGGSFIELD_API_KEY + HIGGSFIELD_API_SECRET | Soul、Reve、DoP、Kling 2.1 |
| Cloudflare Workers AI | CLOUDFLARE_ACCOUNT_ID + CLOUDFLARE_API_TOKEN | bge-m3 埋め込み(埋め込みのフォールバックとしても使用可能) |
| Ollama 🇩🇪 セルフホスト | OLLAMA_BASE_URL(キー不要) | 任意のローカルモデル — チャット、画像認識、bge-m3 埋め込み |
料金の透明性。 各モデルにはプロバイダー独自の料金(入力 / 出力の100万トークンあたりの米ドル、またはメディアの場合は画像 / 秒 / 文字あたり)が適用されます。その間に独自のクレジット単位を挟むことはありません。セレクターには各モデルの横に「無料 / 低 / 中 / 高」のコストバッジが表示され、回答ごとにも表示されます。GET /api/v1/config/models は priceIn / priceOut を返し、統計ページには各呼び出しの実際のコストが記録されます。web.synaplan.com のホスト版では、プランの使用量は同じカタログに基づいて計算されます。Ollama を使ってセルフホストする場合、トークンあたりのコストは単純にゼロです。詳細:モデル料金とコストの透明性。
モデルカタログの変更(新しいモデル、提供終了となる世代、料金の更新)はシーダーとして配信されます。そのため、既存のインストール環境は、サポート対象の後継モデルに切り替えられ、提供終了モデルが気づかれないまま残ることはありません。モデルの提供終了時には後継モデルが記録され、次回のデプロイ時にすべてのインストール環境が切り替えられます。docs/PRICING_MAINTENANCE.md をご覧ください。
設計はシンプルに:コアとオプションの構成要素
make up を実行するとプラットフォーム一式が起動しますが、コアは意図的に小さく保たれています。アプリ、そのデータベース、Redisです。それ以外は、機能を追加する代わりにRAMを消費する構成要素です。必要なときに有効にし、不要なときに無効にしてください。Synaplanはどちらの場合も動作を続け、対応する機能を非表示にするだけです。http://localhost:5173 の起動ステータス画面には、各構成要素の現在のオン/オフ状態が表示されます。ログイン後も、運用 → システムステータス(/admin/features)で同じ情報を確認できます。
| 構成要素 | 提供する機能 | デフォルト | 切り替え方法 |
|---|---|---|---|
コア — frontend、backend、worker、scheduler、db(MariaDB)、redis | アプリ、API、非同期ジョブ、スケジュール済みジョブ、ストレージ、キャッシュ、キュー | 常にオン | — |
Ollama(ollama) | ハードウェア上で動作するローカルAI:ドキュメント検索用のbge-m3埋め込み、オプションのローカルチャット(ENABLE_LOCAL_GPT_OSS=true) | オフ | COMPOSE_PROFILES=local-ai make up — 本番環境のdeploy/.envと同じ切り替え方法です |
Qdrant(qdrant) | AIメモリ、フィードバック分析、大規模RAG用のベクトルデータベース | オン | docker compose stop qdrant — ドキュメント検索自体はMariaDB VECTOR(デフォルトのVECTOR_STORAGE_PROVIDER)で動作するため、RAGは引き続き利用できます。メモリ機能は停止します |
Centrifugo(centrifugo) | ライブサポート:ウィジェットチャットの担当者への引き継ぎ、入力中インジケーター、オペレーターへの通知(リアルタイムガイド) | オン | REALTIME_ENABLED=false make up(その後、docker compose stop centrifugo)— ダッシュボードは通常のREST更新に切り替わります |
Apache Tika(tika) | RAG用のPDF、Word、Excelなど1000以上の形式からのテキスト抽出 | オン | docker compose stop tika — 以降、アップロードしたファイルはプレーンテキスト/OCRのみでインデックス化されます |
Collabora CODE(collabora) | Officeファイル:サムネイル、「PDFとしてダウンロード」、インラインプレビュー、「PDFとして結合」(約2 GBのRAM)— 詳細 | オフ | docker compose --profile office up -d |
Docling(docling) | Tikaの前段でレイアウトを考慮した抽出(表、見出し)を行います — モジュール | オフ | docker compose --profile docling up -d |
SearXNG(searxng) | 検索クエリをネットワーク内に留めるセルフホスト可能なウェブ検索 — モジュール | オフ | docker compose --profile searxng up -d |
ファイル処理(compute) | 選択したファイルのコピーを使った短時間のPython/Nodeジョブ — 詳細 | オン | COMPUTE_URL=disabled make up |
テキスト読み上げ(tts) | 5種類の内蔵音声による回答の読み上げ — 詳細 | オン | docker compose stop tts |
Keycloak(keycloak) | OIDC開発用のSSOテストレルム(設定) | オフ | docker compose --profile oidc up -d |
デフォルトでオンの構成要素を、再起動後もオフのままにする方法。 docker compose stop による停止は、次回のup -dで解除されます。構成要素を恒久的にオプトイン方式にするには、docker-compose.override.yml(gitでは追跡されません)でプロファイルを割り当てます。これにより、通常のup -dでは起動せず、--profile optionalで再び有効にできます。
services:
qdrant:
profiles: [optional]
本番環境も同じルールに従います。deploy/compose.yamlでは、web/worker/schedulerに加え、db/redis/centrifugo/tika/qdrantと読み上げ機能が常に起動し、office、local-ai、computeはプロファイルとして設定されています(deploy/.envのCOMPOSE_PROFILES=office,local-ai,compute)。Kubernetesへのインストールでは、synaplan-chartsを通じて同じサービスが構成されます。その他の開発専用コンテナ(phpmyadmin、mailhog、frontend-widgets、startup-notes)は本番環境に含まれません。
リアルタイム処理とバックグラウンド処理
どちらの Compose ファイルでも、内部サービスが 4 つ起動します(ホストポートの公開や設定は不要です)。
| サービス | 役割 |
|---|---|
redis | 必須の共有インフラストラクチャです。キャッシュ、セッション、ロック、レート制限、メッセージキュー(Redis Streams)、Centrifugo エンジンを担います |
centrifugo | リアルタイム機能(ライブチャットの引き継ぎ、入力中インジケーター、オペレーターへの通知)用の WebSocket ゲートウェイです。ブラウザーは /connection/websocket 経由で同一オリジンに接続します |
worker | 非同期ジョブ(AI 処理、ドキュメントのインデックス作成、ウィジェットのクロール)を実行する Symfony Messenger コンシューマーです |
scheduler | 60 秒ごとに実行します。保存済みタスク、メディアジョブの回収、一時ファイルのクリーンアップ、アップデートの確認を行います |
マルチノードクラスターでは、すべてのノードが 1 つの Redis を共有するため、あるノードで公開された WebSocket イベントは、ほかのノードに接続しているブラウザーにも届きます。詳細はdocs/REALTIME.mdをご覧ください。
テキスト読み上げ
音声出力は make up で起動します。synaplan-tts(イメージ:ghcr.io/metadist/synaplan-tts)には、Piper の音声が 5 種類(英語、ドイツ語、スペイン語、フランス語、トルコ語)あらかじめ含まれています。話者コントロールを非表示にするには、tts コンテナーを停止してください。
# Already running after `make up`. Standalone on another machine:
docker run -d --name synaplan-tts -p 127.0.0.1:10200:10200 ghcr.io/metadist/synaplan-tts:latest
バックエンドは SYNAPLAN_TTS_URL を参照します(Compose のデフォルトは http://tts:10200 です)。
音声は UI の言語に応じて選択されます。 チャットは有効なフロントエンドのロケール(en / de / es / fr / tr)を送信します。バックエンドが異なる返信言語を検出した場合は、そちらが優先されます。Piper はその後、短いコードを対応する組み込み音声に割り当てます(ドイツ語 UI → kerstin、スペイン語 → davefx、など)。個別の音声選択機能はありません。追加の Piper モデルを使うには、追加音声ボリュームに .onnx と .onnx.json を配置してください。synaplan-tts の READMEとdocs.synaplan.com/ttsをご覧ください。
Office ドキュメント
サムネイル、PDF エクスポート、インラインプレビュー、「PDF として結合」には、オプションの Collabora CODE サイドカーが必要です。デフォルトでは無効のため、make up では取得されません。チャットと DOCX / XLSX / PPTX の生成は、これがなくても動作します。セットアップ方法と、OFFICE_CONVERT_URL を backend/.env に設定してはいけない理由については、インストール — オプションの Office 変換をご覧ください。
ファイル操作
アシスタントは、選択済みファイルのコピーに対して、短い Python または Node プログラムを実行できます。これは make up で起動します。開発用トークンとサイドカーを無効にする方法については、インストール — ファイル操作をご覧ください。
よく使うコマンド
# Startup progress ("please wait..." notes + READY message)
docker compose logs -f startup-notes
# Logs
docker compose logs -f backend
# Restart
docker compose restart backend
# Reset database
docker compose down -v && make up
# Run tests
make test
# Code quality
make lint
ドキュメント
ユーザー向けドキュメントと API ドキュメントは docs.synaplan.com にあります。ソース: metadist/synaplan-docs。
このリポジトリ内のガイド(このコードベースを扱う開発者向け):
| ガイド | 説明 |
|---|---|
| インストール | ローカル開発スタックと本番環境でのセルフホスト(deploy/) |
| 設定 | 環境変数、API キー |
| 機能フラグ | 各ウェーブ機能(ユーザーと共有、アシスタント、ツール、保存済みタスクのステップ、デスクトップ、ファイル操作など):管理者による切り替え、FEATURE_* 環境変数による固定、デフォルト |
| ファイル操作/計算 | オプションのサイドカー:フラグ、Compose プロファイル、クォータ、ワークスペース |
| 接続 | Microsoft 365、Dropbox、Nextcloud/WebDAV、CalDAV、Jira/Confluence |
| AI モデルの料金 | モデルカタログ、プロバイダーの料金、モデルの廃止 |
| 開発 | コマンド、テスト、アーキテクチャ |
| リアルタイム/WebSocket | Centrifugo と Redis によるリアルタイムレイヤー、マルチノードデプロイ |
| オブザーバビリティ | リクエスト相関 ID、秘匿化されたイベントリング、管理者向けログ API |
| Office ドキュメント | オプションの Collabora CODE サイドカー(PDF エクスポート、プレビュー、形式変換) |
| RAG システム | ドキュメントの検索と処理 |
| チャットウィジェット | ウェブサイトへのチャットの埋め込み |
| Meta Business API の設定 | |
| メール | メールチャネルの統合 |
| Anthropic 互換 API | Claude Code/Messages API ゲートウェイ(POST /v1/messages) |
| セキュアな計算(ユーザー向けドキュメント) | ユーザーに表示される内容:ファイル操作カード、ワークスペース、クォータ |
関連リポジトリ
| リポジトリ | 目的 |
|---|---|
| synaplan | メインアプリ(このリポジトリ) |
| synaplan-docs | 公開ドキュメントサイト(docs.synaplan.com) |
| Synamail | Outlook アドイン |
| synaplan-desktop | Synaplan Desktop(Windows、macOS、Linux)。インストーラーはまだありません。ソースからビルドしてください。 |
| synaplan-apps | iOS および Android アプリ — App Store · Google Play |
| synaplan-nextcloud | Nextcloud 統合 |
| synaplan-opencloud | OpenCloud 統合 |
| synaplan-tts | オプションの Piper TTS — 音声 4 種を組み込み済みの イメージ |
| synaplan-sortx | ドキュメント分類プラグインとローカルツール |
| synaplan-charts | Kubernetes 用 Helm チャート |
| synaplan-platform | 本番環境のデプロイ設定 |
プロジェクト構成
synaplan/
├── backend/ # Symfony PHP API
├── frontend/ # Vue.js SPA
├── docs/ # Developer documentation
├── deploy/ # Production self-host compose + lifecycle scripts
├── sidecars/ # Optional sidecars (secure compute)
├── _docker/ # Docker configs
└── plugins/ # Plugin system
スター履歴
- Discord — チームやコミュニティと交流できます。セルフホストや設定に関する質問をするのに最も早い場所です
- GitHub Issues — バグや機能リクエスト
- セキュリティポリシー — 脆弱性を非公開で報告する方法と、その後の対応について
- www.synaplan.com — 製品、ホスティング、エンタープライズに関するお問い合わせ
貢献
CONTRIBUTING.mdをご覧ください。AGENTS.mdは、このリポジトリで作業するコーディングエージェント向けのガイドです。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。
