deSEAsion documentation

Getting started

Installation

This web application is packaged using docker compose. All the following instruction consider you have a working docker/docker compose installation on your system. If you need any help setting up docker, please visit the docker doc.

That’s it! This repository contains an example docker-compose.yml file which you can modify according to your need:

services:
  web:
    image: registry.gitlab.com/decide.imt-atlantique/deseasion/frontend:latest
    restart: always
    ports:
      - 80:80
    depends_on:
      - backend
  backend:
    image: registry.gitlab.com/decide.imt-atlantique/deseasion/backend:latest
    restart: always
    environment:
      - DB_URI=postgresql://aileron:pass@database/aileron
      - CELERY_BROKER_URL=redis://redis:6379/0
    volumes:
      - backend-instance:/app/instance
    depends_on:
      - database
      - worker
  database:
    image: registry.gitlab.com/decide.imt-atlantique/deseasion/database:latest
    restart: always
    volumes:
      - postgres_data_prod:/var/lib/postgresql/data/
    environment:
      - POSTGRES_USER=aileron
      - POSTGRES_PASSWORD=pass
      - POSTGRES_DB=aileron
  redis:
    image: redis:7.4.2
    restart: always
  worker:
    image: registry.gitlab.com/decide.imt-atlantique/deseasion/worker:latest
    restart: always
    environment:
      - DOCKER_HOST=tcp://docker:2376
      - DOCKER_CERT_PATH=/certs/client
      - DOCKER_TLS_VERIFY=1
    volumes:
      - backend-instance:/app/instance
      - docker-certs:/certs/client:ro
    depends_on:
      - redis
      - docker
  change-vol-ownership:
    # We can use any image we want as long as we can chown
    image: ubuntu:24.04
    # Need a user priviliged enough to chown
    user: "root"
    volumes:
      # The volume to chown
      - docker-certs:/tmp/change-ownership
    command: chown -R 1000:1000 /tmp/change-ownership
  docker:
    image: docker:28.0.4-dind-rootless
    restart: always
    privileged: true
    environment:
      - DOCKER_TLS_CERTDIR=/certs
    volumes:
      - docker-certs:/certs/client
    depends_on:
      change-vol-ownership:
        # Wait for the ownership to change
        condition: service_completed_successfully
volumes:
  postgres_data_prod:
  backend-instance:
  docker-certs:

This file needs environment variables, they can be supplied by a .env file present in the same directory. Here is a working example:

# PostgreSQL aileron DB settings
POSTGRES_USER="aileron"
POSTGRES_PASSWORD="pass"
POSTGRES_DB="aileron"

Alternatively, you can build the required docker images to run deSEAsion:

git clone https://gitlab.com/decide.imt-atlantique/deseasion.git
cd deseasion
make docker

You can also replace the git clone command by downloading the source code archive from one of our release: Deseasion Releases

Any information regarding the application configuration can be found in installation section.

Starting the application

To start in daemon mode (better for production):

docker compose up -d

To start in the terminal (will be shut down once the terminal is stopped):

docker compose up

That’s it! You only need to wait around a minute for the whole application to start.

Using the application

Add users

docker compose exec -it backend flask user create

Using the application

Go to your browser and get the application page.

Check the backend API

Go to your browser and get the Swagger-UI.

Distribution

This project is distributed in multiple ways:

  • as source code: in which case the above copyright notice is applied

  • as a python package deseasion-backend: in which case the above copyright notice is applied

  • as docker images (see container registry): in each published docker images, licenses (including third-party) and copyright notices are gathered inside the container in the /licenses folder

Indices and tables