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)