mirror of
https://github.com/m1k1o/neko.git
synced 2026-11-03 08:21:50 -06:00
Upgrade to debian trixie (#581)
* move flavored bookworm dockerfile to a new trixie dockerfile. * fix opera openbox selector. * fix remmina dependencies. * remove chromium explicit bookworm source. * Update apps to work with trixie (#624) Co-authored-by: yesBad <me@bad.cash> * remove SYS_ADMIN capability requirement for Chromium-based Docker images and update documentation accordingly. * fix chromium package. * change uBlock Origin to uBlock Origin Lite. * restore waterfox in build matrix for GHCR workflows. --------- Co-authored-by: Bad <87938689+yesBad@users.noreply.github.com> Co-authored-by: yesBad <me@bad.cash>
This commit is contained in:
@@ -213,16 +213,16 @@ By default, the browsers in Neko do not allow installing extensions except for t
|
||||
- `ExtensionInstallAllowlist`: These extensions can be installed by the user when needed; they are not pre-installed.
|
||||
- `ExtensionInstallBlocklist`: These extensions cannot be installed by the user, which is `*` (all extensions) by default.
|
||||
|
||||
The ID of the extension can be found in the URL of the extension in the Chrome Web Store. For example, the ID of the [uBlock Origin](https://chromewebstore.google.com/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm) extension is `cjpalhdlnbpafiamejdnhcphjbkeiagm`.
|
||||
The ID of the extension can be found in the URL of the extension in the Chrome Web Store. For example, the ID of the [uBlock Origin Lite](https://chromewebstore.google.com/detail/ublock-origin-lite/ddkjiahejlhfcafbddmgiahcphecmpfh) extension is `ddkjiahejlhfcafbddmgiahcphecmpfh`.
|
||||
|
||||
```json title="policy.json"
|
||||
{
|
||||
"ExtensionInstallForcelist": [
|
||||
"cjpalhdlnbpafiamejdnhcphjbkeiagm;https://clients2.google.com/service/update2/crx",
|
||||
"ddkjiahejlhfcafbddmgiahcphecmpfh;https://clients2.google.com/service/update2/crx",
|
||||
"mnjggcdmjocbbbhaepdhchncahnbgone;https://clients2.google.com/service/update2/crx"
|
||||
],
|
||||
"ExtensionInstallAllowlist": [
|
||||
"cjpalhdlnbpafiamejdnhcphjbkeiagm",
|
||||
"ddkjiahejlhfcafbddmgiahcphecmpfh",
|
||||
"mnjggcdmjocbbbhaepdhchncahnbgone"
|
||||
],
|
||||
"ExtensionInstallBlocklist": [
|
||||
|
||||
@@ -85,7 +85,9 @@ Check the [Firefox-based browsers customization guide](/docs/v3/customization/br
|
||||
|
||||
There are multiple flavors of Chromium-based browsers available as Neko Docker images.
|
||||
|
||||
They need `--cap-add=SYS_ADMIN` (see [security implications](https://www.redhat.com/en/blog/container-tidbits-adding-capabilities-container) for more information) and extended shared memory size (`--shm-size=2g`) to work properly.
|
||||
Chromium is running with `--no-sandbox` flag, which is required to run it in a container without additional configuration. You can read more about it in [Quick introduction](https://www.google.com/googlebooks/chrome/med_26.html) to Chrome's sandbox. More in-depth [design document](https://chromium.googlesource.com/chromium/src/+/refs/heads/main/docs/design/sandbox.md), with internal links to FAQ, etc.
|
||||
|
||||
Additionally, chromium-based browsers require `--shm-size=2g` (or more) to work properly. This is because the default shared memory size for Docker containers is too small for Chromium-based browsers, which can lead to crashes and other issues.
|
||||
|
||||
import Tabs from '@theme/Tabs';
|
||||
import TabItem from '@theme/TabItem';
|
||||
@@ -95,7 +97,6 @@ import TabItem from '@theme/TabItem';
|
||||
|
||||
```bash
|
||||
docker run \
|
||||
--cap-add=SYS_ADMIN \
|
||||
--shm-size=2g \
|
||||
ghcr.io/m1k1o/neko/chromium
|
||||
```
|
||||
@@ -105,8 +106,6 @@ import TabItem from '@theme/TabItem';
|
||||
<TabItem value="docker-compose" label="Docker Compose configuration">
|
||||
|
||||
```yaml title="docker-compose.yaml"
|
||||
cap_add:
|
||||
- SYS_ADMIN
|
||||
shm_size: 2g
|
||||
```
|
||||
|
||||
|
||||
@@ -36,8 +36,6 @@ services:
|
||||
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"
|
||||
@@ -60,8 +58,6 @@ services:
|
||||
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:
|
||||
|
||||
@@ -163,16 +163,12 @@ If you put a local IP as `NEKO_WEBRTC_NAT1TO1`, external clients try to connect
|
||||
|
||||
### Getting a black screen with a cursor, but no browser for Chromium-based browsers {#black-screen-with-cursor}
|
||||
|
||||
Check if you did not forget to add `cap_add` to your `docker-compose.yaml` file. Make sure that the `shm_size` is set to `2gb` or higher.
|
||||
Make sure that the `shm_size` is set to `2gb` or higher.
|
||||
|
||||
```yaml title="docker-compose.yaml"
|
||||
services:
|
||||
neko:
|
||||
image: "ghcr.io/m1k1o/neko/chromium:latest"
|
||||
# highlight-start
|
||||
cap_add:
|
||||
- SYS_ADMIN
|
||||
# highlight-end
|
||||
restart: "unless-stopped"
|
||||
# highlight-start
|
||||
shm_size: "2gb"
|
||||
@@ -202,8 +198,6 @@ services:
|
||||
- 1.1.1.1
|
||||
- 8.8.8.8
|
||||
# highlight-end
|
||||
cap_add:
|
||||
- SYS_ADMIN
|
||||
restart: "unless-stopped"
|
||||
shm_size: "2gb"
|
||||
# ...
|
||||
|
||||
@@ -22,12 +22,12 @@ title: Getting started
|
||||
|
||||
Use the following docker images from [Docker Hub](https://hub.docker.com/r/m1k1o/neko) for x86_64:
|
||||
- `m1k1o/neko:latest` or `m1k1o/neko:firefox` - for Firefox.
|
||||
- `m1k1o/neko:chromium` - for Chromium (needs `--cap-add=SYS_ADMIN`, see the [security implications](https://www.redhat.com/en/blog/container-tidbits-adding-capabilities-container)).
|
||||
- `m1k1o/neko:google-chrome` - for Google Chrome (needs `--cap-add=SYS_ADMIN`, see the [security implications](https://www.redhat.com/en/blog/container-tidbits-adding-capabilities-container)).
|
||||
- `m1k1o/neko:ungoogled-chromium` - for [Ungoogled Chromium](https://github.com/Eloston/ungoogled-chromium) (needs `--cap-add=SYS_ADMIN`, see the [security implications](https://www.redhat.com/en/blog/container-tidbits-adding-capabilities-container)) (by @whalehub).
|
||||
- `m1k1o/neko:microsoft-edge` - for Microsoft Edge (needs `--cap-add=SYS_ADMIN`, see the [security implications](https://www.redhat.com/en/blog/container-tidbits-adding-capabilities-container)).
|
||||
- `m1k1o/neko:brave` - for [Brave Browser](https://brave.com) (needs `--cap-add=SYS_ADMIN`, see the [security implications](https://www.redhat.com/en/blog/container-tidbits-adding-capabilities-container)).
|
||||
- `m1k1o/neko:vivaldi` - for [Vivaldi Browser](https://vivaldi.com) (needs `--cap-add=SYS_ADMIN`, see the [security implications](https://www.redhat.com/en/blog/container-tidbits-adding-capabilities-container)) (by @Xeddius).
|
||||
- `m1k1o/neko:chromium` - for Chromium.
|
||||
- `m1k1o/neko:google-chrome` - for Google Chrome.
|
||||
- `m1k1o/neko:ungoogled-chromium` - for [Ungoogled Chromium](https://github.com/Eloston/ungoogled-chromium) (by @whalehub).
|
||||
- `m1k1o/neko:microsoft-edge` - for Microsoft Edge.
|
||||
- `m1k1o/neko:brave` - for [Brave Browser](https://brave.com).
|
||||
- `m1k1o/neko:vivaldi` - for [Vivaldi Browser](https://vivaldi.com) (by @Xeddius).
|
||||
- `m1k1o/neko:opera` for [Opera Browser](https://opera.com) (requires extra steps to enable DRM, see instructions [here](https://www.reddit.com/r/operabrowser/wiki/opera/linux_widevine_config/). libffmpeg is already configured.) (by @prophetofxenu)
|
||||
- `m1k1o/neko:tor-browser` - for Tor Browser.
|
||||
- `m1k1o/neko:remmina` - for remote desktop connection (by @lowne).
|
||||
@@ -267,7 +267,6 @@ docker run -d --gpus all \
|
||||
-e NEKO_VIDEO_CODEC=h264 \
|
||||
-e NEKO_HWENC=nvenc \
|
||||
--shm-size=2gb \
|
||||
--cap-add=SYS_ADMIN \
|
||||
--name neko \
|
||||
ghcr.io/m1k1o/neko/nvidia-google-chrome:latest
|
||||
```
|
||||
@@ -284,8 +283,6 @@ services:
|
||||
ports:
|
||||
- "8080:8080"
|
||||
- "56000-56100:56000-56100/udp"
|
||||
cap_add:
|
||||
- SYS_ADMIN
|
||||
environment:
|
||||
NEKO_SCREEN: '1920x1080@30'
|
||||
NEKO_PASSWORD: neko
|
||||
|
||||
@@ -38,8 +38,6 @@ services:
|
||||
ports:
|
||||
- "8080:8080"
|
||||
- "52000-52100:52000-52100/udp"
|
||||
cap_add:
|
||||
- SYS_ADMIN
|
||||
environment:
|
||||
NEKO_SCREEN: '1920x1080@30'
|
||||
NEKO_PASSWORD: neko
|
||||
@@ -62,8 +60,6 @@ services:
|
||||
ports:
|
||||
- "8080:8080"
|
||||
- "52000-52100:52000-52100/udp"
|
||||
cap_add:
|
||||
- SYS_ADMIN
|
||||
environment:
|
||||
NEKO_SCREEN: '1920x1080@30'
|
||||
NEKO_PASSWORD: neko
|
||||
|
||||
@@ -34,31 +34,6 @@ Ensure, that you have enabled debug mode in javascript console too, in order to
|
||||
|
||||
There exists an extension [Google Input Tools](https://chrome.google.com/webstore/detail/mclkkofklkfljcocdinagocijmpgbhab) for Chrome that allows you to use Chinese input method.
|
||||
|
||||
## Only black screen is displayed but remote cursor is moving for Chromium-based browsers (Chrome, Edge, etc.)
|
||||
|
||||
Check if you did not forget to add cap_add to your docker-compose file.
|
||||
|
||||
```yaml title="docker-compose.yaml"
|
||||
version: "3.4"
|
||||
services:
|
||||
neko:
|
||||
image: "m1k1o/neko:chromium"
|
||||
# highlight-start
|
||||
cap_add:
|
||||
- SYS_ADMIN
|
||||
# highlight-end
|
||||
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
|
||||
```
|
||||
|
||||
## How can I embed the Neko desktop into web page without login prompt coming up for viewers?
|
||||
|
||||
You can use the following URL to embed the Neko desktop into a web page without login prompt coming up for viewers:
|
||||
|
||||
@@ -227,8 +227,6 @@ Check if your TCP port is exposed correctly and your reverse proxy is correctly
|
||||
Getting black screen with a cursor, but no browser.
|
||||
```
|
||||
|
||||
Most likely you forgot to add `-cap-add=SYS_ADMIN` when using chromium-based browsers.
|
||||
|
||||
### Unrelated server errors
|
||||
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user