2.5 KiB
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