ConfigsApr 16, 2026·3 min read

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.

TL;DR
Neko runs a virtual browser in Docker and streams it to your browser via WebRTC for shared sessions and isolated browsing.
§01

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.

§02

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.

§03

How to use

  1. 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
  1. Open http://localhost:8080 in your browser.
  1. Log in with the admin password to get control. Share the viewer password with others.
§04

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.

§05

Related on TokRepo

§06

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.

Frequently Asked Questions

What browsers does Neko support?+

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.

How many users can connect simultaneously?+

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.

Can I use Neko for browser automation or testing?+

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.

Does Neko persist browser data between restarts?+

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.

What are the bandwidth requirements for Neko?+

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.

Citations (3)

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets