話題のDeepWikiをセルフホスト?DeepWiki-Openを試してみた
最近、「DeepWiki」が注目されているという話をよく聞きます。
DeepWikiはGithubリポジトリのコードを解析し、自動的にWikiを作成してくれるサービスなのですが、無料プランではプライベートリポジトリに対応していないなど、利用できる機能に制限があります。
そこで、DeepWikiの機能をOSSで実現し、さらに機能が追加されたものがないか探してみたところ、ぴったりのプロジェクトが見つかりました。
OSSで実現したものががありました。その名も 「DeepWiki-Open」 です。
そこで今回は、セルフホスト環境でDeepWiki-Openを使用してみました。
概要
DeepWiki-Openは以下の技術を使用しているようです。(本家DeepWiki 調査)
-
フロントエンド
- React
- Next.js
- ReactMarkdown
- Mermaid.js
- Tailwind CSS
-
バックエンド
- Python
- FastAPI
- OpenAI SDK
- Google Gemini SDK
DeepWiki-Openの使用には、GeminiのAPIキーとOpenAIのAPIキーが必要なのですが、以下のように使用しているよう。
- Google Gemini: ドキュメント生成とコンテンツ作成に使用
- OpenAI: コードの埋め込み(embeddings)生成(RAG)に使用
起動
今回はDeepWiki-OpenのリポジトリのREADMEに記載があった手動セットアップの方法で使ってみます。
実行には、事前に以下のAPIキーが必要です。
- GeminiのAPIキー
- OpenAIのAPIキー
READMEの手順に沿って起動していきます。
ちなみに筆者はWSL2 Ubuntu環境で実行しています。
- git clone & ディレクトリ移動
$ git clone https://github.com/AsyncFuncAI/deepwiki-open.git
Cloning into 'deepwiki-open'...
remote: Enumerating objects: 117, done.
remote: Counting objects: 100% (117/117), done.
remote: Compressing objects: 100% (80/80), done.
remote: Total 117 (delta 47), reused 98 (delta 29), pack-reused 0 (from 0)
Receiving objects: 100% (117/117), 2.47 MiB | 7.02 MiB/s, done.
Resolving deltas: 100% (47/47), done.
$ cd deepwiki-open
- APIキー設定
$ echo "GOOGLE_API_KEY=your_google_api_key" > .env
$ echo "OPENAI_API_KEY=your_openai_api_key" >> .env
- backendを起動
- APIサーバを起動した後は、ターミナルをそのままにしておきます
$ python3 -m venv .venv
$ . ./.venv/bin/activate
$ pip install -r api/requirements.txt
$ python -m api.main
- frontendを起動
- APIサーバを起動しているターミナルとは別のターミナルを開き、実行します
$ npm install
$ npm run dev
実際に使ってみる
今回は、facebook/reactのWikiを生成してみます。
http://localhost:3000
を開き、右上のリポジトリ入力inputに対象リポジトリのURLを入力し、「Generate Wiki」を実行します。
もし以下のようなエラーが発生した場合は、~/.adalflow ディレクトリの権限を確認・修正し、再度「Generate Wiki」を実行してください。参考
2025-05-02 02:03:28,651 - api.api - ERROR - Error preparing retriever: [Errno 13] Cache directory "/home/username/.adalflow/cache_GoogleGenAIClient_gemini-2_5-flash-preview-04-17.db" does not exist and could not be created
また、途中、リポジトリのCloneの為にGithubアクセストークンが要求される場合があるので、その場合はPublic/PrivateリポジトリのRead権限などを付与した適切な権限のアクセストークンを入力してあげます。
Wikiの生成には少し時間がかかる場合があるので、気長に待ちましょう。
Wikiが生成されると、以下のように表示されます。
シーケンス図も正しく生成されています。
本家よりは若干情報量が少なかったり、デザインがまだ成熟していないように感じられますが、小規模なリポジトリでは十分でしょう。
UIはまだ発展途上という感じですね。
個人的に気になった点として、生成されたドキュメントがソースコードのどの部分(ファイル名や行数)に対応するのかが明示されていない点です。技術的な裏付け(エビデンス)を確認したい場合に不便だと感じました。
まとめ
今回はOSS版DeepWikiを使ってみましたが、個人的には以下のような場合には適合すると感じました。
-
月額20$も支払うほどでも無いが、PrivateリポジトリのWikiを作成したい
- 月額$20の支払いは避けたい個人開発者や小規模のチームで使用。APIキーのコストはかかるが、利用頻度によっては本家サブスクリプションより安価に運用できる可能性がある
- GitLabリポジトリなど、GitHub以外のリポジトリのWikiを生成したい場合 (DeepWiki-OpenはGitLabにも対応)
- 自分でカスタマイズしたり、機能を拡張したい
一方、本家と比較した場合のデメリット(あるいは現時点での課題)としては、以下が挙げられます。
これらの点が気になる場合は、本家のDeepWikiを利用する方が良いでしょう。
- 生成されたWikiに対して質問する機能が無い
- セットアップが面倒
- (若干)動作が不安定
DeepWiki-Openは、「コストを抑えつつプライベートリポジトリやGitLabリポジトリのドキュメントを自動生成したい」「独自のカスタマイズや機能拡張を行いたい」と考える開発者にとって、非常に魅力的で価値のあるツールだと思います。
まだ出来て間もないプロジェクトなので一部機能の不足はありますが、DeepWiki-Openコミュニティの発展により、今後さらに機能が充実していく可能性にも期待したいですね。
Discussion