On-premise deployment

On-premise installation

For an on-premise installation you will need a server which can run docker and docker_compose. For windows servers, installation of docker_compose might be difficult see: https://docs.docker.com/compose/install/ (opens in a new tab) .

Prerequisites to Dessia’s platform installation

  • The user must have access to persistent Administrator rights on his computer in order to install docker engine and docker desktop on his computer

  • The user need to install WSL with the docker install

    wsl --install
    wsl --version

Deployment without internet connection

For deployment without an internet connection, follow these steps:

Step 1: Install Docker

  • 1.1: Without Internet Connection

    • Launch the Docker Desktop Installer: Docker Desktop Installer.exe.

    • Ensure that the WSL installation is activated and install Docker with the recommended configuration.

    • Verify the installation of both Docker Desktop and Docker using commands on the command line terminal.

      docker --version

Step 2: Load Images and Check Loading

  • Use the command line terminal to load the necessary images using the following commands. NB: Think about changing images names depending on the real image file names. For example, if backend file is named “dessia_backend_stable.tar”, change “backend.tar” for “dessia_backend_stable.tar”.

    docker load -i backend.tar
    docker load -i frontend.tar
    docker load -i mariadb.tar
    docker load -i mongo.tar
    docker load -i pypiserver.tar
  • Check if all the required images are loaded using the following command in your terminal:

    docker image ls
    docker info

    You may obtain such a result (image names, tags and ids are given as example here):

    Check images

  • If at least one of these lines shows a <none> value (as illustrated below), follow the following process:

    Check images none

    • Identify through the image names, the repository for which name and tag are missing. Copy in your clipboard the corresponding image id (in the example above, it’s: 8d197fdf5126)
    • Enter the command below in your terminal with the following details:
      • image_id: Paste the image id identified above
      • new*name: Choose an easy name to identify the repository *(for example: backend or frontend, etc.)_
      • new*tag: Choose an easy tag to identify *(for example: version number or “latest”)_
    docker tag "image_id" "new_name":"new_tag"
    "As an example: docker tag 8d197fdf5126 dessia_backend:latest"
    • Report the name and tag you’ve just entered in the corresponding repository in the docker-compose.yml file (as illustrated below for the example described above):

      Docker compose yml

    • Repeat the process for each repository concerned with the <none> value before continuing the installation.

    • Check that everything is alright by entering once again the following command line in your terminal

      docker image ls

Step 3: Copy to Deploy Folder

  • Copy the Docker Compose YML files and the my.cnf file to the designated deployment folder. Ensure this is not a temporary folder.

Step 4: Start Services

4.1: Without Internet Connection

Before executing the following command, ensure that the names and tags of the images you provided in the docker-compose.yml file match the names and tags of the images you have loaded.

docker image ls
REPOSITORY                             TAG                          IMAGE ID       CREATED         SIZE
dessia-platform-frontend               localhost_5000-v0.18.8       dbbbd3f196a2   22 hours ago    173MB
dessia_platform_front                  v0.18.8                      dbbbd3f196a2   22 hours ago    173MB
registry.dessia.ovh:5000/dessia-back   stable-v0.20.2-2-g7253802d   1392942b1312   12 days ago     1.21GB
dessia_platform_back_end               v0.20.2                      1392942b1312   12 days ago     1.21GB
pypiserver/pypiserver                  latest                       631cc9c4cba5   2 months ago    63.1MB
mongo                                  4                            af86910c16da   14 months ago   438MB
mariadb                                10.7                         159a32906318   14 months ago   415MB
mariadb                                latest                       7d424d763ecb   14 months ago   384MB
  • Run the deployment command without an internet connection using:

    docker-compose -f docker-compose.yml -f docker-compose.no-network.yml up -d

Step 5: Put PyPi Packages (only without internet connection)

  • Copy all files from the 'pypi-packages' folder into the dedicated volume path: NB: Copy directly the files (not the folder containing the files) in the path

  • Replace 'actual_folder_name_backend-packages' with the correct folder name ending with '_pypi-packages' (actual folder name is the same name with the directory where you put your docker images, docker_compose.yml …).

Step 6: Start the Platform, Create Your Account, and Load Dessia_Common

  • Start the global container and navigate to the frontend page.
  • Create your platform account. As the first user to create an account, you will automatically be assigned the Admin role.
  • Load your 'dessia_common' wheel file in ADMIN/Applications and restart the platform.
  • On the ADMIN page, verify if 'Dessia_Common' has a green illuminated button, indicating successful loading and activation.
  • Load all the other wheel files (one by one starting with volmdlr and plot_data) in the platform. Restart the platform for each step.


If encountering issues during deployment, consider the following troubleshooting steps:

  • Verify the installation steps for Docker, ensuring correct configuration and dependencies.

  • Check if all required images are properly loaded using the 'docker image ls' command.

  • Ensure that files are correctly copied to the deployment folder.

  • Verify the command used for starting services matches the intended configuration.

  • Confirm the correct path and placement of PyPi packages without internet connection.

  • Check for any error messages or logs provided by Docker or related commands

    docker container ls
    docker container logs container_id (container_name)