Skip to content

Docker Compose deployment

Deploy Squest app

The docker-compose based deployment is a good way to easily and quickly test Squest. This way of deploying is also stable enough to be used in production.

To run the Squest application, execute the docker-compose.yml file:

docker-compose up

Then connect with your web browser to http://127.0.0.1:8080 The default admin account is admin // admin

The default export the port 8080. If you want to use the standard HTTP port 80, update the file docker-compose.override.yml.

services:
  nginx:
    ports:
      - "80:8080"

TLS

This section explains how to add TLS support on Squest when using docker-compose based deployment.

The TLS endpoint is managed by a reverse proxy on top of the default web server. This is not the only way to handle this part. Many tools like Nginx, Apache or Traefik could be used, and you are free to use the one you want instead of this proposed configuration. The only recommendation we have is to keep the default nginx web server as main http entrypoint.

Using Caddy

Caddy is a powerful webserver written in Go which provide a reverse proxy feature.

In the example below, we'll use self-signed certificate. Follow the official documentation if you want to configure it to use an ACME like "Let's Encrypt" instead.

Place your certificate and key file in the folder docker/certs.

E.g:

docker
├── Caddyfile
├── certs
│    ├── squest.crt
│    └── squest.key

Update the docker/Caddyfile with the FQDN of your server. By default, the FQDN is set to squest.domain.local

squest.domain.local {   # This line should match the ALLOWED_HOSTS in your Squest environment
    reverse_proxy nginx:8080
    encode gzip zstd
    tls /etc/ssl/private/squest.crt /etc/ssl/private/squest.key
    # or:
    # tls /etc/ssl/private/cert.pem

    log {
      level error
    }
}

Update the ALLOWED_HOSTS environment variable from the configuration file docker/environment_variables/squest.env to match your FQDN.

ALLOWED_HOSTS=squest.domain.local

Start docker compose with the TLS configuration:

docker-compose -f docker-compose.yml -f tls.docker-compose.yml up

The squest service is then reachable via HTTP and HTTPS standard ports (80/443).

  • http://squest.domain.local
  • https://squest.domain.local