UbuntuにAnythingLLMを構築して社内文書AIを作る方法

ローカルLLM

「社内マニュアルや議事録をAIに読み込ませて、自然な日本語で質問したい」——そんな要望をクラウドAPIなし・無料・完全ローカルで実現できるのが AnythingLLM です。

AnythingLLMはRAG(Retrieval Augmented Generation)をブラウザのGUIだけで設定できるオールインワンツールで、PDFや.txtファイルをドラッグ&ドロップするだけで「その文書を知っているAI」が作れます。正直、ここまでセットアップが簡単なRAGツールはなかなかありません。

本記事では、Ubuntu 24.04 LTS 環境に AnythingLLM 1.14.0(2026-06-11リリース)を Docker で構築し、実際に起動した画面のスクリーンショットと実測データを元に手順を解説します。

この記事のポイント

  • AnythingLLM は docker run 1コマンドで起動。GUIから文書アップロード〜RAGチャットまで完結
  • LLMバックエンドは Ollama(完全ローカル)・OpenAI・Anthropic など8種類以上から選択可能
  • ベクトルDBは LanceDB をデフォルト内蔵。外部DBへの切り替えも GUI から設定できる
  • 実測: Docker イメージは mintplexlabs/anythingllm:latest(バージョン 1.14.0、Node.js v18.20.8 内蔵)
  • ポート 3001 でブラウザアクセス。ストレージは -v マウントでホストに永続化できる

AnythingLLMとは:RAGをGUIで動かすオールインワンツール

RAG(Retrieval Augmented Generation)は「ユーザーの質問に近い文書を検索して、その内容をLLMに渡す」仕組みです。LLMが本来知らない情報(社内規程・製品マニュアル・過去の議事録など)に対しても、正確に答えられるようになります。

ただし、従来のRAG構築はPythonコードとベクトルDBの設定が必要で、初学者には敷居が高いものでした。AnythingLLMはその複雑さをすべてGUIに隠蔽し、ブラウザ操作だけでRAGチャットが作れるように設計されています。

機能の核は「ワークスペース」という概念です。ワークスペースごとに文書を分けて管理でき、たとえば「営業資料ワークスペース」と「技術仕様書ワークスペース」を別々に作って使い分けることができます。

AnythingLLM RAG構成図(Ubuntu + Docker構成、概念図)
AnythingLLM RAG構成図(Ubuntu + Docker構成、概念図)

動作確認済み環境

項目 環境・バージョン
OS Ubuntu 24.04.4 LTS(Noble Numbat)
Docker 29.1.3(docker.io、Ubuntu 24.04 aptリポジトリ)
AnythingLLM 1.14.0(mintplexlabs/anythingllm:latest、2026-06-11リリース)
Node.js(コンテナ内) v18.20.8
デフォルトベクトルDB LanceDB(コンテナ内に内蔵)
アクセスポート 3001/tcp
確認日 2026-06-14

注意

本記事の手順は Ubuntu 24.04 LTS で検証しています。Ubuntu 22.04 でも基本的な手順は同じですが、Docker のバージョンや依存パッケージが異なる場合があります。本番運用の場合は公式の最新ドキュメントも合わせて確認してください。

AnythingLLM 1.14.0 Dockerイメージ構成と依存バージョン(実測)
AnythingLLM 1.14.0 Dockerイメージ構成と依存バージョン(実測)

手順1:Docker のインストール

AnythingLLM は Docker イメージとして提供されています。まずUbuntuに Docker をインストールします。

手順1-1:パッケージリストを更新してDockerをインストールする




ubuntu@vps: ~
$ sudo apt-get update
Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
Hit:2 http://security.ubuntu.com/ubuntu noble-security InRelease
Reading package lists… Done
$ sudo apt-get install -y docker.io
Reading package lists… Done
The following NEW packages will be installed:
docker.io …
Setting up docker.io (29.1.3-0ubuntu3~24.04.2) …

手順1-2:Docker を自動起動に設定してユーザーをdockerグループに追加する




ubuntu@vps: ~
$ sudo systemctl enable –now docker
Synchronizing state of docker.service with SysV service script with /lib/systemd/systemd-sysv-install.
Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/docker.service.
$ sudo usermod -aG docker $USER
$ newgrp docker
$ docker –version
Docker version 29.1.3, build af0b1d9

sudo usermod -aG docker $USER を実行したあとは、newgrp docker で即時反映するか、一度ログアウトして再ログインしてください。これをしないと次のコマンドで permission denied が出ます。

手順2:AnythingLLM のストレージディレクトリを作成する

AnythingLLM はデータ(文書・会話履歴・ベクトルDB)をコンテナ内の /app/server/storage/ に保存します。このディレクトリをホスト側にマウントしておかないと、コンテナを削除した時にデータが消えます。




ubuntu@vps: ~
$ mkdir -p ~/anythingllm_storage
$ ls ~/anythingllm_storage
(空の状態でOK。初回起動時に自動で作成される)

