Welcome to Neko, a self-hosted virtual browser powered by Docker and built with WebRTC technology. Neko allows you to confidently run a fully-functional browser in a virtual environment for secure and private internet access from anywhere.

With Neko, you can browse the web, run applications, and complete tasks just like a regular browser, all within a secure and isolated environment. Whether you're a web developer, privacy-conscious user, or someone who values the convenience of a virtual browser, Neko is the ultimate solution.

Secure and Private

Neko is a browser that offers strong security and privacy features, and allows multiple users to access it simultaneously. It is ideal for teams, organizations, and individuals who need shared browser access. Neko simplifies the process of collaborating, accessing shared resources, and sharing browser access with others.

Collaborative Browsing

Neko is a versatile tool for hosting watch parties and interactive presentations. It allows you to easily connect with friends and colleagues from any location, eliminating the need for physical gatherings.

With Neko, you can effortlessly host a watch party or deliver an interactive presentation, whether for recreation or work. Simply invite your guests to join the virtual environment, share your screen, and engage with them in real-time.

Features

  • Easy to setup
  • Supports multiple users
  • Full Docker support
  • Text Chat: A chat feature that supports basic markdown (discord flavor).
  • Admin users: Users with administrative privileges who can perform actions such as kicking, banning, forcing give/release controls, and locking rooms.
  • Clipboard synchronization: The ability to synchronize clipboard contents on supported browsers (refer to supported browsers).
  • Emote overlay: An overlay feature that allows users to display emotes.
  • Ignore user: The option to ignore specific users, blocking their chat messages and emotes.
  • Persistent settings: Settings that are saved and remembered, even after closing and reopening the application.
  • Automatic Login with custom URL args: The ability to automatically login using custom URL arguments. User can add ?usr=<your-user-name>&pwd=<room-pass> to the URL.
  • Broadcasting room content using RTMP: The capability to broadcast the content of the room to platforms such as Twitch or YouTube using RTMP.
  • Bidirectional file transfer: The ability to transfer files in both directions, if the feature is enabled.

Use-cases

Neko started as a virtual browser that is streamed using WebRTC to multiple users.

  • It is not only limited to a browser; it can run anything that runs on linux (e.g. VLC). Browser only happens to be the most popular and widely used use-case.
  • In fact, it is not limited to a single program either; you can install a full desktop environment (e.g. XFCE, KDE).
  • Speaking of limits, it does not need to run in a container; you could install neko on your host, connect to your X server and control your whole VM.
  • Theoretically it is not limited to only X server, anything that can be controlled and scraped periodically for images could be used instead.
    • Like implementing RDP or VNC protocol, where neko would only act as WebRTC relay server. This is currently only future.

Primary use case is connecting with multiple people, leveraging real time synchronization and interactivity:

  • Watch party - watching video content together with multiple people and reacting to it (chat, emotes) - open source alternative to giggl.app or hyperbeam.
  • Interactive presentation - not only screen sharing, but others can control the screen.
  • Collaborative tool - brainstorming ideas, cobrowsing, code debugging together.
  • Support/Teaching - interactively guiding people in controlled environment.
  • Embed anything - embed virtual browser in your web app - open source alternative to hyperbeam API.
    • open any third-party website or application, synchronize audio and video flawlessly among multiple participants.
    • request rooms using API with neko-rooms.

Other use cases that benefit from single-user:

  • Personal workspace - streaming containerized apps and desktops to end-users - similar to kasm.
  • Persistent browser - own browser with persistent cookies available anywhere - similar to mightyapp.
    • no state is left on the host browser after terminating the connection.
    • sensitive data like cookies are not transferred - only video is shared.
  • Throwaway browser - a better solution for planning secret parties and buying birthday gifts off the internet.
    • use Tor Browser and VPN for additional anonymity.
    • mitigates risk of OS fingerprinting and browser vulnerabilities by running in container.
  • Session broadcasting - broadcast room content using RTMP (to e.g. twitch or youtube...).
  • Session recording - broadcast RTMP can be saved to a file using e.g. nginx-rtmp
    • have clean environment when recording tutorials.
    • no need to hide bookmarks or use incognito mode.
  • Jump host - access your internal applications securely without the need for VPN.
  • Automated browser - you can install playwright or puppeteer and automate tasks while being able to actively intercept them.

Compared to clientless remote desktop gateway (e.g. Apache Guacamole or websockify with noVNC), installed with remote desktop server along with desired program (e.g. linuxserver/firefox) provides neko additionally:

  • Smooth video because it uses WebRTC and not images sent over WebSockets.
  • Built in audio support, what is not part of Apache Guacamole or noVNC.
  • Multi-participant control, what is not natively supported by Apache Guacamole or noVNC.

Supported browsers

  • Google Chrome
  • Google Chromium
  • Mozilla Firefox
  • Microsoft Edge
  • Brave
  • Vivaldi
  • Opera
  • Tor

License

Apache-2.0 license

Resources & Downloads

GitHub - m1k1o/neko: A self hosted virtual browser that runs in docker and uses WebRTC.
A self hosted virtual browser that runs in docker and uses WebRTC. - GitHub - m1k1o/neko: A self hosted virtual browser that runs in docker and uses WebRTC.
n.eko
A self hosted virtual browser (rabb.it clone) that runs in docker