GithubHelp home page GithubHelp logo

mkipcak / neko Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nurdism/neko

0.0 1.0 0.0 14.65 MB

A self hosted virtual browser (rabb.it clone) that runs in docker.

License: Apache License 2.0

Dockerfile 5.11% Shell 2.58% HTML 0.33% Vue 27.57% CSS 2.97% TypeScript 21.33% JavaScript 0.92% Go 36.89% C 2.29%

neko's Introduction

n.eko

This app 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 when my friend attempts to. I just want to watch anime with my friends ლ(ಠ益ಠლ) so I started digging throughout the internet and found a few kinda clones, but none 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. It's stateless, so no saved user names or passwords.

Features

  • Text Chat (With basic markdown support, discord flavor)
  • Admin users (Kick, Ban & Force Give/Release Controls)
  • Clipboard synchronization (on supported browsers)
  • Emote overlay
  • Ignore user (chat and emotes)
  • Settings are saved to local storage

Why n.eko?

I like cats 🐱 (Neko is the Japanese word for cat), I'm a weeb/nerd

But why the cat butt? Because cats are assholes, but you love them anyways.

Super easy mode setup

  1. Deploy a server or VPS

    Recommended Specs:

    Resolution Cores Ram Recommendation
    576p 2 2gb Not Recommended
    720p 4 4gb Good Performance
    720p 6 4-6gb Recommended
    720p+ 8 8gb+ Best Performance

    Why are the specs so high? : If you think about it, you have to run a full desktop, a browser (a resource hog on its own) and encode/transmit the desktop, there's a lot going on and so it demands some power.

  2. Login via SSH

  3. Install Docker

    curl -sSL https://get.docker.com/ | CHANNEL=stable bash
    
  4. Run these commands:

    sudo ufw allow 80/tcp // if you have ufw installed/enabled
    sudo ufw allow 59000:59100/udp
    wget https://raw.githubusercontent.com/nurdism/neko/master/docker-compose.yaml
    sudo docker-compose up -d
    
  5. Visit the IP address server 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:

Chromium container:

sudo docker run -p 80:8080 -p 59000-59100:59000-59100/udp -e NEKO_PASSWORD='secret' -e NEKO_ADMIN='secret' --cap-add SYS_ADMIN nurdism/neko:chromium

Note: --cap-add SYS_ADMIN is required for chromium to run properly


Firefox container:

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

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

Docker Basic Configuration

SCREEN_WIDTH=1280       // Display width
SCREEN_HEIGHT=720       // Display height
SCREEN_DEPTH=24         // Display bit depth
DISPLAY=:99.0           // Display number

NEKO_PASSWORD=neko      // Password
NEKO_ADMIN=neko         // Admin Password
NEKO_BIND=0.0.0.0:8080  // Bind
NEKO_KEY=               // (SSL)Key, needed for clipboard sync
NEKO_CERT=              // (SSL)Cert, needed for clipboard sync

for full documentation on configuring the server go here

Development

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

cd .docker && ./build docker

the .docker folder also contains ./test <browser> bash script which will launch a desktop with a browser for testing out any changes with the server.

To run the client with hot loading (for development of new client features)

cd ./client && npm run serve

Non Goals

  • Turning n.eko into a service that serves multiple rooms and browsers/desktops.
  • Supporting multiple platforms
  • Voice chat, use Discord

neko's People

Contributors

nurdism avatar sad avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.