
自己ホスト型の仮想ブラウザで、Docker上で動作し、WebRTCを使用します。
<div align="center">
<a href="https://github.com/m1k1o/neko" title="NekoのGitHubリポジトリ。">
<img src="https://assets.kitploit.com/production/public/readmes/12372/d615c7dc035ac347a0b04287c4f689d36878442142b42156e3781c3c96186a4c.png" width="400" height="auto" alt="NekoのGitHubリポジトリ。"/>
</a>
<p align="center">
<a href="https://github.com/m1k1o/neko/releases">
<img src="https://img.shields.io/github/v/release/m1k1o/neko" alt="release">
</a>
<a href="https://github.com/m1k1o/neko/blob/master/LICENSE">
<img src="https://img.shields.io/github/license/m1k1o/neko" alt="license">
</a>
<a href="https://hub.docker.com/r/m1k1o/neko">
<img src="https://img.shields.io/docker/pulls/m1k1o/neko" alt="pulls">
</a>
<a href="https://github.com/m1k1o/neko/issues">
<img src="https://img.shields.io/github/issues/m1k1o/neko" alt="issues">
</a>
<a href="https://github.com/sponsors/m1k1o">
<img src="https://img.shields.io/badge/-sponsor-red" alt="issues">
</a>
<a href="https://discord.gg/HXQJmqNJMz">
<img src="https://assets.kitploit.com/production/public/readmes/12372/f6cb90bffba6aa52dffaaae26d46a18d1fb514e8d1411a80dce96df2fa46a6ec.png" alt="Chat on discord">
</a>
<a href="https://hellogithub.com/repository/4536d4546af24196af3f08a023dfa007" target="_blank">
<img src="https://abroad.hellogithub.com/v1/widgets/recommend.svg?rid=4536d4546af24196af3f08a023dfa007&claim_uid=0x19e4dJwD83aW2&theme=small" alt="Featured|HelloGitHub" />
</a>
<a href="https://github.com/m1k1o/neko/actions">
<img src="https://github.com/m1k1o/neko/actions/workflows/ghcr.yml/badge.svg" alt="build">
</a>
</p>
<img src="https://assets.kitploit.com/production/public/readmes/12372/c85b494a39869005a0d9f5c65ffcaf1fa002defafe4c0e01f339b9f51e4e4caf.gif" width="650" height="auto"/>
</div>
# n.eko
Neko へようこそ。Neko は Docker 上で動作し、WebRTC 技術を利用するセルフホスト型の仮想ブラウザです。Neko は、**仮想環境で完全に機能するブラウザを実行** し、**どこからでも安全かつプライベートにインターネットにアクセス** できるようにする強力なツールです。Neko を使えば、通常のブラウザと同じように Web を閲覧したり、**アプリケーションを実行** したり、その他のタスクを **安全で隔離された環境** 内で行うことができます。Web アプリケーションをテストしたい開発者、**安全なブラウジング体験を求めるプライバシー重視のユーザー**、あるいは仮想ブラウザの **利便性と柔軟性** を活用したい方など、Neko は最適なソリューションです。
セキュリティとプライバシー機能に加えて、Neko は **複数のユーザーが同時にアクセスできる機能** を提供します。このため、ブラウザへのアクセスを共有する必要があるチームや組織にとって理想的なソリューションであり、**複数のデバイスを使用して同じ仮想環境にアクセスしたい** 個人にとっても最適です。Neko を使えば、個別の設定や構成を維持する手間をかけずに、**他のユーザーと簡単かつ安全にブラウザアクセスを共有** できます。**プロジェクトで共同作業** したり、共有リソースにアクセスしたり、あるいは **友人や家族とブラウザアクセスを共有したい** 場合でも、Neko なら簡単に行えます。
Neko は **ウォッチパーティーの開催** やインタラクティブなプレゼンテーションにも最適なツールです。仮想ブラウザの機能により、対面での集まりを必要とせず、**どこからでもアクセス可能な** ウォッチパーティーやプレゼンテーションを開催できます。これにより、対面で会えない場合でも、**友人や同僚とつながり続ける** ことが容易になります。Neko を使用すると、レジャーでも仕事でも、簡単にウォッチパーティーを開催したり、**インタラクティブなプレゼンテーション** を行ったりできます。ゲストを仮想環境に招待するだけで、画面を共有し、**リアルタイムでやり取り** できます。
## 概要
このアプリは WebRTC を使用して Docker コンテナ内のデスクトップをストリーミングします。原作者は [rabb.it](https://en.wikipedia.org/wiki/Rabb.it) がサービスを終了し、自身のインターネット環境ではストリーミングが処理できず、友人が Discord を使用しようとするとクラッシュし続けたため、このアプリを作成しました。彼は友人とアニメを観たかっただけなのです ლ(ಠ益ಠლ)。そこでインターネットを探し回り、いくつかの *似たような* クローンを見つけましたが、どれも仮想ブラウザ機能はありませんでした。その後、[Turtus](https://github.com/Khauri/Turtus) を見つけ、残りを解決することができました。
その後、[この](https://github.com/nurdism/neko) プロジェクトを見つけ、さらに調査を始めました。複数人で協調ブラウジングできるというアイデアがとても気に入り、フォークを作成しました。当初は変更を上流リポジトリにマージしようと考えていましたが、原作者にはこのプロジェクトに割く時間がなくなり、最終的にアーカイブされました。
## ユースケースと比較
Neko は、WebRTC を使用して複数のユーザーにストリーミングされる仮想ブラウザとして始まりました。
- **ブラウザだけに限定されません**。Linux 上で動作するあらゆるものを実行できます(例:VLC)。ブラウザは最も人気があり広く使われているユースケースに過ぎません。
- 実際、単一のプログラムに限定されるわけでもなく、完全なデスクトップ環境(例:XFCE、KDE)をインストールすることもできます。
- さらに言えば、コンテナ内で実行する必要もなく、Neko をホストにインストールし、X サーバーに接続して VM 全体を制御することも可能です。
- 理論的には X サーバーに限定されず、制御可能で定期的に画像を取得できるものなら何でも代用できます。
- 例えば、RDP や VNC プロトコルを実装し、Neko を WebRTC リレーサーバーとしてのみ動作させることも考えられます。これは現時点では将来の機能です。
主なユースケースは複数人での接続で、リアルタイムの同期とインタラクティブ性を活用することです。
- **ウォッチパーティー** – 複数人で動画コンテンツを視聴し、チャットや絵文字で反応する – [giggl.app](https://giggl.app/) や [hyperbeam](https://watch.hyperbeam.com) のオープンソース代替。
- **インタラクティブプレゼンテーション** – 画面共有だけでなく、他の参加者が画面を操作可能。
- **コラボレーションツール** – アイデアのブレインストーミング、共同ブラウジング、コードのデバッグなど。
- **サポート/教育** – 管理された環境でインタラクティブにユーザーをガイド。
- **埋め込み** – Web アプリに仮想ブラウザを埋め込む – [hyperbeam API](https://hyperbeam.com/) のオープンソース代替。
- 任意のサードパーティ Web サイトやアプリケーションを開き、複数の参加者間でオーディオとビデオをシームレスに同期。
- [neko-rooms](https://github.com/m1k1o/neko-rooms) を使用して API でルームをリクエスト。
- [**VR Chat 内の Neko**](https://github.com/jameskitt616/vrchat_streaming) – VR で友人とリモートブラウザを一緒に視聴。
その他のシングルユーザー向けユースケース:
- **個人ワークスペース** – コンテナ化されたアプリやデスクトップをエンドユーザーにストリーミング – [kasm](https://www.kasmweb.com/) と類似。
- **永続ブラウザ** – 永続的なクッキーを持つ自分専用のブラウザをどこからでも利用 – [mightyapp](https://www.mightyapp.com/) と類似。
- 接続終了後、ホストブラウザに状態は残らない。
- クッキーなどの機密データは転送されず、動画のみが共有される。
- **使い捨てブラウザ** – 秘密のパーティーを企画したり、インターネットで誕生日プレゼントを購入するためのより良いソリューション。
- Tor ブラウザや [VPN](https://github.com/m1k1o/neko-vpn) を使用して匿名性をさらに強化。
- コンテナ内で動作するため、OS フィンガープリンティングやブラウザの脆弱性のリスクを軽減。
- **セッションブロードキャスト** – RTMP を使用してルームの内容を配信(例:Twitch や YouTube など)。
- **セッション録画** – RTMP ブロードキャストを [nginx-rtmp](https://www.nginx.com/products/nginx/modules/rtmp-media-streaming/) などを使用してファイルに保存。
- チュートリアル録画時にクリーンな環境を維持。
- ブックマークを隠したりシークレットモードを使用する必要がない。
- **ジャンプホスト** – VPN を必要とせずに内部アプリケーションに安全にアクセス。
- **自動ブラウザ** – [playwright](https://playwright.dev/) や [puppeteer](https://pptr.dev/) をインストールしてタスクを自動化し、積極的に介入可能。
クライアントレスリモートデスクトップゲートウェイ(例:[Apache Guacamole](https://guacamole.apache.org/) や [websockify](https://github.com/novnc/websockify) + [noVNC](https://novnc.com/))と比較して、リモートデスクトップサーバーと共に目的のプログラム(例:[linuxserver/firefox](https://docs.linuxserver.io/images/docker-firefox))をインストールした場合、Neko はさらに以下を提供します。
- **スムーズな動画** – WebRTC を使用し、WebSocket 経由の画像ではないため。
- **内蔵オーディオサポート** – Apache Guacamole や noVNC には含まれていません。
- **マルチ参加者制御** – Apache Guacamole や noVNC ではネイティブサポートされていません。
### 対応ブラウザ
<div align="center">
<a href="https://neko.m1k1o.net/docs/v3/installation/docker-images#firefox">
<img src="https://neko.m1k1o.net/img/icons/firefox.svg" title="ghcr.io/m1k1o/neko/firefox" width="60" height="auto"/>
</a>
<a href="https://neko.m1k1o.net/docs/v3/installation/docker-images#tor-browser">
<img src="https://neko.m1k1o.net/img/icons/tor-browser.svg" title="ghcr.io/m1k1o/neko/tor-browser" width="60" height="auto"/>
</a>
<a href="https://neko.m1k1o.net/docs/v3/installation/docker-images#waterfox">
<img src="https://neko.m1k1o.net/img/icons/waterfox.svg" title="ghcr.io/m1k1o/neko/waterfox" width="60" height="auto"/>
</a>
<a href="https://neko.m1k1o.net/docs/v3/installation/docker-images#chromium">
<img src="https://neko.m1k1o.net/img/icons/chromium.svg" title="ghcr.io/m1k1o/neko/chromium" width="60" height="auto"/>
</a>
<a href="https://neko.m1k1o.net/docs/v3/installation/docker-images#google-chrome">
<img src="https://neko.m1k1o.net/img/icons/google-chrome.svg" title="ghcr.io/m1k1o/neko/google-chrome" width="60" height="auto"/>
</a>
<a href="https://neko.m1k1o.net/docs/v3/installation/docker-images#ungoogled-chromium">
<img src="https://neko.m1k1o.net/img/icons/ungoogled-chromium.svg" title="ghcr.io/m1k1o/neko/google-chrome" width="60" height="auto"/>
</a>
<a href="https://neko.m1k1o.net/docs/v3/installation/docker-images#microsoft-edge">
<img src="https://neko.m1k1o.net/img/icons/microsoft-edge.svg" title="ghcr.io/m1k1o/neko/microsoft-edge" width="60" height="auto"/>
</a>
<a href="https://neko.m1k1o.net/docs/v3/installation/docker-images#brave">
<img src="https://neko.m1k1o.net/img/icons/brave.svg" title="ghcr.io/m1k1o/neko/brave" width="60" height="auto"/>
</a>
<a href="https://neko.m1k1o.net/docs/v3/installation/docker-images#vivaldi">
<img src="https://neko.m1k1o.net/img/icons/vivaldi.svg" title="ghcr.io/m1k1o/neko/vivaldi" width="60" height="auto"/>
</a>
<a href="https://neko.m1k1o.net/docs/v3/installation/docker-images#opera">
<img src="https://neko.m1k1o.net/img/icons/opera.svg" title="ghcr.io/m1k1o/neko/opera" width="60" height="auto"/>
</a>
… [利用可能な全イメージ](https://neko.m1k1o.net/docs/v3/installation/docker-images) を参照
</div>
### その他のアプリケーション
<div align="center">
<a href="https://neko.m1k1o.net/docs/v3/installation/docker-images#xfce">
<img src="https://neko.m1k1o.net/img/icons/xfce.svg" title="ghcr.io/m1k1o/neko/xfce" width="60" height="auto"/>
</a>
<a href="https://neko.m1k1o.net/docs/v3/installation/docker-images#kde">
<img src="https://neko.m1k1o.net/img/icons/kde.svg" title="ghcr.io/m1k1o/neko/kde" width="60" height="auto"/>
</a>
<a href="https://neko.m1k1o.net/docs/v3/installation/docker-images#remmina">
<img src="https://neko.m1k1o.net/img/icons/remmina.svg" title="ghcr.io/m1k1o/neko/remmina" width="60" height="auto"/>
</a>
<a href="https://neko.m1k1o.net/docs/v3/installation/docker-images#vlc">
<img src="https://neko.m1k1o.net/img/icons/vlc.svg" title="ghcr.io/m1k1o/neko/vlc" width="60" height="auto"/>
</a>
… その他は <a href="https://github.com/m1k1o/neko-apps">m1k1o/neko-apps</a>
</div>
### Nekoの由来
私は猫が好きで 🐱 (`Neko` は日本語で猫)、オタク/ナードです。
***でもなぜ猫のお尻なの?*** だって猫は *クソ野郎* だけど、それでも愛してしまうから。
## 複数ルーム
Neko のルーム管理ソフトウェアは [neko-rooms](https://github.com/m1k1o/neko-rooms) をご覧ください。
また、[ゼロ知識インストール(HTTPS 対応)](https://github.com/m1k1o/neko-rooms/?tab=readme-ov-file#zero-knowledge-installation-with-https) も提供しています。
## ドキュメント
完全なドキュメントは [neko.m1k1o.net](https://neko.m1k1o.net/) でご覧いただけます。主なセクションは以下の通りです。
- [V2 からの移行](https://neko.m1k1o.net/docs/v3/migration-from-v2)
- [はじめに](https://neko.m1k1o.net/docs/v3/quick-start)
- [インストール](https://neko.m1k1o.net/docs/v3/installation)
- [例](https://neko.m1k1o.net/docs/v3/installation/examples)
- [設定](https://neko.m1k1o.net/docs/v3/configuration)
- [よくある質問](https://neko.m1k1o.net/docs/v3/faq)
- [トラブルシューティング](https://neko.m1k1o.net/docs/v3/troubleshooting)
## 貢献方法
貢献を歓迎します!詳細は [貢献ガイド](https://neko.m1k1o.net/contributing) をご覧ください。
## サポート
Neko が役立つと感じられたなら、[GitHub Sponsors](https://github.com/sponsors/m1k1o) を通じてプロジェクトをサポートをご検討ください。