========================================================
こんにちは。
みなさん、『 いいパソコン 』持っていますか?
GPUが積まれた高性能マシン。
メモリたっぷり。
ローカルでLLMをブン回せる環境。
私は持っていません。
(パソコンってお高いですからね...設定も大変だし。)
それでもローカルLLMで社内Wikiを作ってみたい!
ということで今回は、
「いいPCがなくても、ローカルLLMを使って社内Wikiを作る」をテーマに
を使った構成を試していきます!
本記事で構築した環境の構成は以下の通りとなっています。
今回は、AWS上での利用を社内で許可された機密情報のみ使用する前提での検証方法を紹介します。
実際に本方法を試す場合は、ご自身の所属の企業のルールに従ってください。
本記事の情報は2026年2月時点の情報です。
deepwiki-openはDeepWikiをローカルに構築し、LLMと連携した自分だけのWikiを作れるOSSです。
もともとDeepWikiという、GitHubリポジトリをAIの力でWiki化するオンライン上のサービスがあります。
そのOSS版(セルフホスト版)と考えていただければイメージしやすいと思います。
以下に主な特徴についてまとめます。
オンライン版DeepWikiでは、パブリックリポジトリのみが対象であるため、社内で閉じているプライベートリポジトリをWiki化することはできません。
しかし、deepwiki-openではパブリックリポジトリに加え、プライベートリポジトリも対象にすることができます。
また、使用するモデルを自分で選択できるため、ローカルLLMやオプトアウトされたLLMを利用することで、安全に社内情報を扱うことができます。
社内や個人で閉じたプライベートリポジトリを管理されている方におすすめです!
オンライン版DeepWikiで生成されたWikiは英語で表記されています。
しかし、deepwiki-openでは使用モデルだけでなく言語も指定できるため、日本人が誰でも簡単に読めるWikiを生成することができます。
deepwiki-openは単なる静的Wikiツールではありません。対象にしたリポジトリを参照した上でQ&Aが可能な、質問型インターフェースが用意されています。
例えば、
「このシステムのアーキテクチャは?」
「導入手順を細かく教えて」
「認証周りの実装箇所はどこ?」
などの質問を投げかけると、リポジトリ全体を横断して関連情報を整理し、構造を踏まえた回答が返ってきます。
これがdeepwiki-openの大きな魅力です。
初見のリポジトリを大まかに把握したいときでも、リポジトリの構造を詳細に深く確認したいときでも、常に有用な機能です。
オンライン版DeepWikiはチャット形式で会話を継続できますが、
現時点のdeepwiki-openは一問一答方式となっています。
deepwiki-openを動作させるための環境を構築していきます!
「いいパソコン」をもっていないため、手元のPCの代わりにEC2を利用する構成を採用します。そのためGPUや大きめのメモリがある設定をしていきます。
また今回は必要に応じてBedrockも併用するため、そちらの設定も行います。
全体構成は以下のようになります。
という構成になっています。
モデルアクセス設定が廃止され、自動で有効化されるようになったため、
手動でモデルアクセスを有効化する必要はありません。
ただし、Anthropic(Claude系モデル)については初回のみユースケース入力が求められます。
画面の案内に従って設定してください。
EC2インスタンスを以下の設定で立ち上げます。
インスタンスの設定
deepwiki-open)Ubuntu Server 24.04 LTS (HVM),EBS General Purpose (SSD) Volume Type.g4dn.xlarge)AMIについて
他の候補でも問題ありませんが、この後のCLI上の操作に影響を与える可能性があります。
インスタンスタイプについて
ローカルLLMを動かす場合は、使用するモデルサイズに応じて必要なスペックが変わります。ローカルLLMを使用せず、Bedrockのモデルを使用する場合は、通常のもの(t3.mediumなど)で問題ありません。
今回使用するg4dn.xlargeはGPU付きで性能が高い分、値段も高額になります。
東京リージョンのオンデマンド料金は $0.71/時間(約111円/時間)です。
検証が終わったら忘れずにEC2インスタンスを停止しましょう。
セキュリティグループを以下の設定で編集します。
UI用
APIサーバー用
以下の設定でIAMロールを作成し、インスタンスにアタッチします。
IAMロールの設定
AmazonBedrockFullAccessこれでAWSマネジメントコンソール上での準備は完了です!
インスタンスに接続できましたら、次はインスタンス上の準備にいきましょう!
Ubuntu Server 24.04の環境に前提となるツールやライブラリを導入していきます。
また、GPU最適化のためにNVIDIAドライバなども導入します。
導入ツールは次の5つです。
これらのツール導入に関しては、以下の記事を参考にさせていただきました。
Docker系のインストール手順
# パッケージをアップデート
$ sudo apt update
# 通信系の設定
$ sudo apt install ca-certificates curl gnupg lsb-release
# Docker公式リポジトリの署名キーを保存するディレクトリを作成
$ sudo mkdir -p /etc/apt/keyrings
# Docker公式のGPG公開鍵を取得し、aptが利用できる形式に変換して保存
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | \
sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# Docker公式リポジトリをaptのソースリストに追加
$ echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# パッケージの再アップデート
$ sudo apt update
# Dockerのインストール
$ sudo apt install docker-ce docker-ce-cli containerd.io
# Docker composeのインストール
$ sudo apt install docker-compose-plugin
バージョンを確認して、正しくバージョンが表示されれば成功です!
バージョン確認
$ docker --version
Docker version 29.2.1
$ docker compose version
Docker Compose version v5.0.2
GPU設定系のインストール手順
# nvidia-driverとnvidia-cuda-toolkitのインストール
$ sudo apt install -y nvidia-driver-525 nvidia-cuda-toolkit
# システムの再起動
$ sudo reboot
以下コマンドで、GPU情報や温度が表示されれば成功です!
バージョン確認
$ nvidia-smi
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.288.01 Driver Version: 535.288.01 CUDA Version: 12.2 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 Tesla T4 Off | 00000000:00:1E.0 Off | 0 |
| N/A 23C P8 9W / 70W | 2MiB / 15360MiB | 0% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
| No running processes found |
+---------------------------------------------------------------------------------------+
これでEC2インスタンス上の準備は完了です!
次はOllamaのインストールです!
deepwiki-openでは、生成モデルと埋め込みモデルを使用するため、2種類のモデルをインストールしていきます!
公式のインストールスクリプトの実行
$ curl -fsSL https://ollama.com/install.sh | sh
# 生成モデルのインストール
$ ollama pull qwen3:8b
# 埋め込みモデルのインストール
$ ollama pull nomic-embed-text
これでdeepwiki-openを動かすためのOllamaの準備が整いました!
最後にGitHub上での準備に移ります!
GitHubのプライベートリポジトリを扱うには、Personal Access Token(PAT)を設定する必要があります。
社内のプライベートリポジトリを扱う際には、社内ルールに則ってご利用ください。
GitHubの設定からPAT作成画面まで行きます。
PATの設定
Only select repositories
Contents(Read-only), Metadata(Read-only)「Generate token」を選択すると、作成完了です!
PATは作成時の1度しか表示されないため、必ず保存するようにしてください。
これでOllamaを動かす環境、deepwiki-openを導入する環境が全て整いました!
ここからはdeepwiki-openの導入に入ります。
以下のGitHubリポジトリやReadmeを参考に導入します。
deepwiki-openをクローン
$ git clone https://github.com/AsyncFuncAI/deepwiki-open.git
# ディレクトリを移動
$ cd deepwiki-open
環境変数を設定する
# ダミーでGoogleとOpenAIのAPIを設定
$ echo "GOOGLE_API_KEY=your_google_api_key" > .env
$ echo "OPENAI_API_KEY=your_openai_api_key" >> .env
# Ollamaの設定
# Ollamaサーバーのホストアドレス設定(デフォルト: http://localhost:11434)
$ echo 'OLLAMA_HOST=http://[インスタンスのプライベートIPv4アドレス]:11434' >> .env
# 埋め込みモデルにOllamaを設定
$ echo 'DEEPWIKI_EMBEDDER_TYPE=ollama' >> .env
# APIサーバーのベースURL(デフォルト: http://localhost:8001)
$ echo 'SERVER_BASE_URL=http://[インスタンスのパブリックIPv4アドレス]:8001' >> .env
# Bedrockの設定
# AWSリージョン設定
$ echo 'AWS_REGION=ap-northeast-1' >> .env
deepwiki-open起動の手順
$ docker compose up -d
これでdeepwiki-openの導入・設定が完了し、Wikiを生成する準備が整いました!
次は実際にLLMを用いてWikiを生成していきます。
deepwiki-openの起動に成功したので、実際に社内Wikiを作っていきましょう!
http://[インスタンスのパブリックIPv4アドレス]:3000を確認すると、
ホーム画面が表示されます。
上部の検索バーにWiki化したいGitHubリポジトリを入力します。
「Wikiを生成」を選択すると、Wiki設定画面が表示されます
作成したいWikiに応じて設定していきます。
以下に設定項目の説明を示します。
Wiki設定
包括的)anthropic.claude-3-5-sonnet-20240620-v1:0)
今回は生成モデルにBedrockを使用しましたが、完全にローカルLLMで完結したい場合はOllamaを使用しましょう。
環境変数での設定により、埋め込みモデルにはOllamaのnomic-embed-textが使用されるようになっています。
「Wikiを生成」を選択すると、Wiki生成が始まります!
設定によりますが、5分~10分程度でWikiの生成が完了します。
生成が完了すると、プライベートリポジトリのWikiが表示されます!
システムアーキテクチャや主要機能、フロントエンド・バックエンドコンポーネントなどの詳細な情報を確認することができるようになりました。
上図はプライベートリポジトリではなく、
deepwiki-openリポジトリを対象に生成したものです。
生成したWikiに対して、右下の吹き出しを選択することで、質問を投げかけることができます。
deepwiki-openのアーキテクチャ描いて
と質問してみました。
しっかりと図で表現して説明してくれていますね!ありがたいです。
このように、社内のプライベートリポジトリをWiki化できるので、キャッチアップや調査がかなり楽になりました!
今回、deepwiki-openを検証していく中で、いくつかハマりポイントや未解決の課題がありましたので、そちらを紹介していきます...
(本当は完ぺきに全部解決したかった...)
選択できるモデルはapi/config/generator.jsonの内容をもとに生成されています。
そのため、generator.jsonを修正することで、任意のモデルを選択することが可能です。
しかし、デフォルトのdocker-compose.ymlではこの内容を参照するようにできていないため、UIのモデル選択に反映されません。
したがって、以下のようにdocker-compose.ymlに追記をすることでモデル設定が反映されるようになります。
デフォルトに設定を追加
<span>services</span><span>:</span>
<span>deepwiki</span><span>:</span>
<span>build</span><span>:</span>
<span>context</span><span>:</span> <span>.</span>
<span>dockerfile</span><span>:</span> <span>Dockerfile</span>
<span>ports</span><span>:</span>
<span>-</span> <span>"</span><span>${PORT:-8001}:${PORT:-8001}"</span>
<span>-</span> <span>"</span><span>3000:3000"</span>
<span>env_file</span><span>:</span>
<span>-</span> <span>.env</span>
<span>environment</span><span>:</span>
<span>-</span> <span>PORT=${PORT:-8001}</span>
<span>-</span> <span>NODE_ENV=production</span>
<span>-</span> <span>SERVER_BASE_URL=http://localhost:${PORT:-8001}</span>
<span>-</span> <span>LOG_LEVEL=${LOG_LEVEL:-INFO}</span>
<span>-</span> <span>LOG_FILE_PATH=${LOG_FILE_PATH:-api/logs/application.log}</span>
<span>volumes</span><span>:</span>
<span>-</span> <span>~/.adalflow:/root/.adalflow</span>
<span>-</span> <span>./api/logs:/app/api/logs</span>
<span># 【追記】configで修正した内容を読み取るように</span>
<span>-</span> <span>./api/config:/app/api/config</span>
<span>mem_limit</span><span>:</span> <span>6g</span>
<span>mem_reservation</span><span>:</span> <span>2g</span>
<span>healthcheck</span><span>:</span>
<span>test</span><span>:</span> <span>[</span><span>"</span><span>CMD"</span><span>,</span> <span>"</span><span>curl"</span><span>,</span> <span>"</span><span>-f"</span><span>,</span> <span>"</span><span>http://localhost:${PORT:-8001}/health"</span><span>]</span>
<span>interval</span><span>:</span> <span>60s</span>
<span>timeout</span><span>:</span> <span>10s</span>
<span>retries</span><span>:</span> <span>3</span>
<span>start_period</span><span>:</span> <span>30s</span>
Ollamaのqwen3:8bを生成モデルとして利用したところ、Wiki生成中にエラーが発生してしまいます...
もちろんリポジトリは存在しているため、他に原因があると考えられます。
Issueとしても挙げられており、議論が続いていますが明確な答えはでていないようです。
提案されている内容は全て試しましたが、うまくいきませんでした...
一方で、ローカルPC上でdeepwiki×Ollamaがうまくいったという例もありますので、
EC2上というネットワーク構成が影響していると考えられます。
Wiki生成時および質問インターフェース利用時にWebSocketエラーが発生しています。
ブラウザの開発者ツールを確認すると、ws://localhost:8001に対してWebSocket接続を試みています。
自分のPCからみたlocalhostは自分のPCを指すため、EC2上で動作しているdeepwiki-openには接続できません。
それを防ぐために環境変数として
SERVER_BASE_URL=http://[インスタンスのパブリックIPv4アドレス]:8001
のように設定したのですが、正しく反映されていないようです...
WebSocket通信した場合でも、自動的にHTTPストリーミングへフォールバックする実装になっているため問題ないと考えていました。
しかし、Ollamaでの生成に成功したローカルPC上での動作との差分がWebSocket接続しかないため、ここを正しく修正できれば、正常に動作する可能性が高いとみています。
今回は「いいパソコン」を持っていない人でも、AWSサービスとOllamaを組み合わせることでdeepwiki-openを使って社内Wikiを生成できるかもと思い、検証してみました。
結論として、EC2×deepwiki×Ollama(+Bedrock)の構成で社内Wikiを生成できることは確認できました!
一方で、そもそもAWS上に社外秘を入れていい前提ならば、インスタンス料金まで含めて考えると、素直に生成も埋め込みもBedrockを利用したほうが良いかもしれません笑
非常に面白い技術だと感じていますので、引き続き検証を続けながら、