update docs and add examples + ungoogled chromium svg.

This commit is contained in:
Miroslav Šedivý 2025-02-16 23:40:55 +01:00
parent d1a2717ec1
commit 2dd5585b49
10 changed files with 179 additions and 23 deletions

View file

@ -149,7 +149,7 @@ member:
:::tip
For easier configuration, you can specify only passwords using environment variables:
```yaml title="docker-compose.yml"
```yaml title="docker-compose.yaml"
environment:
NEKO_MEMBER_MULTIUSER_USER_PASSWORD: "neko"
NEKO_MEMBER_MULTIUSER_ADMIN_PASSWORD: "admin"

View file

@ -453,7 +453,7 @@ sudo modprobe v4l2loopback exclusive_caps=1
This is needed even if neko is running inside a Docker container. In that case, the v4l2loopback module must be loaded on the host machine and the device must be mounted inside the container.
```yaml title="docker-compose.yml"
```yaml title="docker-compose.yaml"
services:
neko:
...

View file

@ -66,7 +66,7 @@ import TabItem from '@theme/TabItem';
<TabItem value="docker-compose" label="Docker Compose configuration">
```yaml title="docker-compose.yml"
```yaml title="docker-compose.yaml"
cap_add:
- SYS_ADMIN
shm_size: 2g
@ -79,7 +79,7 @@ import TabItem from '@theme/TabItem';
| ---- | ---- | ------------ |
| <img src="/img/icons/chromium.svg" width="60" height="60" /> | [Chromium](https://www.chromium.org/chromium-projects/) <br /> The open-source project behind Google Chrome. | [`ghcr.io/m1k1o/neko/chromium`](https://ghcr.io/m1k1o/neko/chromium) |
| <img src="/img/icons/google-chrome.svg" width="60" height="60" /> | [Google Chrome](https://www.google.com/chrome/) <br /> The most popular browser in the world. | [`ghcr.io/m1k1o/neko/google-chrome`](https://ghcr.io/m1k1o/neko/google-chrome) |
| <img src="/img/icons/chromium.svg" width="60" height="60" /> | [Ungoogled Chromium](https://github.com/Eloston/ungoogled-chromium) <br /> A fork of Chromium without Google integration. | [`ghcr.io/m1k1o/neko/ungoogled-chromium`](https://ghcr.io/m1k1o/neko/ungoogled-chromium) |
| <img src="/img/icons/ungoogled-chromium.svg" width="60" height="60" /> | [Ungoogled Chromium](https://ungoogled-software.github.io/) <br /> A fork of Chromium without Google integration. | [`ghcr.io/m1k1o/neko/ungoogled-chromium`](https://ghcr.io/m1k1o/neko/ungoogled-chromium) |
| <img src="/img/icons/microsoft-edge.svg" width="60" height="60" /> | [Microsoft Edge](https://www.microsoft.com/edge) <br/> The new Microsoft Edge is based on Chromium. | [`ghcr.io/m1k1o/neko/microsoft-edge`](https://ghcr.io/m1k1o/neko/microsoft-edge) |
| <img src="/img/icons/brave.svg" width="60" height="60" /> | [Brave](https://brave.com/) <br /> A privacy-focused browser. | [`ghcr.io/m1k1o/neko/brave`](https://ghcr.io/m1k1o/neko/brave) |
| <img src="/img/icons/vivaldi.svg" width="60" height="60" /> | [Vivaldi](https://vivaldi.com/) <br /> A highly customizable browser. | [`ghcr.io/m1k1o/neko/vivaldi`](https://ghcr.io/m1k1o/neko/vivaldi) |

View file

@ -44,7 +44,7 @@ You can also use Docker Compose to run Neko. It is preferred to use Docker Compo
Create a `docker-compose.yml` file with the following content:
```yaml title="docker-compose.yml"
```yaml title="docker-compose.yaml"
services:
neko:
image: ghcr.io/m1k1o/neko/firefox:latest

View file

@ -0,0 +1,121 @@
---
sidebar_position: 7
---
# Examples
Here are some examples to get you started with Neko. You can use these examples as a reference to create your own configurations.
## Firefox
```yaml title="docker-compose.yaml"
services:
neko:
image: "ghcr.io/m1k1o/neko/firefox:latest"
restart: "unless-stopped"
shm_size: "2gb"
ports:
- "8080:8080"
- "52000-52100:52000-52100/udp"
volumes:
- <your-host-path>:/home/neko/.mozilla/firefox # persist firexfox settings
environment:
NEKO_DESKTOP_SCREEN: '1920x1080@30'
NEKO_MEMBER_MULTIUSER_USER_PASSWORD: neko
NEKO_MEMBER_MULTIUSER_ADMIN_PASSWORD: admin
NEKO_WEBRTC_EPR: 52000-52100
NEKO_WEBRTC_ICELITE: 1
NEKO_WEBRTC_NAT1TO1: <your-IP>
```
## Chromium
```yaml title="docker-compose.yaml"
services:
neko:
image: "ghcr.io/m1k1o/neko/chromium:latest"
restart: "unless-stopped"
shm_size: "2gb"
cap_add:
- SYS_ADMIN
ports:
- "8080:8080"
- "52000-52100:52000-52100/udp"
volumes:
- <your-host-path>:/home/neko/.config/chromium # persist chromium settings
environment:
NEKO_DESKTOP_SCREEN: '1920x1080@30'
NEKO_MEMBER_MULTIUSER_USER_PASSWORD: neko
NEKO_MEMBER_MULTIUSER_ADMIN_PASSWORD: admin
NEKO_WEBRTC_EPR: 52000-52100
NEKO_WEBRTC_ICELITE: 1
NEKO_WEBRTC_NAT1TO1: <your-IP>
```
## VLC
```yaml title="docker-compose.yaml"
services:
neko:
image: "ghcr.io/m1k1o/neko/vlc:latest"
restart: "unless-stopped"
shm_size: "2gb"
cap_add:
- SYS_ADMIN
volumes:
- "<your-video-folder>:/video" # mount your video folder
ports:
- "8080:8080"
- "52000-52100:52000-52100/udp"
environment:
NEKO_DESKTOP_SCREEN: '1920x1080@30'
NEKO_MEMBER_MULTIUSER_USER_PASSWORD: neko
NEKO_MEMBER_MULTIUSER_ADMIN_PASSWORD: admin
NEKO_WEBRTC_EPR: 52000-52100
NEKO_WEBRTC_ICELITE: 1
NEKO_WEBRTC_NAT1TO1: <your-IP>
```
## Raspberry Pi
```yaml title="config.yaml"
capture:
video:
codec: h264
ids: [ main ]
pipelines:
main:
gst_pipeline: |
ximagesrc display-name=%s use-damage=0 show-pointer=true use-damage=false
! video/x-raw,framerate=30/1
! videoconvert
! queue
! video/x-raw,framerate=30/1,format=NV12
! v4l2h264enc extra-controls="controls,h264_profile=1,video_bitrate=1250000;"
! h264parse config-interval=3
! video/x-h264,stream-format=byte-stream,profile=constrained-baseline
```
```yaml title="docker-compose.yaml"
services:
neko:
# see docs for more variants
image: "ghcr.io/m1k1o/neko/arm-chromium:latest"
restart: "unless-stopped"
# increase on rpi's with more then 1gb ram.
shm_size: "520mb"
ports:
- "8088:8080"
- "52000-52100:52000-52100/udp"
# note: this is important since we need a GPU for hardware acceleration alternatively
# mount the devices into the docker.
privileged: true
volumes:
- "./config.yaml:/etc/neko/neko.yaml"
environment:
NEKO_DESKTOP_SCREEN: '1280x720@30'
NEKO_MEMBER_MULTIUSER_USER_PASSWORD: 'neko'
NEKO_MEMBER_MULTIUSER_ADMIN_PASSWORD: 'admin'
NEKO_WEBRTC_EPR: 52000-52100
NEKO_WEBRTC_ICELITE: 1
```

View file

@ -1,5 +1,5 @@
---
sidebar_position: 7
sidebar_position: 6
---
# Troubleshooting
@ -27,7 +27,7 @@ Check that your ephemeral port range `NEKO_WEBRTC_EPR` is correctly exposed as a
In the following example, the specified range `52000-52100` must also be exposed using Docker. You can't map it to a different range, e.g. `52000-52100:53000-53100/udp`. If you want to use a different range, you must change the range in `NEKO_WEBRTC_EPR` too.
```yaml title="docker-compose.yml"
```yaml title="docker-compose.yaml"
services:
neko:
image: "ghcr.io/m1k1o/neko/firefox:latest"
@ -95,7 +95,7 @@ You should see this:
If your IP is not correct, you can specify your own IP resolver using `NEKO_WEBRTC_IP_RETRIEVAL_URL`. It needs to return the IP address that will be used.
```yaml title="docker-compose.yml"
```yaml title="docker-compose.yaml"
services:
neko:
image: "ghcr.io/m1k1o/neko/firefox:latest"
@ -117,7 +117,7 @@ services:
Or you can specify your IP address manually using `NEKO_WEBRTC_NAT1TO1`:
```yaml title="docker-compose.yml"
```yaml title="docker-compose.yaml"
services:
neko:
image: "ghcr.io/m1k1o/neko/firefox:latest"
@ -167,7 +167,7 @@ If you put a local IP as `NEKO_WEBRTC_NAT1TO1`, external clients try to connect
To see verbose information from the n.eko server, you can enable debug mode using `NEKO_DEBUG`.
```yaml title="docker-compose.yml"
```yaml title="docker-compose.yaml"
services:
neko:
image: "ghcr.io/m1k1o/neko/firefox:latest"

View file

@ -1,7 +0,0 @@
---
sidebar_position: 6
---
# Updating & Upgrading
Best practices for keeping Neko updated and migrating between versions.

View file

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="500"
height="500"
viewBox="0 0 500 500"
fill="none"
version="1.1"
xmlns="http://www.w3.org/2000/svg">
<path
style="fill:url(#linearGradient40);stroke:none;fill-opacity:1"
d="M 374.9901,33.513004 125.00964,466.49187 A 249.98,249.98 0 0 0 466.48762,374.9917 249.98,249.98 0 0 0 374.9901,33.513004 Z" />
<path
style="fill:url(#linearGradient36);stroke:none;fill-opacity:1"
d="M 374.98841,33.512029 A 249.98,249.98 0 0 0 33.510434,125.0122 a 249.98,249.98 0 0 0 91.497516,341.4787 249.98,249.98 0 0 0 0.0348,0.0178 L 375.02224,33.531559 a 249.98,249.98 0 0 0 -0.0338,-0.01953 z" />
<path
fill-rule="evenodd"
clip-rule="evenodd"
d="m 364.271,472.415 c 7.135,-3.673 14.07,-7.679 20.786,-11.998 L 135.743,27.6081 c -7.134,3.6761 -14.067,7.6856 -20.781,12.0078 z"
fill="#ffffff"
transform="matrix(-1,0,0,1,500.019,0)" />
<path
d="m 124.998,250.002 c 0,69.035 55.966,125.001 125.001,125.001 69.036,0 125.002,-55.966 125.002,-125.001 0,-69.035 -55.966,-125.001 -125.002,-125.001 -69.035,0 -125.001,55.966 -125.001,125.001 z"
fill="#ffffff" />
<path
d="m 148.435,250.002 c 0,56.091 45.473,101.563 101.564,101.563 56.092,0 101.564,-45.472 101.564,-101.563 0,-56.091 -45.472,-101.564 -101.564,-101.564 -56.091,0 -101.564,45.473 -101.564,101.564"
fill="url(#linearGradient30)" />
<defs>
<linearGradient id="linearGradient40" x1="135.748" y1="472.41501" x2="385.04446" y2="39.638107" gradientUnits="userSpaceOnUse">
<stop stop-color="#ff0000" />
<stop offset="1" stop-color="#ff6666" />
</linearGradient>
<linearGradient id="linearGradient36" x1="364.24796" y1="27.656727" x2="114.962" y2="460.41699" gradientUnits="userSpaceOnUse">
<stop stop-color="#800000" />
<stop offset="1" stop-color="#330000" />
</linearGradient>
<linearGradient id="linearGradient30" x1="148.435" y1="351.565" x2="351.56503" y2="148.43497" gradientUnits="userSpaceOnUse">
<stop stop-color="#bf0000" offset="0.5" />
<stop stop-color="#ff0000" offset="1" />
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.1 KiB

View file

@ -8,7 +8,7 @@ sidebar_position: 7
To see verbose information from n.eko server, you can enable debug mode using `NEKO_DEBUG`.
```yaml title="docker-compose.yml"
```yaml title="docker-compose.yaml"
version: "3.4"
services:
neko:
@ -38,7 +38,7 @@ There exists an extension [Google Input Tools](https://chrome.google.com/webstor
Check if you did not forget to add cap_add to your docker-compose file.
```yaml title="docker-compose.yml"
```yaml title="docker-compose.yaml"
version: "3.4"
services:
neko:

View file

@ -27,7 +27,7 @@ Check that your ephemeral port range `NEKO_EPR` is correctly exposed as `/udp` p
In following example, specified range `52000-52100` must be also exposed using docker.
```yaml title="docker-compose.yml"
```yaml title="docker-compose.yaml"
version: "3.4"
services:
neko:
@ -95,7 +95,7 @@ You should see this:
If your IP is not correct, you can specify own IP resolver using `NEKO_IPFETCH`. It needs to return IP address that will be used.
```yaml title="docker-compose.yml"
```yaml title="docker-compose.yaml"
version: "3.4"
services:
neko:
@ -118,7 +118,7 @@ services:
Or you can specify your IP address manually using `NEKO_NAT1TO1`: (It's read as NAT 1 to 1, so it's capital letter 'O', not zero '0', in NAT1`TO`1)
```yaml title="docker-compose.yml"
```yaml title="docker-compose.yaml"
version: "3.4"
services:
neko:
@ -165,7 +165,7 @@ If you put local ip as `NEKO_NAT1TO1`, external clients try to connect to that i
To see verbose information from n.eko server, you can enable debug mode using `NEKO_DEBUG`.
```yaml title="docker-compose.yml"
```yaml title="docker-compose.yaml"
version: "3.4"
services:
neko: