-# **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.
### Features
@@ -15,87 +16,9 @@
* Clipboard synchronization (on [supported browsers](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/readText))
* Emote overlay
* 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
***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 ` 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/)
\ No newline at end of file
diff --git a/client/ABOUT.md b/client/ABOUT.md
deleted file mode 100644
index 0b635e2e..00000000
--- a/client/ABOUT.md
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-# **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.
-
diff --git a/client/README.md b/client/README.md
deleted file mode 100644
index 58f99497..00000000
--- a/client/README.md
+++ /dev/null
@@ -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
-```
diff --git a/client/src/components/about.vue b/client/src/components/about.vue
index c94562c8..1449ef5e 100644
--- a/client/src/components/about.vue
+++ b/client/src/components/about.vue
@@ -147,7 +147,7 @@
if (this.about === '') {
this.loading = true
this.$http
- .get('https://raw.githubusercontent.com/nurdism/neko/master/client/ABOUT.md')
+ .get('https://raw.githubusercontent.com/nurdism/neko/master/docs/README.md')
.then(res => {
return this.$http.post('https://api.github.com/markdown', {
text: res.data,
diff --git a/docs/README.md b/docs/README.md
index 0dc9b427..bf1154f1 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -1,101 +1,24 @@
-
-
-
-
+
+
+
+
+
-# **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.
### Features
* Text Chat (With basic markdown support, discord flavor)
* 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
* 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
***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 ` 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/)
\ No newline at end of file
diff --git a/docs/_coverpage.md b/docs/_coverpage.md
index e69de29b..3d06b42b 100644
--- a/docs/_coverpage.md
+++ b/docs/_coverpage.md
@@ -0,0 +1,12 @@
+
+
+
+
+> A self hosted virtual browser that runs in docker
+
+[GitHub](https://github.com/nurdism/neko/)
+[Get Started](#neko)
+
+
+
+![color](#18191c)
\ No newline at end of file
diff --git a/docs/_media/logo.png b/docs/_media/logo.png
new file mode 100644
index 00000000..a611a7ba
Binary files /dev/null and b/docs/_media/logo.png differ
diff --git a/docs/_sidebar.md b/docs/_sidebar.md
index e69de29b..efa7334f 100644
--- a/docs/_sidebar.md
+++ b/docs/_sidebar.md
@@ -0,0 +1,14 @@
+
+
+* [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)
\ No newline at end of file
diff --git a/docs/change-logs/README.md b/docs/change-logs/README.md
new file mode 100644
index 00000000..0ad0430b
--- /dev/null
+++ b/docs/change-logs/README.md
@@ -0,0 +1 @@
+# Change logs (WIP)
\ No newline at end of file
diff --git a/docs/client.md b/docs/client.md
index e69de29b..9c0e17ef 100644
--- a/docs/client.md
+++ b/docs/client.md
@@ -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
+```
diff --git a/docs/configuration.md b/docs/configuration.md
new file mode 100644
index 00000000..ed163ad4
--- /dev/null
+++ b/docs/configuration.md
@@ -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
+```
\ No newline at end of file
diff --git a/docs/contributing.md b/docs/contributing.md
index e69de29b..5fed7537 100644
--- a/docs/contributing.md
+++ b/docs/contributing.md
@@ -0,0 +1 @@
+# Contributing (WIP)
diff --git a/docs/development.md b/docs/development.md
index e69de29b..ee58f8ee 100644
--- a/docs/development.md
+++ b/docs/development.md
@@ -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 ` 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
+```
\ No newline at end of file
diff --git a/docs/docker.md b/docs/docker.md
index e69de29b..ea53e15e 100644
--- a/docs/docker.md
+++ b/docs/docker.md
@@ -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
\ No newline at end of file
diff --git a/docs/getting-started.md b/docs/getting-started.md
index e69de29b..4f999031 100644
--- a/docs/getting-started.md
+++ b/docs/getting-started.md
@@ -0,0 +1 @@
+# Getting Started (WIP)
diff --git a/docs/glossary.md b/docs/glossary.md
new file mode 100644
index 00000000..69a11b92
--- /dev/null
+++ b/docs/glossary.md
@@ -0,0 +1 @@
+# Glossary (WIP)
diff --git a/docs/index.html b/docs/index.html
index e26d503b..8fccd9a3 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -6,17 +6,21 @@
-
+
diff --git a/docs/non-goals.md b/docs/non-goals.md
new file mode 100644
index 00000000..381d12f5
--- /dev/null
+++ b/docs/non-goals.md
@@ -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/)
\ No newline at end of file
diff --git a/docs/quick-start.md b/docs/quick-start.md
new file mode 100644
index 00000000..28509c73
--- /dev/null
+++ b/docs/quick-start.md
@@ -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.
\ No newline at end of file
diff --git a/docs/server.md b/docs/server.md
index e69de29b..b2a8489d 100644
--- a/docs/server.md
+++ b/docs/server.md
@@ -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
+```
diff --git a/docs/technologies.md b/docs/technologies.md
new file mode 100644
index 00000000..6a58e22a
--- /dev/null
+++ b/docs/technologies.md
@@ -0,0 +1 @@
+# Technologies (WIP)
\ No newline at end of file
diff --git a/server/README.md b/server/README.md
deleted file mode 100644
index 53831a8d..00000000
--- a/server/README.md
+++ /dev/null
@@ -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
-```