Self-Hosted Neko: A Shared Virtual Browser for Watch Parties and Co-Browsing

Remember rabb.it? You and three friends watched the same Crunchyroll tab, synced reactions in chat, nobody's Discord stream crashed. Then rabb.it died and we went back to "okay everyone hit play on three… two… one…" while someone's Wi-Fi buffered. Screen sharing in Zoom works until someone needs to click, or the audio drifts, or Discord decides 720p is generous.

Neko (n.eko) brings that back — self-hosted, in Docker, streamed over WebRTC. ~21k GitHub stars. A real browser (or full desktop) runs in a container on your server; everyone joins in their own browser tab, watches the same screen, and can hand off control. Watch parties, co-browsing, teaching, throwaway sessions — without routing your cookies through a dead startup's cloud.

What it actually does

Neko streams a Linux desktop from inside Docker to your browser using WebRTC — not the choppy JPEG-over-WebSocket thing you get from classic noVNC setups. Video stays smooth, audio syncs, latency lands under ~300ms when the server has headroom.

Collaborative rooms. Multiple people in one session. The host can grant or deny control — everyone sees the same Firefox tab, someone else drives the mouse. Built-in chat and emotes for the watch-party crowd.

Browser images galore. Official Docker images for Firefox, Chromium, Chrome, Brave, Edge, Tor Browser, Waterfox, and more. Not just browsers — XFCE, KDE, VLC, Remmina exist for full desktops or media apps.

Persistent or disposable. Keep a long-running browser session with cookies that survive disconnects — handy for downloads and monitoring. Or spin up a throwaway container, do the sensitive browsing, tear it down. Cookies never touch the client's local browser; they only receive the video stream.

RTMP broadcast. Stream the room to Twitch or YouTube while participants interact. Tutorial recording without cleaning up your personal bookmarks first.

neko-rooms. Need many ephemeral rooms with an API? The separate neko-rooms project manages multi-tenant deployments — embed a virtual browser in your own web app, Hyperbeam-style, but self-hosted.

Neko vs Pangolin vs Guacamole

We covered Pangolin for zero-trust VPN and tunneled reverse proxy — SSH, internal dashboards, site connectors through NAT. Pangolin gets you to a resource; Neko gives you a shared graphical session in the browser.

Compared to Apache Guacamole or noVNC:

  • WebRTC video instead of framebuffer screenshots over WebSockets
  • Built-in audio — Guacamole and noVNC often need extra wiring
  • Multi-user control out of the box — not just one person driving

Different tools. Pangolin for network access, Neko for "we're all looking at the same browser and I need to click."

Why self-host?

No third-party watch-party SaaS. Your anime night, your server, your rules. Session data and browsing context stay on infrastructure you operate.

Jump host without installing a client. Contractors open a URL, get a controlled browser on your network — useful for reaching internal admin panels when you don't want VPN software on their laptop. Pair with Pangolin or your existing VPN for layered access.

Privacy and isolation. Tor Browser image exists. Sessions run in containers — OS fingerprinting and browser exploits hit the container, not your workstation. For compliance-sensitive demos, only video leaves the server; HTML and cookies don't download to the viewer.

Canadian hosting for Canadian teams. Stream from a Toronto or Montreal VPS when you want session metadata and logs under your control — relevant for agencies doing co-browsing with clients who ask where screen data transits.

What running it takes

Neko is Docker-native and hungry. Official specs for 1280×720@30 recommend 4 CPU cores and 3 GB RAM minimum; 6 cores / 4 GB is the sweet spot. You're running a desktop, a browser, and real-time video encoding — a $5 VPS will struggle.

wget https://raw.githubusercontent.com/m1k1o/neko/master/docker-compose.yaml
sudo docker compose up -d

Default ports: 8080 (HTTP UI) and 52000–52100/udp (WebRTC). Set shm_size: 2gb in compose — browsers need shared memory. Change the default passwords (neko / admin) before exposing this to the internet.

Behind NAT or on a VPS, set NEKO_NAT1TO1 to your public IP so WebRTC ICE negotiation works. Put TLS in front with nginx or Traefik — don't ship plaintext watch parties over coffee-shop Wi-Fi.

License is Apache 2.0. Active project with v3 docs at neko.m1k1o.net. Watch for scam accounts claiming Neko crypto tokens — the project has no official X account and isn't launching a coin.

Who it's for (and who should skip it)

Good fit: friend groups wanting rabb.it-style watch parties, remote teams co-browsing or pair-debugging in a browser, trainers demonstrating software interactively, devs needing a persistent cloud browser, anyone embedding collaborative browsing via neko-rooms.

Maybe skip it: you only need one-way screen share — Discord or Zoom is lighter. You won't open UDP port ranges or allocate 4 GB RAM — this isn't a Raspberry Pi project. You need full remote desktop to Windows apps — look at RDP or Guacamole instead.

Hosting it in Canada

Neko wants CPU, RAM, and UDP. We run instances on Canadian Docker hosting with the WebRTC port range open, NEKO_NAT1TO1 set correctly, and TLS on the web UI.

Tell us how many concurrent viewers you expect — we'll size the box so your watch party doesn't stutter when someone fullscreen's 1080p.

Tags:
  • Neko
  • WebRTC
  • Browser
  • Collaboration
  • Self-Hosted

Need Help With Your Hosting?

Tell us about your application — we respond within 1 hour with honest recommendations.