Skip to main content

Hosting Your Own Relay

Deployment Options​

The relay server can be deployed using either Docker containers or directly on the host machine.

Prerequisites​

Docker Deployment​

Direct Deployment​

Setup Instructions​

  1. Clone the repository and navigate to the project directory:

    git clone https://github.com/borellion/relay
    cd relay
  2. Configure environment variables:

    cp .env.sample .env
    # Edit .env with your configuration
  3. Start the server using your preferred deployment method:

    Docker Deployment:

    docker compose up -d

    Direct Deployment:

    cargo run -r

Network Configuration​

Port Configuration​

Ensure your server exposes the necessary port for the relay service, which is configured in your .env file.

Nginx Reverse Proxy Setup​

Below is a sample configuration for running the relay behind an Nginx reverse proxy:

# HTTP redirect to HTTPS
server {
listen 80;
server_name <YOUR_HOST_NAME_HERE>;
return 301 https://$host$request_uri;
}

# HTTPS configuration
server {
listen 443 ssl;
server_name <YOUR_HOST_NAME_HERE>;

# SSL configuration
ssl_certificate <PATH_TO_YOUR_SSL_CERT>;
ssl_certificate_key <PATH_TO_YOUR_SSL_CERT_KEY>;
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_prefer_server_ciphers on;

# Proxy configuration
proxy_intercept_errors on;

location / {
client_max_body_size 20M;
proxy_pass http://localhost:8080; # Adjust port as needed
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}