Configs2026年4月16日·1 分钟阅读

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.

Introduction

Neko runs a full desktop browser inside a Docker container and streams it to your web browser using WebRTC. Multiple users can join the same session to browse together, watch videos synchronously, or use a browser in a secure sandboxed environment hosted on your own infrastructure.

What Neko Does

  • Runs a full browser (Firefox, Chromium, Brave, or others) in a Docker container
  • Streams the browser view to clients via low-latency WebRTC video and audio
  • Supports multi-user sessions with shared cursor control and chat
  • Provides admin and viewer roles with keyboard and mouse control handoff
  • Isolates browsing activity from your local machine for privacy and security

Architecture Overview

Neko runs an Xorg display server with a window manager inside Docker, rendering a browser to a virtual framebuffer. GStreamer captures the screen and audio, encoding them into VP8/VP9/H264 video and Opus audio streams delivered via WebRTC through a Go-based signaling server. The frontend is a Vue.js application that handles WebRTC negotiation, video playback, and remote input.

Self-Hosting & Configuration

  • Deploy via Docker with a single command, choosing from Firefox, Chromium, Brave, or Tor Browser images
  • Configure screen resolution, frame rate, and video codec via environment variables
  • Set admin and viewer passwords for access control to the shared session
  • Open a UDP port range for WebRTC media traffic alongside the HTTP management port
  • Customize with persistent browser profiles by mounting a volume for user data

Key Features

  • Ultra-low-latency streaming via WebRTC with hardware-accelerated video encoding support
  • Multi-user shared browsing with real-time cursor visibility and control passing
  • Built-in text chat and emoji reactions for collaborative sessions
  • Multiple browser engine choices including Firefox, Chromium, Brave, Tor, and VLC
  • Clipboard sharing between the local machine and the remote browser session

Comparison with Similar Tools

  • Apache Guacamole — Clientless remote desktop gateway supporting VNC/RDP/SSH, but higher latency and no multi-user shared browsing
  • Kasm Workspaces — Enterprise browser isolation platform with more features, but heavier and partially proprietary
  • Webtop — Full Linux desktop in Docker via web browser, but not optimized for shared multi-user sessions
  • Browserless — Headless browser automation service, not designed for interactive shared browsing
  • Sysbox — Container runtime for VMs-in-containers, a different scope focused on system containers

FAQ

Q: What is the typical latency for the video stream? A: WebRTC provides sub-100ms latency in most local network setups. Over the internet, latency depends on network conditions but is typically 50-200ms.

Q: Can multiple users control the browser simultaneously? A: One user holds control at a time. The admin can pass control to viewers or take it back. All users see the same screen and cursor in real-time.

Q: Does Neko support GPU acceleration? A: Yes. Neko supports NVIDIA GPU hardware encoding via NVENC for lower CPU usage and better video quality at high resolutions.

Q: Can I use Neko for automated browser testing? A: While Neko is designed for interactive use, you can connect automation tools to the browser inside the container. For dedicated testing, consider Browserless or Playwright.

Sources

讨论

登录后参与讨论。
还没有评论,来写第一条吧。

相关资产