Docker Administration¶
Occasionally you will need to perform administrative tasks in your SeAT instance running within docker. Be it because you would like to configure TLS for the web interface, change the port of the SeAT webserver or simply generate an admin login URL, this guide aims to help you get familiar for the commands needed for this.
Many of the commands are exactly the same as those used in a bare metal installation, except for the fact that they are always prefixed with docker compose
and run from the same directory that you have the seat docker-compose.yml
file stored. If your docker-compose.yml
lives in /opt/seat-docker
, you will need to cd
to that directory first and then execute the docker compose
commands.
Info
With SeAT 5, we migrated from the docker-compose
command to docker compose
. Besides the name, they are fully compatible. If you are still on SeAT 4, you have to use docker-compose
instead of docker compose
for all actions. This applies to all actions, not just the ones listed on this page.
Container Status¶
For a quick, birds-eye view on the status of the containers within the SeAT docker stack, the following command may be run:
This should give you the name, entry point, current status and internal ports used within the docker network as output.
Configuration Changes¶
A dockerized installation of SeAT is primarily configured via a configuration file located at .env
. Configuration options such as your applications SSO secrets, SeAT's web server ports are amongst the many configuration options available in this file.
Making changes to this file requires the docker stack to be restarted so that the configuration may be applies. An example case would be when you configure SSO for your instance.
Once you have made a configuration change, save the .env
file and restart the stack by simply running the following command from the path where the docker-compose.yml
lives:
Live Container Logs¶
Getting an idea of what is happening inside of the containers may be useful for many things, including debugging any issues that may occur. All of the containers generate logs that can be viewed either in isolation, or all of the containers in the stack.
To view a single services' logs (seat-web
in this examples case), run:
All services can referenced by their name using docker compose
. You can see the service names here. At the time of writing this doc, the available services were: mariadb
, redis
, traefik
, seat-web
, seat-worker
and seat-cron
.
To view a single services' logs (front
in this examples case), run:
All services can referenced by their name using docker compose
. You can see the service names here and in the adjacent docker-compose.x.yml
files. At the time of writing this doc, the available services were: mariadb
, cache
, traefik
, front
, worker
and scheduler
.
To view all service logs at once, run:
Once you are done viewing the output, simply pressing ^C will exit the log viewer.
Application Logs¶
While most processes will output information to stdout (which is what you will see when you run docker-compose logs
), there are some app specific logs also generated.
Logs - Web UI¶
If you are getting HTTP 500's, or other exception when using the web interface, the best place to find the relevant logs will be in the seat-web
service, in the /var/www/seat/storage/logs
directory. To reach them, run docker-compose exec seat-web bash
. This will drop you into bash shell in the container:
If you are getting HTTP 500's, or other exception when using the web interface, the best place to find the relevant logs will be in the front
service, in the /var/www/seat/storage/logs
directory. To reach them, run docker-compose exec front bash
. This will drop you into bash shell in the container:
Next, cd to the logs directory with:
This directory should have daily log files for you to view.
Logs - Worker / Updaters¶
If you think your workers may be causing some exceptions, or you want to investigate why they may be failing, you can do so in the seat-worker
service. Just like for the web UI, get a bash shell and cd to the logs directory.
If you think your workers may be causing some exceptions, or you want to investigate why they may be failing, you can do so in the worker
service. Just like for the web UI, get a bash shell and cd to the logs directory.
The eseye log as well as Laravel log should help you debug what is going on.
Installing Plugins¶
SeAT provides the ability for third party developers to integrate with the core environment to extend its features and functionality. It is possible to install those plugins in a docker environment. Installing a plugin is relatively easy too. All you need to do is add the plugin name to your SEAT_PLUGINS
variable in the .env
file and run docker-compose up -d
again. The plugin will be read from the .env
file and installed as the application container starts.
For example. Open the .env
file (which is most probably at /opt/seat-docker/.env
) and edit the SEAT_PLUGINS
variable to include the package you want to install. In our example we use the pseudo package called user/seat-plugin:
Save your .env
file and run docker-compose up -d
to restart the stack with the new plugins as part of it. Depending on how big the plugin itself may be, this could take a few moments to complete.
You can monitor the installation process by running:
Database Backups and Restore¶
Backups. They are important and really simple to do. To perform a backup of the current database used within the docker stack, compressing and saving it to a file called seat_backup.sql.gz
, run:
To restore a backup to a new dockerized instance of SeAT, run: