Skip to content
A self hosted virtual browser ( clone) that runs in docker.
Go Vue TypeScript Dockerfile CSS C Other
Branch: master
Clone or download
Latest commit e3a73aa Jan 24, 2020
Type Name Latest commit message Commit time
Failed to load latest commit information.
.devcontainer some more tweaks Jan 14, 2020
.docker new docker image Jan 23, 2020
.github some more tweaks Jan 14, 2020
client fixes #14 Jan 24, 2020
server fixes #14 Jan 24, 2020
.gitattributes first commit Jan 13, 2020
.gitignore first commit Jan 13, 2020
Dockerfile new docker image Jan 23, 2020
LICENSE added license Jan 14, 2020 fixes #14 Jan 24, 2020
docker-compose.yaml 2.0 for compatibility Jan 14, 2020
neko.code-workspace large refactor, fixes #2 Jan 18, 2020
tsconfig.json first commit Jan 13, 2020


This is a proof of concept project I threw together over the last few days, it's not perfect, but it looks nice. This uses web rtc to stream a desktop inside of a docker container, I made this because went under and my internet can't handle streaming and discord keeps crashing. I just want to watch anime with my friends ლ(ಠ益ಠლ) so I started digging throughout the net and found a few kinda clones, but non of them had the virtual browser, then I found Turtus and I was able to figure out the rest. This is by no means a fully featured clone of rabbit, it hs only one room. Its stateless, so no saved user names or passwords.

Why n.eko?

I like cats (Neko is the Japanese word for cat), I'm a weeb/nerd, I own the domain and I love the logo /shrug

Super easy mode setup

  1. Deploy a Server/VPS

    Recomended Specs: (Note: these may not be correct, I did a small round testing, 4c/4gb worked fine with small hickups here and there)

    Resolution Cores Ram Recommendation
    576p 2 2gb Not Recommended
    720p 4 4gb Good Performance
    720p 6 4-6gb Recommended
    720p+ 8 8gb+ Best Performance
  2. SSH into your box

  3. Install Docker

    curl -sSL | CHANNEL=stable bash
  4. Run these commands:

    ufw allow 80/tcp
    docker-compose up -d
  5. Visit the IP address of the droplet in your browser and login, the default password is neko

Protip: Run nano docker-compose.yaml to edit the settings, then press ctrl+x to exit and save the file.

Running the container:

sudo docker run -p 8080:8080 -e NEKO_PASSWORD='secret' -e NEKO_ADMIN='secret' --shm-size=1gb nurdism/neko:latest 

Note: --shm-size=1gb is required, firefox-esr tabs will crash


NEKO_DISPLAY=0          // Display number
NEKO_WIDTH=1280         // Display width
NEKO_HEIGHT=720         // Display height
NEKO_PASSWORD=neko      // Password
NEKO_ADMIN=neko         // Admin Password
NEKO_BIND=  // Bind
NEKO_KEY=               // (SSL)Key 
NEKO_CERT=              // (SSL)Cert


Highly recommend you use a dev container for vscode, I've included the .devcontainer I've used to develop this app. To build neko run: cd .docker && ./build

Non Goals

  • Turning n.eko into a service that serves multiple rooms and browsers/desktops.
  • Voice chat, use Discord)
You can’t perform that action at this time.