7.6 KiB
sidebar_position |
---|
1 |
Docker Setup

Use the following docker images from Docker Hub for x86_64:
m1k1o/neko:latest
orm1k1o/neko:firefox
- for Firefox.m1k1o/neko:chromium
- for Chromium (needs--cap-add=SYS_ADMIN
, see the security implications).m1k1o/neko:google-chrome
- for Google Chrome (needs--cap-add=SYS_ADMIN
, see the security implications).m1k1o/neko:ungoogled-chromium
- for Ungoogled Chromium (needs--cap-add=SYS_ADMIN
, see the security implications) (by @whalehub).m1k1o/neko:microsoft-edge
- for Microsoft Edge (needs--cap-add=SYS_ADMIN
, see the security implications).m1k1o/neko:brave
- for Brave Browser (needs--cap-add=SYS_ADMIN
, see the security implications).m1k1o/neko:vivaldi
- for Vivaldi Browser (needs--cap-add=SYS_ADMIN
, see the security implications) (by @Xeddius).m1k1o/neko:opera
for Opera Browser (requires extra steps to enable DRM, see instructions here. libffmpeg is already configured.) (by @prophetofxenu)m1k1o/neko:tor-browser
- for Tor Browser.m1k1o/neko:remmina
- for remote desktop connection (by @lowne).- Pass env var
REMMINA_URL=<proto>://[<username>[:<password>]@]server[:port]
(proto beingvnc
,rdp
orspice
). - Or create your custom configuration with remmina locally (it's saved in
~/.local/share/remmina/path_to_profile.remmina
) and bind-mount it, then pass env varREMMINA_PROFILE=<path_to_profile.remmina>
.
- Pass env var
m1k1o/neko:vlc
- for VLC Video player (needs volume mounted to/media
with local video files, or settingVLC_MEDIA=/media
path).m1k1o/neko:xfce
orm1k1o/neko:kde
- for a shared desktop / installing shared software.m1k1o/neko:base
- for custom base.
Dockerhub images are built using GitHub actions on every push and on weekly basis to keep all browsers up-to-date.
All images are also available on GitHub Container Registry for faster pulls:
ghcr.io/m1k1o/neko/firefox:latest
ghcr.io/m1k1o/neko/chromium:latest
ghcr.io/m1k1o/neko/google-chrome:latest
ghcr.io/m1k1o/neko/ungoogled-chromium:latest
ghcr.io/m1k1o/neko/microsoft-edge:latest
ghcr.io/m1k1o/neko/brave:latest
ghcr.io/m1k1o/neko/vivaldi:latest
ghcr.io/m1k1o/neko/opera:latest
ghcr.io/m1k1o/neko/tor-browser:latest
ghcr.io/m1k1o/neko/remmina:latest
ghcr.io/m1k1o/neko/vlc:latest
ghcr.io/m1k1o/neko/xfce:latest
ghcr.io/m1k1o/neko/kde:latest
For ARM-based images (like Raspberry Pi - with GPU hardware acceleration, Oracle Cloud ARM tier). Currently, not all images are available for ARM, because not all applications are available for ARM. Please note, that m1k1o/neko:arm-*
images from dockerhub are currently not maintained and they can contain outdated software. Please use images below:
ghcr.io/m1k1o/neko/arm-firefox:latest
ghcr.io/m1k1o/neko/arm-chromium:latest
ghcr.io/m1k1o/neko/arm-ungoogled-chromium:latest
ghcr.io/m1k1o/neko/arm-vlc:latest
ghcr.io/m1k1o/neko/arm-xfce:latest
For images with VAAPI GPU hardware acceleration using intel drivers use:
ghcr.io/m1k1o/neko/intel-firefox:latest
ghcr.io/m1k1o/neko/intel-chromium:latest
ghcr.io/m1k1o/neko/intel-google-chrome:latest
ghcr.io/m1k1o/neko/intel-ungoogled-chromium:latest
ghcr.io/m1k1o/neko/intel-microsoft-edge:latest
ghcr.io/m1k1o/neko/intel-brave:latest
ghcr.io/m1k1o/neko/intel-vivaldi:latest
ghcr.io/m1k1o/neko/intel-opera:latest
ghcr.io/m1k1o/neko/intel-tor-browser:latest
ghcr.io/m1k1o/neko/intel-remmina:latest
ghcr.io/m1k1o/neko/intel-vlc:latest
ghcr.io/m1k1o/neko/intel-xfce:latest
ghcr.io/m1k1o/neko/intel-kde:latest
For images with Nvidia GPU hardware acceleration using EGL (see example below) use (please note, there is a known issue with EGL and Chromium-based browsers, see here):
ghcr.io/m1k1o/neko/nvidia-firefox:latest
ghcr.io/m1k1o/neko/nvidia-chromium:latest
ghcr.io/m1k1o/neko/nvidia-google-chrome:latest
ghcr.io/m1k1o/neko/nvidia-microsoft-edge:latest
ghcr.io/m1k1o/neko/nvidia-brave:latest
GHCR images are built using GitHub actions for every tag.
Running Neko with Docker
To start a basic Neko container, use the following command:
docker run -d --rm \
-p 8080:8080 \
-p 56000-56100:56000-56100/udp \
-e NEKO_EPR=56000-56100 \
-e NEKO_PASSWORD=neko \
-e NEKO_PASSWORD_ADMIN=admin \
-e NEKO_NAT1TO1=<your-ip> \
--shm-size=2g \
m1k1o/neko:latest
Explanation
-d
- Run the container in the background.--rm
- Automatically remove the container when it exits.-p 8080:8080
- Map the host's port8080
to the container's port8080
.-p 56000-56100:56000-56100/udp
- Map the host's ports56000-56100
to the container's ports56000-56100
using UDP.-e NEKO_EPR=56000-56100
- Set the range of ports for the WebRTC connection, it must match the port range mapped above.-e NEKO_PASSWORD=neko
and-e NEKO_PASSWORD_ADMIN=admin
- Set passwords for the user and admin user.-e NEKO_NAT1TO1=<your-ip>
- Set the public or local IP address for the NAT1:1 connection.--shm-size=2g
- Set the shared memory size to 2GB, otherwise, the browser may crash.m1k1o/neko:latest
- The name of the image to run, change it to the desired image.
Now, open your browser and go to: http://localhost:8080
. You should see the Neko interface.
Using Docker Compose
You can also use Docker Compose to run Neko. Create a docker-compose.yml
file with the following content:
services:
neko:
image: m1k1o/neko:latest
shm_size: 2g
ports:
- "8080:8080"
- "56000-56100:56000-56100/udp"
environment:
NEKO_EPR: 56000-56100
NEKO_PASSWORD: neko
NEKO_PASSWORD_ADMIN: admin
NEKO_NAT1TO1: <your-ip>
Then, run the following command:
docker compose up -d