feat: add Dolphin traversal server for GameCube/Wii netplay
Some checks failed
Deploy / deploy (push) Has been cancelled
Some checks failed
Deploy / deploy (push) Has been cancelled
Self-hosted NAT hole-punching relay for Dolphin emulator netplay. Enables online play for ALL GameCube and Wii games without players needing to open ports (Mario Party 4-7, MKDD, Smash Melee, etc). Multi-stage Docker build compiles only the traversal_server target. UDP ports 6262 (primary) and 6226 (NAT probe). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2
servers/dolphin-traversal/.dockerignore
Normal file
2
servers/dolphin-traversal/.dockerignore
Normal file
@@ -0,0 +1,2 @@
|
||||
*.md
|
||||
.git
|
||||
51
servers/dolphin-traversal/Dockerfile
Normal file
51
servers/dolphin-traversal/Dockerfile
Normal file
@@ -0,0 +1,51 @@
|
||||
# Dolphin Emulator Traversal Server
|
||||
# Lightweight NAT hole-punching relay for Dolphin netplay
|
||||
# Supports ALL GameCube/Wii games via Dolphin
|
||||
|
||||
# --- Build stage ---
|
||||
FROM debian:bookworm AS build
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
build-essential cmake git pkg-config \
|
||||
libfmt-dev libenet-dev libcurl4-openssl-dev \
|
||||
libbz2-dev liblzma-dev libzstd-dev zlib1g-dev \
|
||||
liblzo2-dev liblz4-dev libspng-dev \
|
||||
libusb-1.0-0-dev libevdev-dev libpugixml-dev libxxhash-dev \
|
||||
libminiupnpc-dev libhidapi-dev libsystemd-dev libudev-dev \
|
||||
glslang-dev glslang-tools \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
WORKDIR /dolphin
|
||||
|
||||
RUN git clone --depth 1 https://github.com/dolphin-emu/dolphin.git . \
|
||||
&& git submodule update --init --recursive --depth 1
|
||||
|
||||
RUN mkdir build && cd build && cmake .. \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DENABLE_QT=OFF \
|
||||
-DENABLE_NOGUI=OFF \
|
||||
-DENABLE_CLI=OFF \
|
||||
-DENABLE_TESTS=OFF \
|
||||
-DUSE_DISCORD_PRESENCE=OFF \
|
||||
-DENABLE_AUTOUPDATE=OFF \
|
||||
-DENABLE_ANALYTICS=OFF
|
||||
|
||||
RUN cd build && cmake --build . --target traversal_server -j$(nproc)
|
||||
|
||||
# --- Runtime stage ---
|
||||
FROM debian:bookworm-slim
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
libfmt9 libstdc++6 \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN useradd -r -s /bin/false dolphin
|
||||
|
||||
COPY --from=build /dolphin/build/Binaries/traversal_server /usr/local/bin/traversal_server
|
||||
|
||||
USER dolphin
|
||||
|
||||
EXPOSE 6262/udp
|
||||
EXPOSE 6226/udp
|
||||
|
||||
CMD ["traversal_server"]
|
||||
Reference in New Issue
Block a user