This repository has been archived on 2024-06-24 . You can view files and clone it, but cannot push or open issues or pull requests.
m1k1o
27740b0af0
Revert "Offer ICERestart"
This reverts commit 646e8af0429836942dc75131cd59f3d6454e481b.
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 (FireFox, what a shame...) 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).
- Added limited support for some mobile browsers with
playsinline
attribute. - Added
VIDEO_BITRATE
andAUDIO_BITRATE
in kbit/s to control stream quality (in collaboration with @mbattista).
Bugs
- Fixed minor gst pipeline bug.
- Locked screen only for users, admins can still join.
- Fixed h264 pipelines bugs (by @mbattista).
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.
- Remove HTML tags from user name.
- Upgraded
pion/webrtc
to v3 (by @mbattista).
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
- This WONT work:
- You can change API port (8080).
- This WILL work:
3000:8080
- This WILL work:
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.
- Anyone, who enters with
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>
Mobile UI
Although on iOS is neko not working, the UI screens have been fixed for small screens.
Description
Languages
Go
30.4%
TypeScript
25.4%
Vue
24.1%
JavaScript
9.4%
C
3.7%
Other
7%