This guide attempts to explain how to manually install SeAT onto an Ubuntu Server. A small amount of Linux experience is preferred when it comes to this guide, although it is not entirely mandatory.
This guide has been written targetting Ubuntu. However, you can use it to deploy SeAT on any linux distribution. Just be sure you adapt commands to targetted distribution (mostly those related to the package manager).
Before starting to do anything, be sure you read the complete workflow once. It will help you to understand all steps from the installation process.
Eve Application and ESI
SeAT consumes 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.
We are going to assume you have root access to a fresh Ubuntu Server. Typically access is gained via SSH. All of the below commands are to be entered in the SSH terminal session for the installation & configuration of SeAT. If the server you want to install SeAT on is being used for other things too (such as hosting MySQL databases and or websites), then please keep that in mind while following this guide.
Packages are installed using the
aptitude package manager as the
Before we get to installing SeAT, lets ensure that your operating system is up to date. We can do that with basics :
apt-get updateto refresh the repositories cache.
apt-get full-upgradeto update any installed packages.
rebootin order to ensure any updated software is the current running version.
apt-get autoremove(after the reboot) to cleanup any unneeded packages.
SeAT relies heavily on a database to function. Everything it learns is stored here, along with things such as user accounts for your users. It comes without saying that database security is a very important aspect too. So, ensure that you choose very strong passwords for your installation where required.
This document describes using MariaDB, but you can use MySQL as well. Just double check the requirements.
We need to ensure that we have the latest MariaDB installed. To help with this, MariaDB provides an official repository to get the latest versions. Let's add this repository with:
With the repository now setup, lets install the database server:
During the installation, you may be asked to set a password for the
root MariaDB user account.
Make sure you set a long, strong password and remember it. It will be needed for the next step.
Next, we are going to secure the database server by removing anonymous access and setting a
root password (if you have not been prompted for it yet).
root password should not be confused with the operating systems
root passwords. They are both completely different.
They should also not have the same password.
To secure the database, run:
This will ask you a series of questions where you should generally just answer yes to. If you already set a
root password in the previous step then you dont have to set it again, otherwise, make sure you choose a long, strong password for the
root account. An example run is shown below:
That concludes the installation of the database server and securing it.
Next, we need to create an actual user and database for SeAT to use on the newly installed server. To do this we use the
mysql command line client and enter a few commands as the
root user to create the database and the user that will be accessing the server. Let get to it.
Fire up the
mysql client as root by running:
This will prompt you for a password. Use the password you configured for the
root account when we ran
mysql_secure_installation. This will most probably be the last time you need to use this password :)
If the password was correct, you should see a prompt similar to the one below:
Create a new database for SeAT to use with:
The output should be similar to the below:
Next, we need to create the user that SeAT itself will use to connect and use the new
Of course, you need to replace
s_p3rs3c3r3tp455w0rd with your own unique and strong password.
Successfully running this should present you with output similar to the below:
In the example above, we have effectively declared that SeAT will be using the database as
Finally, we will flush the database server privileges:
That concludes the database server setup. You can exit the prompt with
Remember the password for the
seat database user as we will need it later to configure SeAT.
Since SeAT is written primarily in PHP, we will need to install PHP packages. Ubuntu based systems can make use of the ondrej PPA which is a very popular repository used for specific PHP versions.
Depending on the version of Ubuntu you are using, a release specific repository URL should be used for the PPA. Select the tab applicable to your Ubuntu version and run the commands within.
Next, we will have to download the new repositories GPG signing key and add it into our keychain
With the new repository configured, update the package lists with:
Finally, install the required PHP packages with:
SeAT makes use of Redis as a cache and message broker for the Queue back end. Installing it is really easy. Do it with:
By default, redis is making backup from its database - so it ensure integrity in case of failure. However, in certain condition, like power outage, this backup might be unprocessable and avoid redis to run.
Since we don't store anything critical in it, you may want to disable this. To do so, edit the configuration file
nano /etc/redis/redis.conf and search line
appendonly no, change it for
If you are on a small server, You may also want to limit the part of memory used by redis (by default, it will consume all available memory).
To do so, into the redis configuration file, search line
# maxmemory <bytes> and change it for
maxmemory xGB where
x is the memory limit you want to set.
Excellent progress! All of the operating system level requirements are now met and we are almost ready to install SeAT itself. The only thing that is outstanding is the package manager called
composer as well as the
git client. The combination of
git will let us download the SeAT source code from Github and install it locally.
Thats it. Lets install SeAT! By default, we suggest you run SeAT from within
/var/www/seat. As part of the installation, the
seat directory will be created for us, but we will need to create
/var/www for now as we have not yet configured the web server.
www directory with:
cd to the new
/var/www directory with:
With all of the prerequisites installed as well as our
www directory ready we can finally download SeAT. Do that with:
Once the download is done, you should have seen output such as:
Writing lock file Generating optimized autoload files > Illuminate\Foundation\ComposerScripts::postAutoloadDump > @php artisan package:discover Discovered Package: darkaonline/l5-swagger Discovered Package: eveseat/api Discovered Package: eveseat/console Discovered Package: eveseat/eveapi Discovered Package: eveseat/notifications Discovered Package: eveseat/services Discovered Package: eveseat/web Package manifest generated successfully. > @php artisan key:generate Application key [base64:CmhqYNkaIcHo8nYC8LiEWa3U5/+BiTLih5dZftxlV2k=] set successfully.
You may have noticed a warning about
composer running as
root. For now this can be safely ignored. Post the installation of the SeAT source code, we need to fix up the permissions of the downloaded files. Do that with:
This will ensure that the web server, cron jobs and workers have access to the source code as well as logs.
With SeAT downloaded, we need to configure it. There are a number of configuration tasks needed. These include editing the applications
.env file as well as running some commands that setup and seed the database. A configuration value reference can be found here.
The first task would be to configure the applications database connection. Open the file located at
/var/www/seat/.env with something like
nano and update the database options with your values. Typically, only the password would really need to be updated. If you are making use of an existing database somewhere else over the network, update the applicable fields such as
Database Migrations and Seeds¶
Publish the assets and database migrations with:
Run the database migrations with:
Seed the SeAT schedule with:
EVE Sde Update¶
To update to the latest SDE within SeAT, run:
To configure the Horizon process monitor, first install
Next, we will create a dedicated configuration file which will ask supervisor to keep an eye on Horizon. This file will live in
/etc/supervisor/conf.d/seat.conf. Create this file with its recommended configuration with:
Finally, reload supervisor to apply the new configuration with the following command:
A crontab entry is needed for SeAT. While simple in implementation, this crontab entry simply helps the application invoke a job checker very minute. The actual schedule is stored within SeAT itself and managed entirely via the Web Interface.
To configure the crontab entry required for SeAT, run the following commands:
Next, add this crontab for the
www-data user with:
If you want to confirm that the crontab successfully installed, you can check it with
crontab -u www-data -l.
You almost made it to the end! Just one more step.
The SeAT web interface requires a web server to serve the HTML goodies it has. We highly recommend you to use
nginx and will be covered in this document. You don't have to use it, so if you prefer something else, feel free.
Together with an
nginx installation we also need to install
php-fpm to handle the PHP execution for us. Let's install
With the webserver installed, we need to configure
nginx to serve SeAT. For that, a configuration file needs to be created that will tell
nginx where to find
php-fpm as well as where the assets are for SeAT.
The configuration file will live at
/etc/nginx/sites-available/seat. It can be created with the following command:
The code block above should not be copied directly into a file. It is a script and should be pasted directly into the linux terminal. It will create the nginx config for you. If you create the file yourself with the above content then the file will not be valid and you will receive errors from nginx.
The configuration file as is at
/etc/nginx/sites-available/seat itself won't be loaded by
nginx yet. Storing configuration files in a
*sites-available* directory is simply a convention used to allow administrators to quickly add & remove sites if needed. To apply the changes made by the new configuration file it needs to be symlinked to a
Let's symlink to the new configuration and drop the default one as a hardening exercise at the same time:
php-fpm for the new changes to take affect:
As mentioned at the start of the guide, it is necessary for you to configure ESI. For instructions how to do this, please refer to the ESI Setup Guide.
You may want to serve your SeAT installation over SSL (using HTTPS) - which is a recommanded behavior. There are many way to do it, you can have a look on Let's Encrypt which provide you valid certificates for free. Put an eye to their Certbot Documentation.
You made it! Use a browser and browse to the IP address / hostname of your server to access SeAT!