Self-host Neko
- License
- Apache-2.0
- GitHub stars
- 22,614, as of 8 Nov 2026
- Latest release
- v3.2.0, as of 8 Nov 2026
- Host needs
- Not stated in official docs
- Install method
- Docker; Docker Compose
- One-click template
- None listed
Neko describes itself as "a self-hosted virtual browser that runs in Docker and uses WebRTC technology".
Neko is released under the Apache License, version 2.0 (Apache-2.0). The repo has no enterprise folders, and we saw no dual licence.
- Last commit: 7 Nov 2026 18:39 SGT, as of 8 Nov 2026. The repository is not archived.
Requirements
The docs say "The preferred way to install Neko is to use Docker".
Images are built for linux/amd64 and linux/arm64, which covers boards such as the Raspberry Pi 4 and Apple M1 or M2 machines. On ARM, the docs warn that fewer applications are available.
Chromium-based browsers need --shm-size=2g or more to work properly. In Docker Compose this is shm_size: 2gb. That setting sizes the container's shared memory, which is separate from the host's RAM. Firefox-based browsers do not need the larger shared memory size.
The docs focus on CPU images, and they say GPU support might not work as expected.
CPU core count and RAM size are not documented.
Ports
- HTTP is published with
-p 8080:8080, which maps container port 8080 to host port 8080. - WebRTC uses one UDP range,
-p 56000-56100:56000-56100/udp. SetNEKO_WEBRTC_EPR=56000-56100, because the docs say the endpoint range must match the mapped ports. - Expose the same ports on the host without any remapping, and open the whole range on the server's firewall.
- If you would like a single port,
NEKO_WEBRTC_UDPMUXandNEKO_WEBRTC_TCPMUXlet the server use one port for both UDP and TCP. - WebRTC traffic does not use HTTP, so nginx and other reverse proxies cannot forward it.
Configuration
Neko reads default values, a configuration file, environment variables and command-line arguments. Point to a config file with NEKO_CONFIG=/path/to/config.yaml.
The install docs use NEKO_WEBRTC_EPR, NEKO_WEBRTC_NAT1TO1 (the address the WebRTC client should connect to), NEKO_MEMBER_MULTIUSER_USER_PASSWORD and NEKO_MEMBER_MULTIUSER_ADMIN_PASSWORD.
The server listens on NEKO_SERVER_BIND, which defaults to 127.0.0.1:8080.
Neko v3 still accepts many v2 option names as deprecated aliases. When both forms are set, the v3 option wins. For example, NEKO_PASSWORD maps to NEKO_MEMBER_MULTIUSER_USER_PASSWORD with NEKO_MEMBER_PROVIDER=multiuser, and NEKO_EPR maps to NEKO_WEBRTC_EPR.
Install methods
- Docker. The docs start a basic container with
docker run -d --rm -p 8080:8080plus further options. - Docker Compose, which the docs also support.
The docs treat any other install method as out of scope.
Hosting options
Neko is self-hosted. We found no managed hosting in the pages we read.
Backups and updates
Backup and restore are not documented in the pages we read.
To update a Compose install, run docker compose pull and then docker compose up -d.
Image tags come as latest, a major version such as ghcr.io/m1k1o/neko/firefox:3, or a full MAJOR.MINOR.PATCH release. The docs recommend the GHCR registry, since Docker Hub only carries images without flavors and only for AMD64.
Moving from v2 to v3 means updating your configuration to the new format. The v2 API and client compatibility layer have been removed, so clients must use the v3 API.
Sources (fetched 30 Oct 2026)
- https://github.com/m1k1o/neko
- https://github.com/m1k1o/neko
- https://api.github.com/repos/m1k1o/neko
- https://neko.m1k1o.net/docs/v3/installation
- https://neko.m1k1o.net/docs/v3/installation/docker-images
- https://neko.m1k1o.net/docs/v3/faq
- https://neko.m1k1o.net/docs/v3/troubleshooting
- https://neko.m1k1o.net/docs/v3/configuration/webrtc
- https://neko.m1k1o.net/docs/v3/configuration
- https://neko.m1k1o.net/docs/v3/migration-from-v2