Sign inSign up

crunch41/eden-room-server

By crunch41

Updated about 12 hours ago

Eden dedicated room server with latency & hardening patches. Auto-rebuilt from upstream upon changes

Image
Networking
0

4.5K

crunch41/eden-room-server repository overview

Eden Room Server

Dedicated multiplayer room server for the Eden Nintendo Switch emulator, compiled from source with hardening and latency patches applied at build time.

Quick Start

Private Room
docker run -d -p 24872:24872/tcp -p 24872:24872/udp \
  -e ROOM_NAME="My Room" \
  -e PREFERRED_GAME="Mario Kart 8 Deluxe" \
  -e PREFERRED_GAME_ID="0100152000022000" \
  crunch41/eden-room-server:latest
Public Room
docker run -d -p 24872:24872/tcp -p 24872:24872/udp \
  -e ROOM_NAME="My Room" \
  -e PREFERRED_GAME="Mario Kart 8 Deluxe" \
  -e PREFERRED_GAME_ID="0100152000022000" \
  -e USERNAME="your-username" \
  -e TOKEN="your-eden-token" \
  -e WEB_API_URL="https://api.ynet-fun.xyz" \
  crunch41/eden-room-server:latest
Working Example (Unraid)
docker run -d -p 24872:24872/tcp -p 24872:24872/udp \
  -e ROOM_NAME="AU/NZ Room" \
  -e ROOM_DESCRIPTION="Welcome!" \
  -e PREFERRED_GAME="Mario Kart 8 Deluxe" \
  -e PREFERRED_GAME_ID="0100152000022000" \
  -e MAX_MEMBERS="16" \
  -e USERNAME="YourUsername" \
  -e TOKEN="your-eden-token" \
  -e WEB_API_URL="https://api.ynet-fun.xyz" \
  -e TZ="Australia/Melbourne" \
  -v /mnt/cache/appdata/eden-room:/home/eden/.local/share/eden-room \
  crunch41/eden-room-server:latest

Environment Variables

VariableRequiredDefaultDescription
ROOM_NAMEYes-Room name shown in lobby
PREFERRED_GAMEYes-Game name shown in lobby
PREFERRED_GAME_IDYes-Game title ID in hex (e.g. 0100152000022000)
ROOM_DESCRIPTIONNo-Room description
MAX_MEMBERSNo16Max players (2-254)
PASSWORDNo-Room password, leave unset for open room
USERNAMEFor public-Your Eden username
TOKENFor public-Your token from Eden Settings > Multiplayer
WEB_API_URLFor public-Set to https://api.ynet-fun.xyz
TZNoUTCTimezone for log timestamps
PUID / PGIDNo99 / 100Process UID/GID

Note: USERNAME, TOKEN, and WEB_API_URL must all be set together for a public room. Any missing and the room runs privately.

Persistent Data

Mount a volume to save ban list and session logs:

-v /mnt/cache/appdata/eden-room:/home/eden/.local/share/eden-room

Files stored:

  • ban_list.txt - Banned usernames and IPs
  • session_DD-MM-YYYY_HH-MM-SS.log - Per-session log files

Key Patches

This image applies patches to the upstream Eden source before compiling:

  • Unreliable relay - game packets use ENET_PACKET_FLAG_UNSEQUENCED, eliminating head-of-line blocking on lossy high-RTT paths (AUS to USA)
  • Extended peer timeout - 12s/60s instead of ENet defaults, surviving transient international packet loss
  • Event loop drain - removes up to 5ms of server-added relay latency under burst load
  • Relay throttle pin - prevents ENet from silently dropping game packets on jittery links
  • Join rate limiting, packet validation, moderator subnet gate - hardening against malformed input and abuse

More Information


Auto-builds: Daily when upstream Eden changes Support: https://github.com/Crunch41/eden-room-docker/issues

Tag summary

Content type

Image

Digest

sha256:23e481b71

Size

135.5 MB

Last updated

about 12 hours ago

docker pull crunch41/eden-room-server