手順3:AnythingLLM コンテナを起動する

手順3-1:docker run でAnythingLLMを起動する




ubuntu@vps: ~
$ docker run -d \
–name anythingllm \
-p 3001:3001 \
-v ~/anythingllm_storage:/app/server/storage \
–restart unless-stopped \
mintplexlabs/anythingllm:latest
Unable to find image ‘mintplexlabs/anythingllm:latest’ locally
latest: Pulling from mintplexlabs/anythingllm
Digest: sha256:2be879706ac122c5e75fdb7c2ae3b60881c606445a4e8bbd1034e08c4aac386d
Status: Downloaded newer image for mintplexlabs/anythingllm:latest
b6bdc8d06280c97700d86441fb4e8799ab0d9307ba11bb8e6277be8ddf24c391

手順3-2:起動状態を確認する




ubuntu@vps: ~
$ docker ps –filter name=anythingllm
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b6bdc8d06280 mintplexlabs/anythingllm:latest “/bin/sh -c ‘node –…” 2 minutes ago Up 2 minutes (healthy) 0.0.0.0:3001->3001/tcp anythingllm
$ curl -s http://localhost:3001/api/ping
{“online”:true}

STATUSUp ... (healthy) になっていれば起動成功です。{"online":true} が返ってくれば API も正常に動いています。

VPSで使う場合はファイアウォールに注意

Vultr・DigitalOceanなどのVPSではデフォルトでポートが閉じています。sudo ufw allow 3001 でポートを開放してからブラウザでアクセスしてください。セキュリティが気になる場合は、SSHポートフォワード(ssh -L 3001:localhost:3001 user@your-vps-ip)でローカルからのみアクセスする方法もあります。

手順4:ブラウザからアクセスして初期設定をする

コンテナが起動したら、ブラウザで http://localhost:3001(VPSの場合は http://サーバーIP:3001)を開きます。

AnythingLLM 初回起動画面(「Get Started」ボタン)
AnythingLLM 初回起動画面(「Get Started」ボタン)

「Get Started」ボタンをクリックするとセットアップウィザードが始まります。最初の画面で LLMバックエンドを選択します。

LLM選択画面(Ollama・OpenAI等8種類以上を選択可能)
LLM選択画面(Ollama・OpenAI等8種類以上を選択可能)

選択肢は8種類以上あります。用途に合わせて選んでください。

AnythingLLM LLMバックエンド比較表(実測確認)
AnythingLLM LLMバックエンド比較表(実測確認)
著者アイコン
著者アイコン

「まずOllamaで完全ローカル構成を試す」のが初心者におすすめです。APIキーが不要で、通信量もゼロなので安心して試せます。Ollamaは別途 docker run -d -p 11434:11434 ollama/ollama で起動しておく必要があります。

Ollamaをバックエンドに設定する場合

Ollamaを選択した場合、接続先URLを設定します。同一ホストで動かしている場合は http://localhost:11434 ではなく、DockerコンテナからホストのOllamaへ接続するため http://host.docker.internal:11434 を使います。




ubuntu@vps: ~
$ docker run -d -p 11434:11434 –name ollama ollama/ollama

$ docker exec ollama ollama pull llama3.2:3b
pulling manifest
pulling 8eeb52dfb3bb… 100% ▕████████████████████████████▏ 2.0 GB
success

Ollamaのモデルダウンロードには数分〜十数分かかります。llama3.2:3b(約2GB)はスペックの低いVPSでも動くサイズです。

手順5:ワークスペースを作成して文書をアップロードする

初期設定が完了するとメインのチャット画面が表示されます。左サイドバーに「My Workspace」というデフォルトのワークスペースが作られています。

文書アップロード画面(ドラッグ&ドロップ対応)
文書アップロード画面(ドラッグ&ドロップ対応)

画面上部のクリップアイコン(「Upload documents」)をクリックすると文書アップロード画面が開きます。対応フォーマットは PDF・.txt・.docx・.md・.html など20種類以上です。

アップロードできる文書の種類

ファイル形式 対応 メモ
PDF 日本語PDF、スキャンPDF(OCRは非対応)
.txt / .md マニュアル・議事録テキストに最適
.docx Word文書をそのままアップロード可
.html 社内Wikiのエクスポートなど
YouTube URL 字幕をテキストとして取り込む
Webページ URL URLを貼るとページをクロール

ファイルをアップロードした後、「Move to Workspace」ボタンをクリックしてワークスペースに追加します。自動でテキスト分割・埋め込みが行われるので、数秒〜1分ほど待てば準備完了です。

手順6:実際にRAGチャットを試す

文書の追加が終わったら、チャット入力欄から質問を打ち込みます。アップロードした文書の内容に基づいた回答が返ってきます。

