Files
DungeonsOfKharadum/INSTALL_MATCHBOX.md

2.5 KiB

Installing Matchbox Signaling Server

Step 1: Install Rust (if not already installed)

# Install Rust using rustup (recommended)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Follow the prompts, then restart your shell or run:
source "$HOME/.cargo/env"

# Verify installation
cargo --version

Step 2: Install Matchbox Server

# Install matchbox_server
cargo install matchbox_server

# This will take a few minutes to compile

Step 3: Run Matchbox Server

# Run on default port (3536)
matchbox_server

# Or specify a port
matchbox_server --port 3536

# Run in background with nohup
nohup matchbox_server --port 3536 > matchbox.log 2>&1 &

# Or with systemd (recommended for production)
# See systemd service example below

Step 4: Configure Godot to Use Matchbox

Update network_manager.gd to connect to your matchbox server.

Alternative: Use Pre-built Binary

If you don't want to install Rust, download a pre-built binary:

# Download latest release
wget https://github.com/johanhelsing/matchbox/releases/download/v0.9.0/matchbox_server-x86_64-unknown-linux-gnu.tar.gz

# Extract
tar -xzf matchbox_server-x86_64-unknown-linux-gnu.tar.gz

# Make executable
chmod +x matchbox_server

# Run it
./matchbox_server --port 3536

Systemd Service (Production)

Create /etc/systemd/system/matchbox.service:

[Unit]
Description=Matchbox WebRTC Signaling Server
After=network.target

[Service]
Type=simple
User=oldcan
WorkingDirectory=/home/oldcan
ExecStart=/home/oldcan/.cargo/bin/matchbox_server --port 3536
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

Then:

# Reload systemd
sudo systemctl daemon-reload

# Start service
sudo systemctl start matchbox

# Enable on boot
sudo systemctl enable matchbox

# Check status
sudo systemctl status matchbox

# View logs
sudo journalctl -u matchbox -f

Testing

Once running, test the connection:

# Check if it's listening
netstat -tulpn | grep 3536

# Or
ss -tulpn | grep 3536

Your matchbox server will be available at:

  • ws://ruinborn.thefirstboss.com:3536

Firewall Configuration

Make sure port 3536 is open:

# UFW
sudo ufw allow 3536/tcp

# Or iptables
sudo iptables -A INPUT -p tcp --dport 3536 -j ACCEPT

Quick Start Commands

# Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"

# Install Matchbox
cargo install matchbox_server

# Run Matchbox
matchbox_server --port 3536