mirror of
https://github.com/m1k1o/neko.git
synced 2024-07-24 14:40:50 +12:00
docs init (wip)
This commit is contained in:
parent
84126f2969
commit
6ba4d94a04
0
docs/.nojekyll
Normal file
0
docs/.nojekyll
Normal file
101
docs/README.md
Normal file
101
docs/README.md
Normal file
@ -0,0 +1,101 @@
|
|||||||
|
<div align="center">
|
||||||
|
<img src="https://github.com/nurdism/neko/raw/master/.github/logo.png" width="650" height="auto"/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div align="center">
|
||||||
|
<img src="https://i.imgur.com/ZSzbQr7.gif" width="650" height="auto"/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
# **n**.eko
|
||||||
|
This app uses Web RTC to stream a desktop inside of a docker container, I made this because [rabb.it](https://en.wikipedia.org/wiki/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](https://github.com/Khauri/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
|
||||||
|
* 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](https://www.digitalocean.com/docs/droplets/how-to/connect-with-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 your 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](./server/README.md)
|
||||||
|
|
||||||
|
### Development
|
||||||
|
*Highly* recommend you use a [dev container](https://code.visualstudio.com/docs/remote/containers) for [vscode](https://code.visualstudio.com/), 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](https://discordapp.com/)
|
0
docs/_coverpage.md
Normal file
0
docs/_coverpage.md
Normal file
0
docs/_sidebar.md
Normal file
0
docs/_sidebar.md
Normal file
0
docs/client.md
Normal file
0
docs/client.md
Normal file
0
docs/contributing.md
Normal file
0
docs/contributing.md
Normal file
0
docs/development.md
Normal file
0
docs/development.md
Normal file
0
docs/docker.md
Normal file
0
docs/docker.md
Normal file
0
docs/getting-started.md
Normal file
0
docs/getting-started.md
Normal file
40
docs/index.html
Normal file
40
docs/index.html
Normal file
@ -0,0 +1,40 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>n.eko</title>
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
||||||
|
<meta name="description" content="A self hosted virtual browser (rabb.it clone) that runs in docker">
|
||||||
|
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
||||||
|
<link rel="stylesheet" href="//unpkg.com/docsify/lib/themes/vue.css">
|
||||||
|
<style>
|
||||||
|
.app-name img { max-width: 70%; }
|
||||||
|
nav.app-nav li ul { min-width: 100px; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="app"></div>
|
||||||
|
<script>
|
||||||
|
window.$docsify = {
|
||||||
|
logo: '/_media/logo.svg',
|
||||||
|
formatUpdated: '{MM}/{DD} {HH}:{mm}',
|
||||||
|
auto2top: true,
|
||||||
|
coverpage: true,
|
||||||
|
loadSidebar: true,
|
||||||
|
mergeNavbar: true,
|
||||||
|
loadSidebar: true,
|
||||||
|
autoHeader: true,
|
||||||
|
maxLevel: 4,
|
||||||
|
subMaxLevel: 2,
|
||||||
|
name: 'neko',
|
||||||
|
repo: 'nurdism/neko',
|
||||||
|
themeColor: '#E53935'
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<script src="//unpkg.com/docsify/lib/docsify.min.js"></script>
|
||||||
|
<script src="//unpkg.com/docsify-copy-code"></script>
|
||||||
|
<script src="//unpkg.com/docsify/lib/plugins/search.min.js"></script>
|
||||||
|
<script src="//unpkg.com/prismjs/components/prism-bash.min.js"></script>
|
||||||
|
<script src="//unpkg.com/prismjs/components/prism-go.min.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
0
docs/server.md
Normal file
0
docs/server.md
Normal file
Loading…
Reference in New Issue
Block a user