docs (wip)
This commit is contained in:
parent
a6d0e2872c
commit
22e80d9d6c
BIN
.github/logo.png
vendored
BIN
.github/logo.png
vendored
Binary file not shown.
Before Width: | Height: | Size: 53 KiB |
93
README.md
93
README.md
@ -1,12 +1,13 @@
|
|||||||
<div align="center">
|
<div align="center">
|
||||||
<img src="https://github.com/nurdism/neko/raw/master/.github/logo.png" width="650" height="auto"/>
|
<img src="_media/logo.png" width="450" height="auto"/>
|
||||||
</div>
|
<br/>
|
||||||
|
<br/>
|
||||||
<div align="center">
|
|
||||||
<img src="https://i.imgur.com/ZSzbQr7.gif" width="650" height="auto"/>
|
<img src="https://i.imgur.com/ZSzbQr7.gif" width="650" height="auto"/>
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
# **n**.eko
|
# 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.
|
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
|
### Features
|
||||||
@ -15,87 +16,9 @@
|
|||||||
* Clipboard synchronization (on [supported browsers](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/readText))
|
* Clipboard synchronization (on [supported browsers](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/readText))
|
||||||
* Emote overlay
|
* Emote overlay
|
||||||
* Ignore user (chat and emotes)
|
* Ignore user (chat and emotes)
|
||||||
* Settings are saved to local storage
|
* Persistent settings
|
||||||
|
|
||||||
### Why **n**.eko?
|
### Why n.eko?
|
||||||
I like cats 🐱 (`Neko` is the Japanese word for cat), I'm a weeb/nerd
|
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.
|
***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 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/)
|
|
@ -1,12 +0,0 @@
|
|||||||
<div align="center">
|
|
||||||
<a href="https://github.com/nurdism/neko"><img src="https://github.com/nurdism/neko/raw/master/.github/logo.png" width="650" height="auto"/></a>
|
|
||||||
</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.
|
|
||||||
|
|
||||||
### 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.
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
|||||||
# **n**.eko client
|
|
||||||
Web client for n.eko
|
|
||||||
|
|
||||||
### Environment
|
|
||||||
------
|
|
||||||
```
|
|
||||||
VUE_APP_SERVER_PORT // development server port
|
|
||||||
```
|
|
||||||
|
|
||||||
### Building
|
|
||||||
------
|
|
||||||
```
|
|
||||||
npm install && npm run build
|
|
||||||
```
|
|
@ -147,7 +147,7 @@
|
|||||||
if (this.about === '') {
|
if (this.about === '') {
|
||||||
this.loading = true
|
this.loading = true
|
||||||
this.$http
|
this.$http
|
||||||
.get<string>('https://raw.githubusercontent.com/nurdism/neko/master/client/ABOUT.md')
|
.get<string>('https://raw.githubusercontent.com/nurdism/neko/master/docs/README.md')
|
||||||
.then(res => {
|
.then(res => {
|
||||||
return this.$http.post('https://api.github.com/markdown', {
|
return this.$http.post('https://api.github.com/markdown', {
|
||||||
text: res.data,
|
text: res.data,
|
||||||
|
@ -1,101 +1,24 @@
|
|||||||
<div align="center">
|
<div align="center">
|
||||||
<img src="https://github.com/nurdism/neko/raw/master/.github/logo.png" width="650" height="auto"/>
|
<img src="_media/logo.png" width="450" height="auto"/>
|
||||||
</div>
|
<br/>
|
||||||
|
<br/>
|
||||||
<div align="center">
|
|
||||||
<img src="https://i.imgur.com/ZSzbQr7.gif" width="650" height="auto"/>
|
<img src="https://i.imgur.com/ZSzbQr7.gif" width="650" height="auto"/>
|
||||||
|
<br/>
|
||||||
|
<br/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
# **n**.eko
|
# 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.
|
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
|
### Features
|
||||||
* Text Chat (With basic markdown support, discord flavor)
|
* Text Chat (With basic markdown support, discord flavor)
|
||||||
* Admin users (Kick, Ban & Force Give/Release Controls)
|
* Admin users (Kick, Ban & Force Give/Release Controls)
|
||||||
* Clipboard synchronization
|
* Clipboard synchronization (on [supported browsers](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/readText))
|
||||||
* Emote overlay
|
* Emote overlay
|
||||||
* Ignore user (chat and emotes)
|
* Ignore user (chat and emotes)
|
||||||
* Settings are saved to local storage
|
* Persistent settings
|
||||||
|
|
||||||
### Why **n**.eko?
|
### Why n.eko?
|
||||||
I like cats 🐱 (`Neko` is the Japanese word for cat), I'm a weeb/nerd
|
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.
|
***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,0 +1,12 @@
|
|||||||
|
<!-- _coverpage.md -->
|
||||||
|
|
||||||
|
<img src="_media/logo.png" width="450" height="auto"/>
|
||||||
|
|
||||||
|
> A self hosted virtual browser that runs in docker
|
||||||
|
|
||||||
|
[GitHub](https://github.com/nurdism/neko/)
|
||||||
|
[Get Started](#neko)
|
||||||
|
|
||||||
|
<!-- background color -->
|
||||||
|
|
||||||
|
![color](#18191c)
|
BIN
docs/_media/logo.png
Normal file
BIN
docs/_media/logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 57 KiB |
@ -0,0 +1,14 @@
|
|||||||
|
<!-- _navbar.md -->
|
||||||
|
|
||||||
|
* [Getting Started](/getting-started)
|
||||||
|
* [Quick Start](/quick-start)
|
||||||
|
* [Configuration](/configuration)
|
||||||
|
* [Development](/development)
|
||||||
|
* [Client](/client)
|
||||||
|
* [Server](/server)
|
||||||
|
* [Docker](/docker)
|
||||||
|
* [Non Goals](/non-goals)
|
||||||
|
* [Contributing](/contributing)
|
||||||
|
* [Change logs](/change-logs/)
|
||||||
|
* [Technologies](/technologies)
|
||||||
|
* [Glossary](/glossary)
|
1
docs/change-logs/README.md
Normal file
1
docs/change-logs/README.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
# Change logs (WIP)
|
@ -0,0 +1,14 @@
|
|||||||
|
# Client (WIP)
|
||||||
|
Web client for n.eko
|
||||||
|
|
||||||
|
## Environment
|
||||||
|
------
|
||||||
|
```
|
||||||
|
VUE_APP_SERVER_PORT // development server port
|
||||||
|
```
|
||||||
|
|
||||||
|
## Building
|
||||||
|
------
|
||||||
|
```
|
||||||
|
npm install && npm run build
|
||||||
|
```
|
10
docs/configuration.md
Normal file
10
docs/configuration.md
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
# Configuration (WIP)
|
||||||
|
|
||||||
|
## Docker Basic Configuration
|
||||||
|
```
|
||||||
|
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
|
||||||
|
```
|
@ -0,0 +1 @@
|
|||||||
|
# Contributing (WIP)
|
@ -0,0 +1,12 @@
|
|||||||
|
# Development (WIP)
|
||||||
|
|
||||||
|
*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
|
||||||
|
```
|
@ -0,0 +1,15 @@
|
|||||||
|
# Docker (WIP)
|
||||||
|
|
||||||
|
## 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 --shm-size=1gb nurdism/neko:chromium
|
||||||
|
```
|
||||||
|
*Note:* `--cap-add SYS_ADMIN` & `--shm-size=1gb` 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
|
@ -0,0 +1 @@
|
|||||||
|
# Getting Started (WIP)
|
1
docs/glossary.md
Normal file
1
docs/glossary.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
# Glossary (WIP)
|
@ -6,17 +6,21 @@
|
|||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
<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="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">
|
<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">
|
<link rel="stylesheet" href="//unpkg.com/docsify/lib/themes/dark.css">
|
||||||
<style>
|
<style>
|
||||||
.app-name img { max-width: 70%; }
|
.app-name img { max-width: 70%; }
|
||||||
nav.app-nav li ul { min-width: 100px; }
|
nav.app-nav li ul { min-width: 100px; }
|
||||||
|
.search { border-bottom: 1px solid rgba(0,0,0,.07) !important; }
|
||||||
|
.search .matching-post { border-bottom: 1px solid rgba(0,0,0,.3) !important; }
|
||||||
|
section tr:nth-child(2n) { background-color: #333333 !important; }
|
||||||
|
.markdown-section td, .markdown-section th { border: 1px solid #777 !important; }
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div id="app"></div>
|
<div id="app"></div>
|
||||||
<script>
|
<script>
|
||||||
window.$docsify = {
|
window.$docsify = {
|
||||||
logo: '/_media/logo.svg',
|
logo: '/_media/logo.png',
|
||||||
formatUpdated: '{MM}/{DD} {HH}:{mm}',
|
formatUpdated: '{MM}/{DD} {HH}:{mm}',
|
||||||
auto2top: true,
|
auto2top: true,
|
||||||
coverpage: true,
|
coverpage: true,
|
||||||
@ -28,7 +32,7 @@
|
|||||||
subMaxLevel: 2,
|
subMaxLevel: 2,
|
||||||
name: 'neko',
|
name: 'neko',
|
||||||
repo: 'nurdism/neko',
|
repo: 'nurdism/neko',
|
||||||
themeColor: '#E53935'
|
themeColor: '#19bd9c'
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<script src="//unpkg.com/docsify/lib/docsify.min.js"></script>
|
<script src="//unpkg.com/docsify/lib/docsify.min.js"></script>
|
||||||
|
5
docs/non-goals.md
Normal file
5
docs/non-goals.md
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# Non Goals (WIP)
|
||||||
|
|
||||||
|
* Turning n.eko into a service that serves multiple rooms and browsers/desktops.
|
||||||
|
* Supporting multiple platforms
|
||||||
|
* Voice chat, use [Discord](https://discordapp.com/)
|
33
docs/quick-start.md
Normal file
33
docs/quick-start.md
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
# Quick Start (WIP)
|
||||||
|
|
||||||
|
1. Deploy a server or VPS
|
||||||
|
|
||||||
|
**Recommended Specs:**
|
||||||
|
|
||||||
|
| Resolution | Cores | Ram | Recommendation |
|
||||||
|
|-------------|-------|-------|------------------|
|
||||||
|
| 1024×576@30 | 2 | 2gb | Not Recommended |
|
||||||
|
| 1280x720@30 | 4 | 4gb | Good Performance |
|
||||||
|
| 1280x720@30 | 6 | 4-6gb | Recommended |
|
||||||
|
| 1280x720@30 | 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.
|
||||||
|
|
||||||
|
*Note:* changing the resolution will require additional setup
|
||||||
|
|
||||||
|
2. [Login via SSH](https://www.digitalocean.com/docs/droplets/how-to/connect-with-ssh/)
|
||||||
|
|
||||||
|
3. Install Docker
|
||||||
|
```shell
|
||||||
|
curl -sSL https://get.docker.com/ | CHANNEL=stable bash
|
||||||
|
```
|
||||||
|
4. Run these commands:
|
||||||
|
```shell
|
||||||
|
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.
|
@ -0,0 +1,65 @@
|
|||||||
|
# Server (WIP)
|
||||||
|
Server for n.eko, as of right now this will *only* work on Linux systems, only tested on Debian based distros.
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
------
|
||||||
|
```
|
||||||
|
--debug // (bool) enable debug mode
|
||||||
|
--logs // (bool) save logs to file
|
||||||
|
--config "" // (string) configuration file path
|
||||||
|
--bind "127.0.0.1:8080" // (string) address/port/socket to serve neko
|
||||||
|
--cert "" // (string) path to the SSL cert used to secure the neko server
|
||||||
|
--key "" // (string) path to the SSL key used to secure the neko server
|
||||||
|
--static "./www" // (string) path to neko client files to serve
|
||||||
|
--device "auto_null.monitor" // (string) audio device to capture
|
||||||
|
--display ":99.0" // (string) XDisplay to capture
|
||||||
|
--aduio "" // (string) audio codec parameters to use for streaming (unused)
|
||||||
|
--video "" // (string) video codec parameters to use for streaming (unused)
|
||||||
|
--epr "59000-59100" // (string) limits the pool of ephemeral ports that ICE UDP connections can allocate from
|
||||||
|
--vp8 // (bool) use VP8 video codec
|
||||||
|
--vp9 // (bool) use VP9 video codec
|
||||||
|
--h264 // (bool) use H264 video codec
|
||||||
|
--opus // (bool) use Opus audio codec
|
||||||
|
--g722 // (bool) use G722 audio codec
|
||||||
|
--pcmu // (bool) use PCMU audio codec
|
||||||
|
--pcma // (bool) use PCMA audio codec
|
||||||
|
--password "neko" // (string) password for connecting to stream
|
||||||
|
--admin "admin" // (string) admin password for connecting to stream
|
||||||
|
```
|
||||||
|
|
||||||
|
Config can be set via environment variables with the prefix `NEKO_` (I.E. NEKO_BIND="127.0.0.1:8080")
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
------
|
||||||
|
Runtime:
|
||||||
|
```
|
||||||
|
gstreamer1.0-plugins-base // opus plugin
|
||||||
|
gstreamer1.0-plugins-good // pulseaudio, ximagesrc & vpx plugins
|
||||||
|
gstreamer1.0-plugins-bad // openh264 plugin (build from source)
|
||||||
|
gstreamer1.0-plugins-ugly // x264 plugin
|
||||||
|
gstreamer1.0-pulseaudio // pulseaudio plugin
|
||||||
|
xclip // clipboard sync
|
||||||
|
libxtst6 // keyboard and mouse input
|
||||||
|
```
|
||||||
|
|
||||||
|
Development:
|
||||||
|
```
|
||||||
|
libxtst-dev
|
||||||
|
```
|
||||||
|
|
||||||
|
## Testing
|
||||||
|
------
|
||||||
|
located in `.docker` folder
|
||||||
|
```
|
||||||
|
./test firefox // creates an x server, puleseaudio server add firefox instance
|
||||||
|
./test chromium // creates an x server, puleseaudio server add chromium instance
|
||||||
|
```
|
||||||
|
|
||||||
|
## Building
|
||||||
|
------
|
||||||
|
located in `.docker` folder
|
||||||
|
```
|
||||||
|
./build gst // builds the required gst packages in `.build/gst/`
|
||||||
|
./build docker // builds the docker images
|
||||||
|
./build push // pushes the images to docker hub
|
||||||
|
```
|
1
docs/technologies.md
Normal file
1
docs/technologies.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
# Technologies (WIP)
|
@ -1,65 +0,0 @@
|
|||||||
# **n**.eko server
|
|
||||||
Server for n.eko, as of right now this will *only* work on Linux systems, only tested on Debian based distros.
|
|
||||||
|
|
||||||
### Configuration
|
|
||||||
------
|
|
||||||
```
|
|
||||||
--debug // (bool) enable debug mode
|
|
||||||
--logs // (bool) save logs to file
|
|
||||||
--config "" // (string) configuration file path
|
|
||||||
--bind "127.0.0.1:8080" // (string) address/port/socket to serve neko
|
|
||||||
--cert "" // (string) path to the SSL cert used to secure the neko server
|
|
||||||
--key "" // (string) path to the SSL key used to secure the neko server
|
|
||||||
--static "./www" // (string) path to neko client files to serve
|
|
||||||
--device "auto_null.monitor" // (string) audio device to capture
|
|
||||||
--display ":99.0" // (string) XDisplay to capture
|
|
||||||
--aduio "" // (string) audio codec parameters to use for streaming (unused)
|
|
||||||
--video "" // (string) video codec parameters to use for streaming (unused)
|
|
||||||
--epr "59000-59100" // (string) limits the pool of ephemeral ports that ICE UDP connections can allocate from
|
|
||||||
--vp8 // (bool) use VP8 video codec
|
|
||||||
--vp9 // (bool) use VP9 video codec
|
|
||||||
--h264 // (bool) use H264 video codec
|
|
||||||
--opus // (bool) use Opus audio codec
|
|
||||||
--g722 // (bool) use G722 audio codec
|
|
||||||
--pcmu // (bool) use PCMU audio codec
|
|
||||||
--pcma // (bool) use PCMA audio codec
|
|
||||||
--password "neko" // (string) password for connecting to stream
|
|
||||||
--admin "admin" // (string) admin password for connecting to stream
|
|
||||||
```
|
|
||||||
|
|
||||||
Config can be set via environment variables with the prefix `NEKO_` (I.E. NEKO_BIND="127.0.0.1:8080")
|
|
||||||
|
|
||||||
### Requirements
|
|
||||||
------
|
|
||||||
Runtime:
|
|
||||||
```
|
|
||||||
gstreamer1.0-plugins-base // opus plugin
|
|
||||||
gstreamer1.0-plugins-good // pulseaudio, ximagesrc & vpx plugins
|
|
||||||
gstreamer1.0-plugins-bad // openh264 plugin (build from source)
|
|
||||||
gstreamer1.0-plugins-ugly // x264 plugin
|
|
||||||
gstreamer1.0-pulseaudio // pulseaudio plugin
|
|
||||||
xclip // clipboard sync
|
|
||||||
libxtst6 // keyboard and mouse input
|
|
||||||
```
|
|
||||||
|
|
||||||
Development:
|
|
||||||
```
|
|
||||||
libxtst-dev
|
|
||||||
```
|
|
||||||
|
|
||||||
### Testing
|
|
||||||
------
|
|
||||||
located in `.docker` folder
|
|
||||||
```
|
|
||||||
./test firefox // creates an x server, puleseaudio server add firefox instance
|
|
||||||
./test chromium // creates an x server, puleseaudio server add chromium instance
|
|
||||||
```
|
|
||||||
|
|
||||||
### Building
|
|
||||||
------
|
|
||||||
located in `.docker` folder
|
|
||||||
```
|
|
||||||
./build gst // builds the required gst packages in `.build/gst/`
|
|
||||||
./build docker // builds the docker images
|
|
||||||
./build push // pushes the images to docker hub
|
|
||||||
```
|
|
Reference in New Issue
Block a user