neko mirror
Go to file
mbattista 31cd834526
Removed double h264 encoding
if h264enc and openh264 is installed it lead to both strings in the gstreamer pipeline which resulted in no video output
2021-01-31 23:12:52 +01:00
.devcontainer change to docker setup 2020-04-18 20:56:13 +00:00
.docker Merge pull request #101 from leewardbound/patch-1 2020-11-01 05:11:46 -05:00
.examples examples (wip) 2020-04-18 20:55:38 +00:00
.m1k1o Dockerfile: Update Chromium to v88.0.4324.96 2021-01-30 18:05:26 +01:00
client fix locked room bug 2021-01-14 21:41:00 +01:00
docs Add syntaxe highlights 2020-10-19 18:43:19 +02:00
server Removed double h264 encoding 2021-01-31 23:12:52 +01:00
.gitattributes first commit 2020-01-13 08:05:38 +00:00
.gitignore added chromium option 2020-01-30 07:19:57 +00:00
docker-compose.dev.yaml remove unused env vars 2020-11-22 00:24:56 +01:00
LICENSE added license 2020-01-14 20:59:18 +00:00
neko.code-workspace libclipboard 2020-02-02 22:48:23 +00:00
README.md update README 2021-01-18 13:03:13 +01:00
tsconfig.json first commit 2020-01-13 08:05:38 +00:00

release license pulls issues Chat on discord build





n.eko (m1k1o fork)

This app uses Web RTC to stream a desktop inside of a docker container. This is fork of https://github.com/nurdism/neko.

Differences to original repository.

New Features

  • Clipboard button with text area - for browsers, that don't support clipboard syncing or for HTTP.
  • Keyboard modifier state synchronization (Num Lock, Caps Lock, Scroll Lock) for each hosting.
  • Added chromium ungoogled (with h265 support) an kept up to date by @whalehub.
  • Added Picture in Picture button (only for watching screen, controlling not possible).
  • Added RTMP broadcast. Enables broadcasting neko screen to local RTMP server, YouTube or Twitch.
  • Stereo sound (works properly only in Firefox host).

Bugs

  • Fixed minor gst pipeline bug.
  • Locked screen only for users, admins can still join.

Misc

  • Custom docker workflow.
  • Based on debian buster instead of stretch.
  • Custom avatars without any 3rd party depenency.
  • Ignore duplicate notify bars.
  • No pointer events for notify bars.
  • Disable debug mode by default.

Getting started & FAQ

Use following docker images:

  • m1k1o/neko:latest - for Firefox.
  • m1k1o/neko:chromium - for Chromium Ungoogled (needs --cap-add=SYS_ADMIN).
  • m1k1o/neko:base - for custom base.

Networking:

  • If you want to use n.eko in external network, you can omit NEKO_NAT1TO1. It will automatically get your Public IP.
  • If you want to use n.eko in internal network, set NEKO_NAT1TO1 to your local IP address (e.g. NEKO_NAT1TO1: 192.168.1.20)-

Why so many ports?

  • WebRTC needs UDP ports for each channel it creates towards users.
  • Every user will need 2 UDP ports (for getting audio/video and sending mouse positions).
  • You can freely limit number of UDP ports. But you can't map them to diferent ports.
    • This WONT work: 32000-32100:52000-52100/udp
  • You can change API port (8080).
    • This WILL work: 3000:8080

Behind reverse proxy?

  • Nginx configuration: https://github.com/nurdism/neko/issues/111#issuecomment-742656957
  • Apache configuration: https://github.com/nurdism/neko/blob/cad98a62a5bd7f1daf2c11980631bb14ba81a1f6/docs/apache-proxypass-config.md#example-apache-config
  • Traefik configuration: https://github.com/m1k1o/neko-vpn/blob/a1b934515dcf597992a515d61d307c2450a11002/docker-compose.yml#L38-L43

Want to use VPN for your neko browsing?

  • Check this out: https://github.com/m1k1o/neko-vpn

Accounts:

  • There are no accounts, display name (a.k.a. username) can be freely chosen. Only paword needs to match. Depeding on which password matches, visitor gets its privilege:
    • Anyone, who enters with NEKO_PASSWORD will be user.
    • Anyone, who enters with NEKO_PASSWORD_ADMIN will be admin.

Screen size

  • Only admins can change screen size.
  • You can set default screen size, but this size MUST be one from list, that your server supports.
  • You will get this list in frontend, where you can choose from.

Firefox

version: "3.4"
services:
  neko:
    image: "m1k1o/neko:latest"
    restart: "unless-stopped"
    shm_size: "2gb"
    ports:
      - "8080:8080"
      - "52000-52100:52000-52100/udp"
    environment:
      NEKO_SCREEN: '1920x1080@30'
      NEKO_PASSWORD: neko
      NEKO_PASSWORD_ADMIN: admin
      NEKO_EPR: 52000-52100
      NEKO_NAT1TO1: <your-IP>

Chromium Ungoogled

version: "3.4"
services:
  neko:
    image: "m1k1o/neko:chromium"
    restart: "unless-stopped"
    shm_size: "2gb"
    ports:
      - "8080:8080"
      - "52000-52100:52000-52100/udp"
    cap_add:
      - SYS_ADMIN
    environment:
      NEKO_SCREEN: '1920x1080@30'
      NEKO_PASSWORD: neko
      NEKO_PASSWORD_ADMIN: admin
      NEKO_EPR: 52000-52100
      NEKO_NAT1TO1: <your-IP>