finds.dev← search

// the find

m1k1o/neko

★ 21,108 · Go · Apache-2.0 · updated May 2026

A self hosted virtual browser that runs in docker and uses WebRTC.

Neko runs a full desktop or browser inside a Docker container and streams it to multiple users over WebRTC. The original use case was watching video with friends, but it's grown into a general-purpose containerized desktop streaming platform. Think Apache Guacamole but with real audio, smooth video, and collaborative input control.

WebRTC instead of WebSocket image-pushing means actual smooth video and synchronized audio — the gap between this and noVNC is immediately noticeable. The multi-participant input model (one user controls, others watch, or control can be passed) is built into the protocol, not bolted on. Docker image variety is genuinely useful: Firefox, Chromium, Tor, ungoogled-chromium, full XFCE/KDE desktops, VLC — each with separate Nvidia GPU variants. The Go server is clean and the Vue client is well-structured with proper locale support across 15+ languages.

Network setup is the biggest pain point — WebRTC requires UDP port ranges to be open and correctly configured, and the documentation on getting this right behind NAT or a reverse proxy is scattered. The v2-to-v3 migration broke the API, so any tooling built on top of neko-rooms or the old client SDK needs rework. No authentication beyond a single shared password by default; running this exposed to the internet without putting something in front of it is asking for trouble. The client is Vue 2 with Options API, which is end-of-life territory and will become a maintenance burden.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →