neko/server
2020-02-03 14:46:00 +00:00
..
.vscode large refactor, fixes #2 2020-01-18 23:30:09 +00:00
cmd slight changes, moved around a few things 2020-01-27 09:00:49 +00:00
internal muxed socket.send fixes #27 2020-02-03 14:46:00 +00:00
.editorconfig first commit 2020-01-13 08:05:38 +00:00
.env.development alpine 2020-01-27 01:28:39 +00:00
build minor changes 2020-01-26 10:43:08 +00:00
go.mod progress on server refactor 2020-01-20 14:38:07 +00:00
go.sum slight changes, moved around a few things 2020-01-27 09:00:49 +00:00
neko.go 1.0 Release 2020-01-29 01:29:39 +00:00
README.md added chromium option 2020-01-30 07:19:57 +00:00

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