
Docker¶
Docker is ideally the installation route you want to go. Docker enables us to run SeAT on any platform capable of running docker itself (which includes Windows!). Additionally, upgrades and service maintenance are really low effort as you don't have to care about any dependencies. All of it is maintained within a docker stack, DockerHub and the GitHub Container Registry.
Windows owner recommendation
If you plan on running Docker on Windows, for the best performance it is suggested that you run Docker using the Windows Subsystem for Linux 2 (WSL2) backend, available starting in Windows 10/Windows Server 20H1 (build 2004) releases.
Windows owner special installation path
If you are using Docker on Windows, you will need to use the Manual Deployment option below.
Tip
Before starting the installation process, be sure you read this complete document first. It will help you understand all the steps from an installation process.
If you feel like docker might not be your cup of tea, checkout some of the other getting started guides that are available.
Eve Application and ESI
SeAT uses CCP's ESI service in order to retrieve EVE Online-related information. Before you can make any authenticated calls to ESI, you have to register a third-party EVE application on the developers portal. This is an absolute must for SeAT to be of any use. The configuration of this step is covered in a later stage of the documentation.
Internal Container Setup Overview¶
The setup for SeAT's docker installation orchestrated using docker-compose. With docker-compose, we can use YAML files to define the entire stack complete with all the dependencies required to run SeAT. A pre-built and recommended compose file (which is also used by the bootstrapping script) is hosted in the seat-docker repository here.
The official SeAT repository for Docker is shipped with a total of 4 YAML files, allowing you both flexibility and understandability of the overall stack. A high-level overview of its contents is:
- A main
docker-compose.ymlfile in which are listed SeAT services (frontto serve web ui,workerto process jobs,schedulerto manage repetitive tasks andcacheto store jobs queue) - A database
docker-compose.mariadb.ymlfile in which is listed amariadbservice - this way, you can replace mariadb by another supported database engine - A Traefik
docker-compose.traefik.ymlfile in which is listed atraefikservice - this way you can simply and safely server your SeAT frontend to the rest of the world - An alternative to Traefik
docker-compose.proxy.ymlfile in which is adaptedfrontSeAT container to be server behind a reverse proxy of your choice - A volume called
mariadb-dataandseat-storageis defined. These are the most important volumes as they contain all SeAT data. You should configure a backup solution for them! - The environment is configured using a top-level
.envfile. - Only one port is exposed by default. This is
tcp/8080. It can be connected to in order to access the SeAT web interface. - When using the stack with Traefik (which is the easier and recommended approach), ports
tcp/80andtcp/443are exposed andtcp/8080remain unbound. - All containers are configured to restart on failure, so if your server reboots or a container dies for whatever reason it should automatically start up again.
The table bellow is listed overall consumed Docker image, including SeAT custom one - together with their source repository.
| Image Name | Image Repository |
|---|---|
mariadb:10.11 |
https://hub.docker.com/_/mariadb/ |
redis:5-alpine |
https://hub.docker.com/_/redis/ |
traefik:2.10 |
https://hub.docker.com/_/traefik |
ghcr.io/eveseat/seat:5 |
https://github.com/eveseat/seat-docker/pkgs/container/seat |
SeAT Docker Installation¶
Depending on whether you already have docker and docker compose already installed, you may choose how to start the installation. If you already have the required tooling installed and running their latest versions, all you need to do is download the latest SeAT Docker template archive to get started.
Automated Setup Script¶
If you do not have the required software installed yet, consider running the bootstrap script that will check for docker and docker compose, install it and start the SeAT stack up for you. The script can be run with:
Once the script is finished, you can skip to the monitoring the stack section of this guide.
If you don't want to run this script, follow along in the next section of this guide.
Manual Deployment¶
Docker Download¶
If you do not have docker, install it now.
Under Linux, you can achieve this action by using the following command as root:
Under Windows, you can achieve this action by downloading and installing Docker Desktop.
Docker-compose Download¶
If you do not have docker compose, install it now with the following command as root (Docker Compose is included with Docker Desktop on Windows):
Docker compose working directory¶
With docker and docker compose ready, create yourself a directory in /opt with mkdir -p /opt/seat-docker and cd to it. Remember this directory as you will need to come back to it often.
On Windows, create the C:\seat-docker directory with mkdir C:\seat-docker and cd to it.
SeAT docker-compose.yml and .env File¶
Then, download the SeAT Docker template archive with:
Next, decompress the template archive:
Next, we will rename the file .env.example to .env in the root directory of seat-docker
Next, we will generate a unique application key - this is used internally for encryption:
SeAT docker configuration¶
Open up the .env file in a text editor and fill in a few of the configuration items needed.
PROXY_BACKEND_HTTP_PORTadapt to any integer of your convenience between 1 and 65535 in case you plan to serve SeAT behind a reverse proxy.TRAEFIK_ACME_EMAILadapt with your own e-mail address in case you plan to serve SeAT behind Traefik.SEAT_DOMAINshould be set to the domain your installation lives on and on which SeAT UI will be served.DB_PASSWORDmust be adapt with a strong password of your own - it will be used as SeAT credential for its database.
Warning
The DB_PASSWORD value have to and must be changed only once - before any start of the overall stack.
As soon as the database container is created, SeAT user account is initialized with the DB_PASSWORD value.
Changing it after the initial startup will prevent the stack to boot.
Also, at the initial startup, the root password from the database container will be shown in logs. You should consider taking a note of it - otherwise you will no longer have a way to recovery of a critical outage (ie: misconfiguration, etc...)
Finally, in case you plan to serve SeAT using Traefik, create an ACME configuration file with:
Info
SeAT docker template is shipped with Traefik to hide your container behind a proxy and securing traffic up to it. In case you want to manage traffic proxying and certification on your own, you must use docker-compose.proxy.yml file on startup.
Warning
The location of the docker-compose.yml and .env files are important. You need to cd back to the directory where these are stored in order to be able to execute commands for this stack at a later stage.
Also, be sure you provide a valid e-mail address as it will be used to register your account against Let's Encrypt in case you plan to serve SeAT with Traefik. For those unfamiliar with this, it's CA that provides valid certificates for free.
ESI Configuration¶
As mentioned at the start of the guide, it is necessary for you to configure ESI. For instructions on how to do this, please refer to the ESI Setup Guide.
With the configuration files ready, start up the stack with:
Monitoring the Stack¶
Knowing what is going on inside your containers is crucial to understanding how everything is running as well as useful when debugging any problems that may occur. While the containers are starting up or have been running for a while, you can always cd to the directory where your docker-compose.yml file lives and run the logs command to see the output of all the containers in the stack. For example:
These commands will cd to the directory containing the stacks docker-compose.yml file and run the logs command, showing the last 10 log entries and then printing new ones as they arrive. If you leave away the --tail 10part, you can view all logs since the container startup.
Configuration Changes¶
All the relevant configuration lives inside the .env file, next to your docker-compose.yml file. Modify their values by opening it in a text editor, making the appropriate changes, and saving it again.
Once that is done, restart the container environment:
Success
You made it! Use a browser and browse to the domain / subdomain of your server to access SeAT!