diff --git a/README.md b/README.md
index bf1154f1..d52c102f 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
-
+
@@ -10,7 +10,7 @@
# 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
+## Features
* Text Chat (With basic markdown support, discord flavor)
* Admin users (Kick, Ban & Force Give/Release Controls)
* Clipboard synchronization (on [supported browsers](https://developer.mozilla.org/en-US/docs/Web/API/Clipboard/readText))
@@ -18,7 +18,22 @@
* Ignore user (chat and emotes)
* 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.
+
+## Documentation
+
+* [Getting Started](https://n.eko.moe/#/getting-started)
+ * [Quick Start](https://n.eko.moe/#/quick-start)
+ * [Configuration](https://n.eko.moe/#/configuration)
+* [Development](https://n.eko.moe/#/development)
+ * [Client](https://n.eko.moe/#/client)
+ * [Server](https://n.eko.moe/#/server)
+ * [Docker](https://n.eko.moe/#/docker)
+ * [Non Goals](https://n.eko.moe/#/non-goals)
+ * [Contributing](https://n.eko.moe/#/contributing)
+ * [Change logs](https://n.eko.moe/#/change-logs/)
+* [Technologies](https://n.eko.moe/#/technologies)
+* [Glossary](https://n.eko.moe/#/glossary)
diff --git a/docs/README.md b/docs/README.md
index bf1154f1..1948872e 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -1,5 +1,5 @@
-
+
diff --git a/docs/quick-start.md b/docs/quick-start.md
index 28509c73..468b43d4 100644
--- a/docs/quick-start.md
+++ b/docs/quick-start.md
@@ -7,9 +7,9 @@
| 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 |
+ | 1280x720@30 | 4 | 3gb | Good Performance |
+ | 1280x720@30 | 6 | 4gb | Recommended |
+ | 1280x720@30 | 8 | 4gb+ | 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.
@@ -30,4 +30,11 @@
```
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
+> 💡 **Protip**: Run `nano docker-compose.yaml` to edit the settings, then press `ctrl+x` to exit and save the file.
+
+## Well known cloud providers
+* [Hetzner Cloud](https://www.hetzner.com/cloud)
+* [Scaleway](https://www.scaleway.com/)
+* [Digital Ocean](https://www.digitalocean.com/)
+* [Linode](https://www.linode.com/)
+* [Vultr](https://www.vultr.com/)
\ No newline at end of file
diff --git a/server/internal/webrtc/webrtc.go b/server/internal/webrtc/webrtc.go
index 68feb517..90f79f5d 100644
--- a/server/internal/webrtc/webrtc.go
+++ b/server/internal/webrtc/webrtc.go
@@ -16,17 +16,18 @@ import (
func New(sessions types.SessionManager, config *config.WebRTC) *WebRTCManager {
logger := log.With().Str("module", "webrtc").Logger()
- setings := webrtc.SettingEngine{
+ settings := webrtc.SettingEngine{
LoggerFactory: loggerFactory{
logger: logger,
},
}
- setings.SetEphemeralUDPPortRange(config.EphemeralStart, config.EphemeralEnd)
+ settings.SetNetworkTypes([]webrtc.NetworkType{webrtc.NetworkTypeUDP4})
+ settings.SetEphemeralUDPPortRange(config.EphemeralStart, config.EphemeralEnd)
return &WebRTCManager{
logger: logger,
- setings: setings,
+ settings: settings,
cleanup: time.NewTicker(1 * time.Second),
shutdown: make(chan bool),
sessions: sessions,
@@ -44,7 +45,7 @@ func New(sessions types.SessionManager, config *config.WebRTC) *WebRTCManager {
type WebRTCManager struct {
logger zerolog.Logger
- setings webrtc.SettingEngine
+ settings webrtc.SettingEngine
sessions types.SessionManager
videoPipeline *gst.Pipeline
audioPipeline *gst.Pipeline
@@ -146,7 +147,7 @@ func (m *WebRTCManager) CreatePeer(id string, sdp string) (string, types.Peer, e
engine.PopulateFromSDP(description)
// Create API with MediaEngine and SettingEngine
- api := webrtc.NewAPI(webrtc.WithMediaEngine(engine), webrtc.WithSettingEngine(m.setings))
+ api := webrtc.NewAPI(webrtc.WithMediaEngine(engine), webrtc.WithSettingEngine(m.settings))
// Create new peer connection
connection, err := api.NewPeerConnection(*m.configuration)