Back to Home

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 zstd on 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

  1. Download the Windows server binary above
  2. Download zstd for Windows to decompress
  3. 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:

  1. Open the SquadChord client application
  2. Click "Add Server" or enter the server address
  3. Enter your server's IP address or hostname (e.g., your-server.example.com or 192.168.1.100)
  4. The default port is 5000 - only specify if using a different port
  5. 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, settings
  • uploads/ - Uploaded files and attachments
  • server.old - Previous binary (kept for rollback after auto-update)

To backup your server, simply copy the entire server directory.