Getting Started with Speedify Self-Hosted Server

This guide will walk you through setting up your own Speedify Self-Hosted Server. The process is straightforward, and you'll be up and running in no time.

What You'll Need

Before getting started, make sure you have:

  • A server with a static, publicly-accessible IP address – This is essential for clients to connect reliably
  • At least 2 CPU cores
  • 4GB of RAM
  • 20GB of storage
  • Ubuntu (preferred) – Though Windows, macOS, and other Linux distributions should work fine since we're using Docker

Step 1: Install Docker

Since Speedify Self-Hosted Server runs in Docker containers, you'll need to install Docker first.

Follow the official Docker installation instructions for your distribution: https://docs.docker.com/engine/install/

For Ubuntu specifically, you'll want to follow the "Install using the apt repository" method for the smoothest experience.


For Windows or macOS

Download and install Docker Desktop: https://www.docker.com/get-started/

After installation, make sure Docker is running by opening a terminal and typing:

docker version      

You should see the Docker version information printed out.


Verify Your Setup

Before proceeding, confirm that:

- Docker is installed and running

- Your server's static IP address is configured and accessible

- You have sufficient system resources available


Step 2: Create Your Docker Compose Configuration

Now that Docker is installed, you'll need to create a configuration file that tells Docker how to run your Speedify server.

Create the docker-compose.yml File

In your preferred directory (we recommend creating a dedicated folder like ~/speedify-server  ), create a file called docker-compose.yml   with the following contents:

services:
  speed-server:
    platform: linux/amd64
    image: speedify/ss-manager:latest
    volumes:
      - ${DOCKER_SOCK_PATH:-/var/run/docker.sock}:/run/docker.sock
      - ./.local/ssm/analytics:/var/log/speedify/analytics
      - ./.local/ssm/var/log/speedify/servers:/var/log/speedify/servers
      - ./.local/ssm/var/run/speedify/servers:/var/run/speedify/servers
      - /proc:/host-proc:ro
      - ./.local/ssm/var/lib/ssm:/var/lib/ssm
    ports:
      - 8443:443
    environment:
      ALLOCATION_TYPE: ondemand
      ENABLE_SESSION_TOKENS: "true"
      DIRECTORY_URI: "https://directory.speedifynetworks.com"
      SELF_HOSTED_MODE: "true"
      PUBLIC_API_PORT: "8443"
      API_HTTP_PORT: "80"
      API_HTTPS_PORT: "443"
      DOCKER_REPO_PREFIX: "speedify"
    restart: always

Quick Tips

  • Linux/macOS: You can create this file using your favorite text editor (nano  , vim  , or vi  ):

nano docker-compose.yml       Paste the contents, then save and exit.

  • Windows: Use Notepad, VS Code, or any text editor. Make sure to save it as docker-compose.yml       (not .txt  ).

What This Configuration Does

This file sets up your Speedify server with:

- Port 8080 exposed for client connections (mapped to the container's internal HTTPS port)

- Automatic restarts if the container stops

- Persistent storage for logs and server data in the .local/ssm   directory

The server will automatically create the necessary subdirectories when it starts for the first time.


Step 3: Launch Your Speedify Self-Hosted Server

You're all set! Now let's bring your server online.

Start the Server

From the directory containing your docker-compose.yml   file, run these commands:

docker compose pull      

This downloads the latest Speedify server container image. It may take a minute or two depending on your connection speed.

docker compose up -d      

This starts your server in detached mode (running in the background). The -d   flag means it won't tie up your terminal.

docker compose logs -f      

This shows you the live logs from your server. You'll see startup messages and connection activity as clients connect.

What You'll See

The logs will display real-time information about: - Server initialization - Client connections - Any errors or warnings that need attention

To exit the logs view, press Ctrl+C  . This only stops viewing the logs; your server keeps running in the background!

Verify Everything is Running

After starting the server, you can check its status anytime with:

docker compose ps      

You should see the speed-server   service listed as "Up" or "running".

Managing Your Server

  • View logs again: docker compose logs -f      
  • Stop the server: docker compose down      
  • Restart the server: docker compose restart      
  • Update to latest version: docker compose pull && docker compose up -d      

Step 4: Activate Your Self-Hosted Server

Now that your server is running, you need to activate it with a license.

Find Your Activation QR Code

In the logs you're viewing, look for a section that displays an Activation QR Code and URL. It will look something like this:

=== QR Code for Activation URL ===
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
█ ▄▄▄▄▄ █▄▄██████ ▀ ▄▄▄█ ██ ▄▄▄▄▄ █
█ █   █ █ ▀█ ▄    ▀█▀▄█▀▄▄█ █   █ █
[... QR code continues ...]
Activation URL: https://my.speedify.com/activate?activationCode=556628&role=server
Activation Code: 556628
=====================================

Activate Your Server

You have two options to activate:

Option 1: Scan the QR Code (Mobile)

Simply scan the QR code displayed in the logs using your mobile device's camera or a QR code scanner app.

Option 2: Use the Activation URL (Desktop/Mobile)

Copy the Activation URL from the logs and open it in your web browser.

Complete Activation

Once you follow the QR code or URL:

  1. Sign in to your existing Speedify account, or create a new account if you don't have one yet
  2. Complete the activation process

Purchase Your License

During or after activation, you'll need to purchase a Self-Hosted Server license:

https://order.speedify.com/checkout/?plan=speedify-selfhosted-server-monthly

Wait for Activation to Complete

After purchasing and linking your license, you have two options:

Option 1: Wait for Automatic Refresh (Easy)

Wait up to 15 minutes for the automatic login refresh cycle. The server will detect your new license and complete activation automatically.

Option 2: Restart Immediately (Faster)

Press Ctrl+C   to exit the log view, then restart your server:

docker compose down && docker compose up -d && docker compose logs -f      

Confirmation

Once activation is successful, you'll see a message in the logs indicating that your server should now appear in the server list in the Speedify app.


Success! Your Self-Hosted Server is now fully activated and ready to use. Open your Speedify app to see your new server in the available servers list.


Troubleshooting

Common Issues

Server won't start

- Check that Docker is running: docker ps    

- Verify port 8080 is not already in use

- Review logs for specific error messages: docker compose logs      


Activation not working

- Ensure you've completed the purchase process

- Check your internet connection

- Try the restart method to force a refresh


Can't see server in Speedify app

- Confirm activation completed successfully in the logs

- Make sure you're signed into the same account used for activation

- Restart the Speedify app


Need Help?

If you run into any issues:

- Check the logs first: docker compose logs    

- Ensure your firewall allows traffic on port 8080

- Verify your server's public IP is accessible

- Contact support@speedify.com