# Full installation of Soffid 3 as test environment

## Introduction

This guide describes **all the steps required to install Soffid 3 as test environment**.

We’re going to install it using **Docker Compose**, as it’s the simplest and quickest method for both installation and maintenance.

## Prerequisites


- To have a **Linux** machine; Ubuntu 24 has been used for this tutorial.
- The Linux administrator user must have **sudo privileges**.

## Step 1: Install Docker &amp; Docker compose

The first step is to install **Docker** and **Docker compose**. Docker is the platform and compose is a tool that simplifies management.

#### 1.1 Install docker

Install docker.

```
sudo apt-get update
sudo apt-get install docker.io
docker --version
```

#### 1.2 Use docker without sudo

To use docker without sudo.

<table border="1" id="bkmrk-command-comment-sudo" style="border-collapse: collapse; width: 100%; height: 168.094px;"><colgroup><col style="width: 31.6071%;"></col><col style="width: 68.3929%;"></col></colgroup><tbody><tr style="height: 29.875px;"><td style="height: 29.875px;">**Command**</td><td style="height: 29.875px;">**Comment**</td></tr><tr style="height: 18.7969px;"><td style="height: 18.7969px;">sudo gedit /etc/group

</td><td style="height: 18.7969px;">Edit the file with your editor (gedit for this example)</td></tr><tr style="height: 29.875px;"><td style="height: 29.875px;">docker:x:988:YOUR-USER</td><td style="height: 29.875px;">Add YOUR-USER at the end of the docker command without : at the end</td></tr><tr style="height: 29.875px;"><td style="height: 29.875px;">logout</td><td style="height: 29.875px;">Log out from the ubuntu session</td></tr><tr style="height: 29.875px;"><td style="height: 29.875px;">login</td><td style="height: 29.875px;">Log in into the ubuntu session</td></tr><tr style="height: 29.7969px;"><td style="height: 29.7969px;">docker ps</td><td style="height: 29.7969px;">Confirm that you do not need to use sudo with a docker command</td></tr></tbody></table>

#### 1.3 Install docker compose

Install docker compose.

```
sudo apt-get install docker-compose-plugin
docker compose version
```

## Step 2: Install Soffid 3

<p class="callout info">At this link, you can see the most commonly used Docker Compose commands: [Docker compose commands](https://bookstack.soffid.com/books/soffid-internal-documentation/page/docker-compose-commands "Docker compose commands")</p>

#### 2.1 Test connectivity

**Test** the connectivity with the Soffid 3 repository pulling an image (<span style="color: rgb(224, 62, 45);">¡Do not use sudo with docker, it does not work!</span>).

```
docker pull "soffid/iam-console:3.6.75"
```

[![image.png](https://bookstack.soffid.com/uploads/images/gallery/2026-06/scaled-1680-/d0BqdyWFeQpuBQ6Q-image.png)](https://bookstack.soffid.com/uploads/images/gallery/2026-06/d0BqdyWFeQpuBQ6Q-image.png)

#### 2.2 Create the directory and file structure

Create a the new file for the docker compose with this directory structure.

```
cd
mkdir lab
cd lab
mkdir soffid3
cd soffid3
touch docker-compose.yaml
```

#### 2.3 Configure the docker-compose.yaml

Use this content for the docker-compose.yaml file.

<p class="callout warning">Change the XXXX password and YYYY password for your values.</p>

```
services:
  
  mariadb:
    image: mariadb:11.4
    environment:
      MYSQL_ROOT_PASSWORD: XXXX
      MYSQL_DATABASE: soffid
      MYSQL_USER: soffid
      MYSQL_PASSWORD: YYYY
    healthcheck:
      test: "/usr/bin/mariadb --user=root --password=XXXX --execute \"SHOW DATABASES;\""
      interval: 2s
      timeout: 20s
      retries: 10
    command: --max_allowed_packet=128M --innodb_log_file_size=256M --character-set-server=utf8mb4 --collation-server=utf8mb4_general_ci
    networks:
      - network
    volumes:
      - mariadb_data:/var/lib/mysql

  console:
    image: soffid/iam-console:3.6.74
    environment:
      DB_URL: jdbc:mariadb://mariadb/soffid
      DB_USER: soffid
      DB_PASSWORD: YYYY
      SOFFID_TRUSTED_SCRIPTS: true
    networks:
    - network
    ports: 
      - "8080:8080"
    volumes:
      - console_trust:/opt/soffid/iam-console-3/trustedcerts
      - console_conf:/opt/soffid/iam-console-3/conf
      - console_index:/opt/soffid/iam-console-3/index 
    depends_on:
      mariadb:
        condition: service_healthy

  syncserver:
    image: soffid/iam-sync:3.6.47
    hostname: syncserver
    environment:
      SOFFID_PORT: 1760
      SOFFID_HOSTNAME: syncserver
      SOFFID_MAIN: yes
      DB_URL: jdbc:mysql://mariadb/soffid
      DB_USER: soffid
      DB_PASSWORD: YYYY
    networks:
      - network
    volumes:
      - sync_conf:/opt/soffid/iam-sync/conf
    depends_on:
      mariadb:
        condition: service_healthy

networks:
  network:
    name: netcompose
    driver: bridge

volumes:
  mariadb_data:
    name: soffid3_mariadbdata
  console_trust:
    name: soffid3_console_trustedcerts
  console_conf:
    name: soffid3_console_conf
  console_index:
    name: soffid3-console_index
  sync_conf:
    name: soffid3_sync_conf
```

#### 2.4 Generate the containers

Generate the containers.

```
docker compose up -d
```

#### 2.5 Publish the domains

We recommend using a local domain to access the Console, create new entries in:

- Linux **/etc/hosts**
- Windows **C:\\Windows\\System32\\drivers\\etc\\hosts**

```
# Soffid 3 local
127.0.0.1 console.soffid3.local
127.0.0.1 syncserver.soffid3.local
```

#### 2.6 Access to the Console

Follow these steps:

- Go to **login** page: [http://console.soffid3.local:8080](http://console.soffid3.local:8080 "http://console.soffid3.local:8080")
- We have to **wait** until the login page will be prompted.
- User: **admin** / password: **changeit** (temporal for 24 hours).
- Fill the **new password** and save it to use it later!

You will now see this page.

[![image.png](https://bookstack.soffid.com/uploads/images/gallery/2026-06/scaled-1680-/gzllZ9GI82ldJk4L-image.png)](https://bookstack.soffid.com/uploads/images/gallery/2026-06/gzllZ9GI82ldJk4L-image.png)