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>
52 lines
1.4 KiB
Docker
52 lines
1.4 KiB
Docker
# 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"]
|