Self-Hosted Server
Run your own SquadChord server for complete control over your voice communications, data privacy, and zero dependency on external services.
Download Server Binary
Linux
Linux x64
Intel/AMD 64-bit
For standard Linux servers running on x86_64 architecture (most cloud VPS, dedicated servers).
Download (zstd compressed)Linux ARM64
ARM 64-bit (aarch64)
For ARM-based servers like Raspberry Pi 4/5, AWS Graviton, Oracle Ampere, Apple Silicon.
Download (zstd compressed)Windows
Windows x64
Intel/AMD 64-bit
For Windows Server or Windows desktop systems running on x86_64 architecture.
Download (zstd compressed)Windows ARM64
ARM 64-bit
For Windows on ARM devices like Surface Pro X, Snapdragon-powered PCs.
Download (zstd compressed)
Server binaries are compressed with zstd. Decompress with: zstd -d server-*.zst (Linux) or use zstd for Windows.
Requirements
- Linux or Windows - Any modern Linux distribution or Windows 10/11/Server
- 512 MB RAM - Minimum (1 GB+ recommended for larger communities)
- UDP port 5000 - Must be open for QUIC connections
- TCP port 5001 - Optional, for file transfer HTTP endpoint
- zstd - For decompressing the binary (
apt install zstdon Linux, or download for Windows)
Linux Installation
1 Create installation directory
sudo mkdir -p /opt/squadchord
sudo useradd -r -s /bin/false squadchord 2 Download and extract the server
# For x64 servers:
curl -fsSL https://cdn.squadchord.com/staging/server-linux-x64.zst -o /tmp/server.zst
# For ARM64 servers:
# curl -fsSL https://cdn.squadchord.com/staging/server-linux-arm64.zst -o /tmp/server.zst
# Extract and install
zstd -d /tmp/server.zst -o /opt/squadchord/server
chmod +x /opt/squadchord/server
chown -R squadchord:squadchord /opt/squadchord 3 Create systemd service
sudo tee /etc/systemd/system/squadchord.service > /dev/null <<EOF
[Unit]
Description=SquadChord Voice Server
After=network.target
[Service]
Type=simple
User=squadchord
WorkingDirectory=/opt/squadchord
ExecStart=/opt/squadchord/server
Restart=always
RestartSec=10
# Security hardening
NoNewPrivileges=true
ProtectSystem=strict
ProtectHome=true
ReadWritePaths=/opt/squadchord
[Install]
WantedBy=multi-user.target
EOF 4 Enable and start the service
sudo systemctl daemon-reload
sudo systemctl enable squadchord
sudo systemctl start squadchord
# Check status
sudo systemctl status squadchord 5 Configure firewall
# UFW (Ubuntu/Debian)
sudo ufw allow 5000/udp # QUIC (voice/video)
sudo ufw allow 5001/tcp # HTTP (file transfers)
# firewalld (RHEL/Fedora)
sudo firewall-cmd --permanent --add-port=5000/udp
sudo firewall-cmd --permanent --add-port=5001/tcp
sudo firewall-cmd --reload Windows Installation
1 Download and extract
- Download the Windows server binary above
- Download zstd for Windows to decompress
- Create a folder:
C:\SquadChord
# In PowerShell or Command Prompt
zstd -d server-windows-x64.exe.zst -o C:\SquadChord\server.exe 2 Configure Windows Firewall
# Run PowerShell as Administrator
New-NetFirewallRule -DisplayName "SquadChord QUIC" -Direction Inbound -Protocol UDP -LocalPort 5000 -Action Allow
New-NetFirewallRule -DisplayName "SquadChord HTTP" -Direction Inbound -Protocol TCP -LocalPort 5001 -Action Allow 3 Run the server
Option A: Run directly - Double-click server.exe or run from PowerShell:
cd C:\SquadChord
.\server.exe Option B: Run as a Windows Service - Use NSSM (Non-Sucking Service Manager):
# Download NSSM and run as Administrator
nssm install SquadChord C:\SquadChord\server.exe
nssm set SquadChord AppDirectory C:\SquadChord
nssm start SquadChord Connecting to Your Server
Once the server is running, connect using the SquadChord client:
- Open the SquadChord client application
- Click "Add Server" or enter the server address
- Enter your server's IP address or hostname (e.g.,
your-server.example.comor192.168.1.100) - The default port is 5000 - only specify if using a different port
- Click Connect
The first user to connect becomes the server owner with full administrative privileges.
Auto-Update
The SquadChord server includes built-in auto-update functionality:
- Periodically checks the CDN for new versions (every hour by default)
- Downloads updates automatically and notifies connected clients
- Gracefully shuts down (clients auto-reconnect after restart)
- Atomic updates with automatic rollback on failure
Auto-update can be disabled in server settings if you prefer manual updates.
Server Administration
Administer your server through the client's built-in admin panel:
- User Management: Promote/demote users, ban/kick, manage trust levels
- Channel Management: Create, edit, delete channels and categories
- Server Settings: Configure server name, E2E encryption mode, auto-update
- Trust System: 5-level trust system (Untrusted, Verified, Moderator, Admin, Owner)
Troubleshooting
Cannot connect to server
- - Ensure UDP port 5000 is open in your firewall
- - Check if the server is running:
systemctl status squadchord - - View logs:
journalctl -u squadchord -f - - If using a VPS, check the cloud provider's firewall/security groups
Server crashes on startup
- - Verify the binary is for your architecture (x64 vs ARM64)
- - Check permissions:
ls -la /opt/squadchord/ - - Ensure the binary is executable:
chmod +x /opt/squadchord/server
File transfers not working
- - Ensure TCP port 5001 is open
- - File transfers use HTTP, check if the endpoint is reachable
Data & Backups
Server data is stored in the working directory:
- Linux:
/opt/squadchord/ - Windows:
C:\SquadChord\
Files stored:
server.db- SQLite database with users, channels, settingsuploads/- Uploaded files and attachmentsserver.old- Previous binary (kept for rollback after auto-update)
To backup your server, simply copy the entire server directory.