ワークスペースチャット画面(文書をコンテキストとして回答)
ワークスペースチャット画面(文書をコンテキストとして回答)

回答の下に「Sources」セクションが表示され、どの文書のどの部分を参照して答えたかが確認できます。これがRAGの最大の強みで、「なぜその答えになったか」をトレースできるため、社内用途での信頼性が高まります。

チャットモードの切り替え

AnythingLLMのチャット入力欄の左側に「Chat」と「Query」の切り替えがあります。

  • Chat モード:会話履歴を記憶しながら対話。文書+会話の流れを踏まえて回答
  • Query モード:文書のみを参照して回答。会話履歴を使わない。文書検索用途に向く

ストレージの確認:データはどこに保存されているか

AnythingLLM は起動すると ~/anythingllm_storage/ 以下に以下のディレクトリを自動生成します。実際にコンテナ内で確認した結果です。




ubuntu@vps: ~
$ ls ~/anythingllm_storage/
anythingllm.db comkey documents lancedb models push-notifications vector-cache
$ ls -lh ~/anythingllm_storage/anythingllm.db
-rw-r–r– 1 user user 344K Jun 14 04:10 anythingllm.db

各ディレクトリの役割は以下の通りです。

  • anythingllm.db:SQLite データベース。ワークスペース設定・会話履歴・ユーザー情報を保存
  • documents/:アップロードされた元ファイル
  • lancedb/:埋め込みベクトルを保存する LanceDB のデータファイル
  • vector-cache/:チャンクごとのベクトル計算結果キャッシュ

よくあるエラーと解決策

① コンテナが起動しない / ポートが使えない




ubuntu@vps: ~
docker: Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3001 -> 0.0.0.0:0: listen tcp 0.0.0.0:3001: bind: address already in use.

別のプロセスがポート 3001 を使っています。sudo lsof -i :3001 で確認して対象プロセスを停止するか、-p 3002:3001 のように別ポートを使ってください。

② OllamaにAnythingLLMから接続できない

Docker コンテナ内から localhost を指定しても、それはコンテナ自身を指します。ホスト側の Ollama に接続するには http://host.docker.internal:11434 を使ってください。Linux の場合は --add-host=host.docker.internal:host-gateway オプションをコンテナ起動時に追加する必要があります。




ubuntu@vps: ~
$ docker run -d \
–name anythingllm \
-p 3001:3001 \
–add-host=host.docker.internal:host-gateway \
-v ~/anythingllm_storage:/app/server/storage \
–restart unless-stopped \
mintplexlabs/anythingllm:latest

③ 文書をアップロードしても回答に反映されない

文書をアップロードしただけでは不十分です。アップロード後に「Move to Workspace」ボタンをクリックして、ワークスペースに明示的に追加する必要があります。このステップを忘れるとチャットで参照されません。

④ 日本語の文書がうまく処理されない

PDF の日本語テキスト抽出は、スキャンPDF(画像PDF)では機能しません。テキストとして保存されているPDFか、.txt や .md 形式への変換をおすすめします。また、LLMバックエンドに日本語対応のモデル(llama3.2:3bgemma2:2b など多言語対応モデル)を選ぶことで精度が上がります。

Docker Compose で管理する場合(応用)

本番運用や複数サービスと組み合わせる場合は Docker Compose を使うと管理しやすくなります。




ubuntu@vps: ~
$ cat docker-compose.yml
services:
anythingllm:
image: mintplexlabs/anythingllm:latest
container_name: anythingllm
ports:
– “3001:3001”
volumes:
– ./storage:/app/server/storage
environment:
– SERVER_PORT=3001
restart: unless-stopped
extra_hosts:
– “host.docker.internal:host-gateway”
$ docker compose up -d
[+] Running 1/1
✔ Container anythingllm Started

まとめ

AnythingLLM を Ubuntu + Docker で構築する手順をまとめます。

  • Docker のインストールは sudo apt-get install -y docker.io(Ubuntu 24.04 で バージョン 29.1.3 が入る)
  • AnythingLLM の起動は docker run -d -p 3001:3001 -v ~/anythingllm_storage:/app/server/storage mintplexlabs/anythingllm:latest の1コマンド
  • ブラウザで http://localhost:3001 にアクセスし、LLMバックエンドを選択するだけでセットアップ完了
  • ローカルで完全無料にするなら Ollama と組み合わせる。Dockerから繋ぐには host.docker.internal を使う
  • アップロードした文書は「Move to Workspace」で追加して初めてRAGに使われる
  • データは ~/anythingllm_storage/ に永続化されるので、コンテナを削除してもデータは残る

VPS で AnythingLLM を公開して複数人で使う場合は、Settings > Users からユーザーを追加し、各ワークスペースへのアクセス権を設定することもできます。

「VPSを借りてAnythingLLMを社内向けに公開したい」という場合は、下記のVPS選び記事も参考にしてください。

コメント

タイトルとURLをコピーしました