Skip to main content

Self-Hosting ValoSpectra

This guide will assume you're using Spectra in a local environment. If you're intending on deploying Spectra to a Server, however, the process will be very similar and only differ in some URLs and individual networking setups, which are hard to cover.

Setting up your own instance of Spectra

Prerequisites

Setting up the directory structure

Create a directory in which Spectra will be running. In this directory, create a directory called keys and a directory called config.

It should look like this:

.
├── docker-compose.yml
├── config
│ └── config.json
└── keys

Example Docker compose file

Inside the root directory you want to use for Spectra, create a file named docker-compose.yml with the following contents:

---
services:
server:
image: "ghcr.io/valospectra/server:latest"
ports:
- "5100:5100"
- "5101:5101"
- "5200:5200"
environment:
INSECURE: true
REQUIRE_AUTH_KEY: false
volumes:
- ./keys:/app/keys
frontend:
image: "ghcr.io/valospectra/overlay:latest"
ports:
- "3000:80"
volumes:
- ./config:/usr/share/nginx/html/assets/config/

For possible environment variables for use, see Possible Environment Variables

Configuration file

In order to configure some values for use in the Spectra-Frontend, create a file named config.json inside the config directory.

An example of the config here:

{
"serverEndpoint": "http://localhost:5200",
"redirectUrl": "https://valospectra.com",
"sponsorImageUrls": ["/assets/misc/logo.webp"],
"sponsorImageRotateSpeed": 5000,
"attackerColorPrimary": "#b82e3c",
"attackerColorSecondary": "#ff4557",
"attackerColorShieldCurrency": "#ff838f",
"defenderColorPrimary": "#25ac79",
"defenderColorSecondary": "#61eab6",
"defenderColorShieldCurrency": "#61eab6"
}

Possible Environment Variables

Server

Environment VariableDescriptionPossible ValuesDefault Value
INSECUREThis option determines if the Spectra-Server is going to use HTTPS with the provided SSL certificates.true/falsefalse
SERVER_KEYThe path inside the Docker container to use as the SSL key file./app/keys/server.key
SERVER_CERTThe path inside the Docker container to use as the SSL certificate file./app/keys/server.crt
REQUIRE_AUTH_KEYIf you're self-hosting your server, you might not want it to require using a Key. In this case, set this to false.true/falsetrue
USE_BACKENDtbd