Step 2 - Unraid
Spokes can be deployed seamlessly on your Unraid server. Spokes is available directly in the Unraid Community Applications store.
Prerequisites
Section titled “Prerequisites”Before installing the container, ensure your network and reverse proxy are properly configured.
Network Configuration for Voice and Video
Section titled “Network Configuration for Voice and Video”Spokes embeds the LiveKit engine for real-time communication. LiveKit requires strict 1-to-1 NAT port mapping for WebRTC to function correctly. This means the external port, the host port, and the container port must all match perfectly.
Router Configuration
Section titled “Router Configuration”You must configure port forwarding on your router:
- Forward TCP traffic coming to your WAN address on port
7881to your Unraid server on port7881. - Forward UDP traffic coming to your WAN address on ports
50000 - 50499to your Unraid server on ports50000 - 50499.
(Note: You can choose different ports, but they must map 1-to-1)

Local Network Access
Section titled “Local Network Access”If your Unraid server is on the same local network as some of your users, you must enable NAT Reflection (Hairpin NAT) on your router.
Reverse Proxy Configuration
Section titled “Reverse Proxy Configuration”Your reverse proxy must be configured to properly handle real-time traffic:
- Websockets Support: This is crucial for real-time chat and LiveKit signaling. Must be enabled.
- Block Common Exploits: Recommended.
- HTTP/2 Support: Recommended.

Deploying via Community Applications
Section titled “Deploying via Community Applications”Using the official template is the easiest and most reliable way to run Spokes on Unraid. It pre-configures all necessary ports, paths, and environment settings.
Installation Steps
Section titled “Installation Steps”- Log in to your Unraid Web UI.
- Navigate to the Apps tab in the main header.
- Search for Spokes and click Install. You can also view the template on the Unraid App Store.
- The container configuration page will open with the settings pre-populated:
- App Data Path: By default, this maps to
/mnt/user/appdata/spokes/on your host. Change this if you prefer a different storage path. - Master Password (
SPOKES_MASTER_PASSWORD): Enter the secure master password you prepared in Step 1. This is required to encrypt database credentials and keys. - Web UI Port: Mapped to host port
8080by default. You can change this if port8080is already in use.
- App Data Path: By default, this maps to

Configuring Voice Ports (LiveKit)
Section titled “Configuring Voice Ports (LiveKit)”By default, the template maps the Voice TCP port to 7881 and the UDP range to 50000-50499. If you need to change these, you must delete the original mappings and create your own. Unraid does not allow you to edit the container port on an existing template mapping.
- Click “Remove” on both the Voice TCP Fallback Port and the Voice UDP Port Range.
- Click Add another Path, Port, Variable, Label or Device to add them back with your custom ports.
- Scroll to the bottom and click Apply.
Unraid will download the Spokes container image and start the application. Once finished, navigate to your Docker list, click the Spokes icon, and select WebUI (or visit http://<your-unraid-ip>:<Web-UI-Port>).

Deploying Manually (Fallback)
Section titled “Deploying Manually (Fallback)”If you prefer to configure the Docker container manually without the template:
-
Open your Unraid Web UI and navigate to the Docker tab.
-
Scroll to the bottom and click Add Container.
-
Toggle the Advanced View switch in the top right corner.
-
Configure the basic container settings:
- Name:
Spokes - Repository:
ghcr.io/pcbeeqc/spokes:latest - Network Type:
Bridge
- Name:
-
Scroll down and click + Add another Path, Port, Variable, Label or Device to add each of the following mappings:
1. Web UI Port
Section titled “1. Web UI Port”- Config Type: Port
- Name:
Web UI Port - Container Port:
8080 - Host Port:
8080(or your preferred Web UI port) - Connection Type:
TCP
2. LiveKit TCP Fallback
Section titled “2. LiveKit TCP Fallback”- Config Type: Port
- Name:
Voice TCP Fallback Port - Container Port:
7881 - Host Port:
7881 - Connection Type:
TCP - Note: This must map 1-to-1.
3. LiveKit UDP Range
Section titled “3. LiveKit UDP Range”- Config Type: Port
- Name:
Voice UDP Port Range - Container Port:
50000-50499 - Host Port:
50000-50499 - Connection Type:
UDP - Note: This must map 1-to-1.
4. App Data Path
Section titled “4. App Data Path”- Config Type: Path
- Name:
App Data Path - Container Path:
/data - Host Path:
/mnt/user/appdata/spokes/ - Access Mode:
Read/Write
5. Master Password Variable
Section titled “5. Master Password Variable”- Config Type: Variable
- Name:
Master Password - Key:
SPOKES_MASTER_PASSWORD - Value:
YourSecureMasterPasswordHere
-
Click Apply at the bottom of the page to download the image and start Spokes.
Next Steps
Section titled “Next Steps”Now that your container is running and accessible, you are ready to configure the application!
- The Setup Wizard: Complete the initial configuration of your server, upload your logo, and configure your identity provider.
- Casdoor Management: If you selected the Built-in Identity provider, learn how to create your first users and assign administrators.