.devcontainer | ||
.docker | ||
.github | ||
client | ||
server | ||
.gitattributes | ||
.gitignore | ||
docker-compose.yaml | ||
Dockerfile | ||
LICENSE | ||
neko.code-workspace | ||
README.md | ||
tsconfig.json |
n.eko
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 rabb.it 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 n.eko.moe and I love the logo /shrug
Super easy mode setup
-
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 -
Install Docker
curl -sSL https://get.docker.com/ | CHANNEL=stable bash
-
Run these commands:
ufw allow 80/tcp wget https://raw.githubusercontent.com/nurdism/neko/master/docker-compose.yaml docker-compose up -d
-
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
Config
NEKO_USER=$USERNAME // User
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=0.0.0.0:8080 // Bind
NEKO_KEY= // (SSL)Key
NEKO_CERT= // (SSL)Cert
Development
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.