Skip to content

installation

Ferdi ÜNAL edited this page Jan 25, 2026 · 3 revisions

Installation Guide

Comprehensive installation instructions for Soketi across different platforms and environments.

Table of Contents

System Requirements

  • Operating System: Linux, macOS, or Windows
  • Memory: Minimum 512MB RAM (2GB+ recommended for production)
  • CPU: 1+ cores (2+ cores recommended for production)
  • Network: Open ports 6001 (WebSocket) and 9601 (Metrics)

For building from source:

  • Rust: 1.70 or higher
  • Cargo: Latest version

Docker Installation

Docker is the recommended way to run Soketi for most use cases.

Pull the Image

docker pull quay.io/soketi/soketi:latest-16-alpine

Run with Default Configuration

docker run -p 6001:6001 -p 9601:9601 \
  -e SOKETI_DEFAULT_APP_ID=app-id \
  -e SOKETI_DEFAULT_APP_KEY=app-key \
  -e SOKETI_DEFAULT_APP_SECRET=app-secret \
  quay.io/soketi/soketi:latest-16-alpine

Run with Custom Configuration

Create a config.json file and mount it:

docker run -p 6001:6001 -p 9601:9601 \
  -v $(pwd)/config.json:/app/config.json \
  quay.io/soketi/soketi:latest-16-alpine \
  --config /app/config.json

Using Docker Compose

Create a docker-compose.yml:

version: '3.8'

services:
  soketi:
    image: quay.io/soketi/soketi:latest-16-alpine
    ports:
      - "6001:6001"
      - "9601:9601"
    environment:
      - SOKETI_DEFAULT_APP_ID=app-id
      - SOKETI_DEFAULT_APP_KEY=app-key
      - SOKETI_DEFAULT_APP_SECRET=app-secret
    volumes:
      - ./config.json:/app/config.json
    command: --config /app/config.json

Start with:

docker-compose up -d

Building from Source

Prerequisites

Install Rust and Cargo:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Clone and Build

# Clone the repository
git clone https://github.com/soketi/soketi.rs.git
cd soketi.rs

# Build in release mode
cargo build --release

# The binary will be at target/release/soketi

Run the Binary

./target/release/soketi --config config.json

Install System-wide (Optional)

sudo cp target/release/soketi /usr/local/bin/
soketi --version

Pre-built Binaries

Download pre-built binaries from the GitHub Releases page.

Linux

# Download the latest release
wget https://github.com/soketi/soketi.rs/releases/latest/download/soketi-linux-x64

# Make it executable
chmod +x soketi-linux-x64

# Run it
./soketi-linux-x64 --config config.json

macOS

# Download the latest release
curl -L https://github.com/soketi/soketi.rs/releases/latest/download/soketi-macos-x64 -o soketi

# Make it executable
chmod +x soketi

# Run it
./soketi --config config.json

Windows

Download soketi-windows-x64.exe from the releases page and run it from Command Prompt or PowerShell:

.\soketi-windows-x64.exe --config config.json

Platform-Specific Instructions

Ubuntu/Debian

# Install dependencies
sudo apt-get update
sudo apt-get install -y curl build-essential

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

# Build Soketi
git clone https://github.com/soketi/soketi.rs.git
cd soketi.rs
cargo build --release

CentOS/RHEL

# Install dependencies
sudo yum groupinstall -y "Development Tools"
sudo yum install -y curl

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

# Build Soketi
git clone https://github.com/soketi/soketi.rs.git
cd soketi.rs
cargo build --release

macOS

# Install Homebrew if not already installed
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

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

# Build Soketi
git clone https://github.com/soketi/soketi.rs.git
cd soketi.rs
cargo build --release

Verification

After installation, verify that Soketi is working:

Check Version

soketi --version

Start with Default Configuration

soketi

You should see output similar to:

[INFO] Starting Soketi server...
[INFO] WebSocket server listening on 0.0.0.0:6001
[INFO] Metrics server listening on 0.0.0.0:9601

Test Connection

Use curl to check the health endpoint:

curl http://localhost:6001/

Expected response:

{
  "version": "1.0.0",
  "status": "ok"
}

Next Steps

Related Resources

Clone this wiki locally