Neko — Self-Hosted Virtual Browser in Docker
Neko is a self-hosted virtual browser that runs in Docker and streams to your browser via WebRTC. It enables shared browsing sessions for watch parties, collaborative work, or secure isolated browsing from any device.
这个资产会安全暂存
这个资产会先安全暂存。复制的指令会要求 Agent 读取暂存文件,并在激活脚本、MCP 配置或全局配置前先确认。
npx -y tokrepo@latest install ba64b2a5-39db-11f1-9bc6-00163e2b0d79 --target codex先暂存文件;激活前需要读取暂存 README 和安装计划。
What it is
Neko is a self-hosted application that runs a full desktop browser inside a Docker container and streams it to your web browser via WebRTC. Multiple users can connect to the same browser session simultaneously, seeing the same screen and taking turns with mouse and keyboard control.
Neko is useful for watch parties (streaming video together), collaborative browsing (reviewing websites as a team), secure isolated browsing (accessing untrusted sites in a sandbox), and remote desktop scenarios.
How it saves time or tokens
Neko eliminates the need for screen-sharing tools when collaborative browsing is needed. Instead of one person sharing their screen and narrating, everyone connects to the same browser instance. Any participant can take control, type URLs, and interact.
For security use cases, Neko provides browser isolation without installing anything locally. Access sensitive sites from a disposable container. When done, destroy the container and all session data disappears.
How to use
- Run Neko with Firefox in Docker:
docker run -d --name neko \
-p 8080:8080 \
-p 52000-52100:52000-52100/udp \
-e NEKO_SCREEN=1920x1080@30 \
-e NEKO_PASSWORD=viewer \
-e NEKO_PASSWORD_ADMIN=admin \
ghcr.io/m1k1o/neko/firefox:latest
- Open
http://localhost:8080in your browser.
- Log in with the admin password to get control. Share the viewer password with others.
Example
Docker Compose configuration with Chromium and custom resolution:
version: '3'
services:
neko:
image: ghcr.io/m1k1o/neko/chromium:latest
ports:
- 8080:8080
- 52000-52100:52000-52100/udp
environment:
NEKO_SCREEN: '1920x1080@30'
NEKO_PASSWORD: 'viewer-pass'
NEKO_PASSWORD_ADMIN: 'admin-pass'
NEKO_ICELITE: 'true'
cap_add:
- SYS_ADMIN
shm_size: '2gb'
The shm_size setting is important for Chromium to avoid crashes on memory-intensive pages.
Related on TokRepo
- Self-hosted tools -- Self-hosted applications for privacy and control
- AI tools for browser automation -- Browser tools and automation
Common pitfalls
- Not opening UDP ports 52000-52100. WebRTC uses UDP for video streaming. Without these ports open, connections fall back to TCP relay, which adds latency.
- Setting shm_size too low for Chromium. Chromium uses shared memory for rendering. Without at least 2GB, tabs crash on heavy pages. Firefox is less demanding.
- Exposing Neko to the public internet without authentication. The built-in password system is basic. Put Neko behind a reverse proxy with proper authentication (OAuth, Authelia) for production use.
常见问题
Neko offers Docker images for Firefox, Chromium, Google Chrome, Brave, Tor Browser, and Ungoogled Chromium. Each runs as a separate container image. Firefox is the lightest and most stable option.
Neko supports multiple viewers watching the same session. Only one user has control at a time (admin can transfer control). The practical limit depends on your server bandwidth, as each viewer receives a WebRTC video stream.
While Neko is primarily designed for interactive use, the underlying browser supports automation via Playwright or Puppeteer. However, tools like Selenium Grid or Playwright are better suited for automated browser testing.
By default, no. Container restarts wipe browser state (bookmarks, cookies, history). To persist data, mount a volume to the browser profile directory inside the container.
At 1080p and 30fps, each viewer consumes approximately 2-5 Mbps of bandwidth. Lower the resolution or framerate via NEKO_SCREEN to reduce bandwidth. For LAN use, bandwidth is rarely an issue.
引用来源 (3)
- Neko GitHub— Neko is a self-hosted virtual browser streamed via WebRTC
- WebRTC.org— WebRTC protocol for real-time browser communication
- NIST Browser Isolation Guide— Browser isolation for security
讨论
相关资产
Dockge — Fancy Self-Hosted Docker Compose Manager
Dockge is a reactive, self-hosted Docker Compose management UI from the creator of Uptime Kuma. It lets you create, edit, start, stop, and monitor docker-compose.yaml stacks through a beautiful real-time web interface.
Overleaf — Self-Hosted Collaborative LaTeX Editor
Overleaf is an open-source web-based LaTeX editor that enables real-time collaborative document editing. Self-host it with Docker to keep your academic papers and technical documents on your own infrastructure.
Homarr — Customizable Self-Hosted Server Dashboard
Homarr is a sleek, modern dashboard for your self-hosted server that integrates with dozens of services. It provides real-time monitoring widgets, application shortcuts, and Docker container management in one unified interface.
Linkding — Minimal Self-Hosted Bookmark Manager
Linkding is a lightweight, self-hosted bookmark management tool with tagging, full-text search, and a clean web UI. It runs on minimal resources and integrates with browser extensions and mobile apps.