neko mirror
Go to file
2021-01-18 13:07:25 +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 disable debug mode by default 2021-01-13 19:40:43 +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 if locked, notify admin about that on join 2021-01-18 13:07:25 +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>