Solving Neko Docker Deployment Login Issues: undeclaredMediaProcessor Error, disconnected Error peer disconnected #61
After deploying according to the official tutorial quick-start, entering the username and password gets stuck on the login screen.
I searched GitHub issues and found others encountered this problem too: disconnected: Error: peer disconnected #61
So I made the following changes:
Use a Working YAML Configuration from the Issues
version: "3"
services:
neko:
image: m1k1o/neko:latest
ports:
- '6002:8080'
- '59000-60000:59000-60000/udp'
shm_size: "4gb"
environment:
DISPLAY: :99.0
NEKO_SCREEN: '1920x1080@30'
NEKO_PASSWORD: neko
NEKO_PASSWORD_ADMIN: admin
NEKO_BIND: :8080
NEKO_EPR: 59000-60000
NEKO_MAX_FPS: 0
NEKO_AUDIO_BITRATE: 256
Open Specified UDP Ports on Cloud Server
The official tutorial troubleshooting mentions:
In the example below, the specified port range 52000-52100 must also be exposed using docker.
So the ports in the YAML should also be opened.
Afterword
What made me curious is why this happens, and why the latest tutorial hasn't been corrected. After repeated testing and comparison, it's caused by this parameter:

The official configuration mentions the meaning of this parameter:

I had ChatGPT explain the ICE LITE protocol:
ICE Lite is a simplified version of the Interactive Connectivity Establishment (ICE) protocol, primarily used for NAT traversal in WebRTC and other real-time communication systems. ICE Lite is suitable for devices that are always connected to the public internet and have public IP addresses, which don't need to perform the full ICE process.
Here are the differences between ICE Lite and full ICE:
- Uses only host candidates: ICE Lite devices only use their public IP addresses as candidates, without needing complex network address acquisition and checking processes like candidates obtained through STUN or TURN servers.
- Doesn't actively perform connectivity checks: Unlike the full ICE protocol, ICE Lite devices don't actively initiate connectivity checks but respond to check requests initiated by the other party (full ICE device).
- Typical scenarios: ICE Lite is typically used for devices on the public network, such as video conferencing media servers in the cloud, while full ICE is suitable for situations requiring NAT traversal.
This simplified approach reduces the computational complexity and network overhead of devices, suitable for devices or scenarios that don't need NAT traversal, such as media servers in cloud communication systems.