Can Passbolt CE be run on minikube using HELM CHART?

Hi everyone.

We are trying to run Passbolt CE in a QA environment using minikube with HELM CHART.

These are its componets:

  • Base SO: Ubuntu 22.04.3 LTS

  • Minikube: Version v1.32.0

  • Helm Chart: version.BuildInfo{Version:“v3.13.2”, GitCommit:“2a2fb3b98829f1e0be6fb18af2f6599e0f4e8243”, GitTreeState:“clean”, GoVersion:“go1.20.10”}

  • Repo Passbolt:
    https://download.passbolt.com/charts/passbolt

  • Used values.yaml: If necessary we can share this file.

  • Pods:
    NAME READY STATUS RESTARTS AGE
    passbolt-cron-proc-email-28393331-r7b4r 1/2 Error 2 (29s ago) 59s
    passbolt-depl-srv-89b6c47c4-nd55l 0/2 Init:0/1 2 31d
    passbolt-depl-srv-89b6c47c4-qrn84 0/2 Init:0/1 2 31d
    passbolt-job-create-gpg-keys-clf28 0/1 Completed 0 31d
    passbolt-mariadb-primary-0 1/1 Running 2 (14d ago) 31d
    passbolt-mariadb-secondary-0 1/1 Running 2 (14d ago) 31d
    passbolt-redis-node-0 2/2 Running 4 (14d ago) 31d
    passbolt-redis-node-1 2/2 Running 4 (14d ago) 31d
    passbolt-redis-node-2 2/2 Running 4 (14d ago) 31d

Our pods don’t start and we don’t know why.

Any help, will be welcome.

Regards.

What do you have for logs here when you run describe on those pods?

Minikube might require some tweaks for passbolt to work. I’ll double check my notes from when I was initially testing the helm chart

So took a look and I believe for minikube all I had to do was turn on ingress
minikube addons enable ingress

Hi Clayton.

We turn on ingress in minikube.

The describe of this pod is:Preformatted text

root@orquestador-passman:/home/assertiva# kubectl describe pod passbolt-depl-srv-89b6c47c4-nd55l
Name:             passbolt-depl-srv-89b6c47c4-nd55l
Namespace:        default
Priority:         0
Service Account:  passbolt-sa-common
Node:             minikube/192.168.49.2
Start Time:       Fri, 24 Nov 2023 21:42:53 +0000
Labels:           app.kubernetes.io/instance=passbolt
                  app.kubernetes.io/name=passbolt
                  pod-template-hash=89b6c47c4
Annotations:      checksum/cm-env: c6914f31443d936def41b524fd53261c1edf4dc5d0b7580fbff6695e4ee2d664
                  checksum/sec-env: 7aaa1cb0b791db1e1e329c5b99899ce7dc04bb4b9412a3bff411b862e7aa096e
                  checksum/sec-gpg: 0b5dec41c618e22661e71cd7645bcda43b8ed655cdaf4226378eeeef7f768b42
                  checksum/sec-jwt: 0c972f05afb75e40dbb937b146d906cfcfea5d16048cae1044c275e6aa6153f6
                  checksum/sec-redis-proxy: da4da8d1c67c3530648e98bcf27856ca77440bdfc393dc24cc404555ff3c7037
Status:           Pending
IP:               10.244.96.68
IPs:
  IP:           10.244.96.68
Controlled By:  ReplicaSet/passbolt-depl-srv-89b6c47c4
Init Containers:
  passbolt-depl-srv-init:
    Container ID:  docker://f5e6174e7d6307c56b806695ff6bd73133078a2d5a0724db59b877a3e183ab85
    Image:         mariadb:latest
    Image ID:      docker-pullable://mariadb@sha256:c006c05608604cf21c9f5b13af3ba7d6ccb3df5bc042c3fe294e0b6d34689b55
    Port:          <none>
    Host Port:     <none>
    Command:
      /bin/bash
    Args:
      -c
      cat <<-EOF > /tmp/defaultsfile.cnf
      [client]
      user=${DATASOURCES_DEFAULT_USERNAME}
      password=${DATASOURCES_DEFAULT_PASSWORD}
      host=${DATASOURCES_DEFAULT_HOST}
      connect-timeout=2
      EOF
      userhost="%"
      while ! mariadb --defaults-file=/tmp/defaultsfile.cnf -e "SELECT 1" > /dev/null 2>&1; do
        echo "Waiting for database connection..."
        sleep 2
      done

    State:          Running
      Started:      Mon, 11 Dec 2023 17:21:33 +0000
    Ready:          False
    Restart Count:  2
    Environment Variables from:
      passbolt-cm-env   ConfigMap  Optional: false
      passbolt-sec-env  Secret     Optional: false
    Environment:
      DATASOURCES_DEFAULT_HOST:  passbolt-mariadb-primary
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-k4jsz (ro)
Containers:
  passbolt-depl-srv:
    Container ID:
    Image:         passbolt/passbolt:4.3.0-1-ce
    Image ID:
    Ports:         443/TCP, 80/TCP
    Host Ports:    0/TCP, 0/TCP
    Command:
      /bin/bash
    Args:
      -c
      set -e
      > /etc/supervisor/conf.d/cron.conf
      /docker-entrypoint.sh

    State:          Waiting
      Reason:       PodInitializing
    Ready:          False
    Restart Count:  0
    Liveness:       http-get https://:https/healthcheck/status.json delay=20s timeout=1s period=10s #success=1 #failure=3
    Readiness:      http-get https://:https/healthcheck/status.json delay=5s timeout=1s period=10s #success=1 #failure=3
    Environment Variables from:
      passbolt-cm-env   ConfigMap  Optional: false
      passbolt-sec-env  Secret     Optional: false
    Environment:
      DATASOURCES_DEFAULT_HOST:  passbolt-mariadb-primary
    Mounts:
      /etc/passbolt/app.php from passbolt-cm-app-php (ro,path="app.php")
      /etc/passbolt/gpg from passbolt-depl-srv-sec-gpg (ro)
      /etc/passbolt/jwt from passbolt-depl-srv-sec-jwt (ro)
      /etc/ssl/certs/passbolt from passbolt-depl-srv-sec-tls (ro)
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-k4jsz (ro)
  passbolt-depl-srv-redisproxy:
    Container ID:
    Image:          haproxy:latest
    Image ID:
    Port:           <none>
    Host Port:      <none>
    State:          Waiting
      Reason:       PodInitializing
    Ready:          False
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /usr/local/etc/haproxy/haproxy.cfg from passbolt-depl-srv-sec-redis-proxy (ro,path="haproxy.cfg")
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-k4jsz (ro)
Conditions:
  Type              Status
  Initialized       False
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  passbolt-depl-srv-sec-tls:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  passbolt-sec-tls
    Optional:    false
  passbolt-depl-srv-sec-gpg:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  passbolt-sec-gpg
    Optional:    false
  passbolt-cm-app-php:
    Type:      ConfigMap (a volume populated by a ConfigMap)
    Name:      passbolt-cm-app-php
    Optional:  false
  passbolt-depl-srv-sec-jwt:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  passbolt-sec-jwt
    Optional:    false
  passbolt-depl-srv-sec-redis-proxy:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  passbolt-sec-redis-proxy
    Optional:    false
  kube-api-access-k4jsz:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:                      <none>

Since your database pods are up and running but the passbolt is stuck in init this could be the issue. Passbolt likely can’t connect to the db with the username supplied.

Also a small thing I noticed, in your describe the image is

    Image:         passbolt/passbolt:4.3.0-1-ce

And in your values it is

    tag: 4.4.0-1-ce

So did you try updating at some point here?

Hi Clayton!

We make the changes in the values file as you indicated, and we obtain this result:

The service to access the application does not have any node…

root@orquestador-passman:/home/assertiva# kubectl get svc
NAME                         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)              AGE
kubernetes                   ClusterIP   10.96.0.1        <none>        443/TCP              60d
passbolt                     ClusterIP   10.109.221.2     <none>        443/TCP              86m
passbolt-mariadb-primary     ClusterIP   10.99.229.134    <none>        3306/TCP             86m
passbolt-mariadb-secondary   ClusterIP   10.109.181.227   <none>        3306/TCP             86m
passbolt-redis               ClusterIP   10.110.252.19    <none>        6379/TCP,26379/TCP   86m
passbolt-redis-headless      ClusterIP   None             <none>        6379/TCP,26379/TCP   86m
.
.
.
root@orquestador-passman:/home/assertiva# kubectl describe svc passbolt
Name:              passbolt
Namespace:         default
Labels:            app.kubernetes.io/action=common
                   app.kubernetes.io/instance=passbolt
                   app.kubernetes.io/managed-by=Helm
                   app.kubernetes.io/name=passbolt
                   app.kubernetes.io/type=svc
                   app.kubernetes.io/version=4.3.0-1-ce
                   helm.sh/chart=passbolt-0.4.4
Annotations:       meta.helm.sh/release-name: passbolt
                   meta.helm.sh/release-namespace: default
Selector:          app.kubernetes.io/instance=passbolt,app.kubernetes.io/name=passbolt
Type:              ClusterIP
IP Family Policy:  SingleStack
IP Families:       IPv4
IP:                10.109.221.2
IPs:               10.109.221.2
Port:              https  443/TCP
TargetPort:        443/TCP
**Endpoints:**
Session Affinity:  None
Events:            <none>

However, we were able to make some progress with your observations…

Thank you so much.

Regards.

Hey @joaquin, maybe some logs from the passbolt-depl-srv pods would help to determine what is going on.

Hi guys.

We decide update the version image that we use, but we get the same result

root@orquestador-passman:/home/assertiva# helm search repo passbolt
NAME                    CHART VERSION   APP VERSION     DESCRIPTION
passbolt/passbolt       0.7.1           4.4.2-1-ce      Helm chart for passbolt PRO and CE

root@orquestador-passman:/home/assertiva# kubectl get pods
NAME                                      READY   STATUS              RESTARTS        AGE
passbolt-cron-proc-email-28422448-d6q29   1/2     Terminating         2               63s
passbolt-cron-proc-email-28422449-k858z   0/2     ContainerCreating   0               3s
passbolt-depl-srv-65c854d995-8k85z        1/2     CrashLoopBackOff    7 (3m34s ago)   16m
passbolt-depl-srv-65c854d995-b7tfd        1/2     CrashLoopBackOff    7 (3m50s ago)   16m
passbolt-job-create-gpg-keys-6tp8b        0/1     Completed           0               17m
passbolt-job-create-jwt-keys-c4hvc        0/1     Completed           0               16m
passbolt-mariadb-primary-0                1/1     Running             0               16m
passbolt-mariadb-secondary-0              1/1     Running             0               16m
passbolt-redis-node-0                     2/2     Running             0               16m
passbolt-redis-node-1                     2/2     Running             0               15m
passbolt-redis-node-2                     2/2     Running             0               15m
root@orquestador-passman:/home/assertiva# kubectl describe pod passbolt-depl-srv-65c854d995-8k85z
Name:             passbolt-depl-srv-65c854d995-8k85z
Namespace:        default
Priority:         0
Service Account:  passbolt-sa-common
Node:             minikube/192.168.49.2
Start Time:       Mon, 15 Jan 2024 19:12:29 +0000
Labels:           app.kubernetes.io/instance=passbolt
                  app.kubernetes.io/name=passbolt
                  pod-template-hash=65c854d995
Annotations:      checksum/cm-env: abdb4387db2d542e321552abe0ea9d8ef412e131ab334a3de9cd982963ca6032
                  checksum/sec-env: e1e2ff9f028cdda424fd2df2fdacef99bfc4ad4c734a56df85e52459af48b5e3
                  checksum/sec-gpg: eae9225d9004627194cb4734bfea9bdd1aa388152595235987b3c291e17bc4e8
                  checksum/sec-jwt: 669578721774534823e8319aa99fa088eeb757ee13c3a39320a6830b5515f896
                  checksum/sec-redis-proxy: d989c9965b3fdcacebd5841950530d23385bb0cac77d2b61f7aea24f6b457efb
Status:           Running
IP:               10.244.36.244
IPs:
  IP:           10.244.36.244
Controlled By:  ReplicaSet/passbolt-depl-srv-65c854d995
Init Containers:
  passbolt-depl-srv-init:
    Container ID:  docker://600fed84c05a16d9f04bc400d187662c217bfc11df2dea470bded4a330da9e9a
    Image:         mariadb
    Image ID:      docker-pullable://mariadb@sha256:4d5a0e687d469b1a1e08ea8829f46ef1d966d9e0a3a8f3613fcf61e933161c27
    Port:          <none>
    Host Port:     <none>
    Command:
      /bin/bash
    Args:
      -c
      set -e
      client="mariadb"
      cat <<-EOF > /tmp/defaultsfile.cnf
      [client]
      user=${DATASOURCES_DEFAULT_USERNAME}
      password=${DATASOURCES_DEFAULT_PASSWORD}
      host=${DATASOURCES_DEFAULT_HOST}
      connect-timeout=2
      EOF
      userhost="%"
      client="mariadb"
      while ! ${client} --defaults-file=/tmp/defaultsfile.cnf -e "SELECT 1" > /dev/null 2>&1; do
        echo "Waiting for database connection..."
        sleep 2
      done

    State:          Terminated
      Reason:       Completed
      Exit Code:    0
      Started:      Mon, 15 Jan 2024 19:12:48 +0000
      Finished:     Mon, 15 Jan 2024 19:13:33 +0000
    Ready:          True
    Restart Count:  0
    Environment Variables from:
      passbolt-cm-env   ConfigMap  Optional: false
      passbolt-sec-env  Secret     Optional: false
    Environment:
      DATASOURCES_DEFAULT_HOST:  passbolt-mariadb-primary
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-zrbcd (ro)
Containers:
  passbolt-depl-srv:
    Container ID:  docker://32fa3599f36d4be83627c88f7431f1e33b82874f91061cc86adf55f21fbb63ee
    Image:         passbolt/passbolt:4.4.2-1-ce
    Image ID:      docker-pullable://passbolt/passbolt@sha256:d4a957640f93c936bf585c4efe3d5a77b679dece60b996f0c56d9ad09b064ca1
    Ports:         443/TCP, 80/TCP
    Host Ports:    0/TCP, 0/TCP
    Command:
      /bin/bash
    Args:
      -c
      set -e
      > /etc/supervisor/conf.d/cron.conf
      /docker-entrypoint.sh

    State:          Waiting
      Reason:       CrashLoopBackOff
    Last State:     Terminated
      Reason:       Error
      Exit Code:    1
      Started:      Mon, 15 Jan 2024 19:25:26 +0000
      Finished:     Mon, 15 Jan 2024 19:25:29 +0000
    Ready:          False
    Restart Count:  7
    Liveness:       http-get https://:https/healthcheck/status.json delay=20s timeout=1s period=10s #success=1 #failure=3
    Readiness:      http-get https://:https/healthcheck/status.json delay=5s timeout=1s period=10s #success=1 #failure=3
    Environment Variables from:
      passbolt-cm-env   ConfigMap  Optional: false
      passbolt-sec-env  Secret     Optional: false
    Environment:
      DATASOURCES_DEFAULT_HOST:  passbolt-mariadb-primary
    Mounts:
      /etc/passbolt/app.php from passbolt-cm-app-php (ro,path="app.php")
      /etc/passbolt/gpg from passbolt-sec-gpg (ro)
      /etc/passbolt/jwt from passbolt-sec-jwt (ro)
      /etc/ssl/certs/passbolt from passbolt-depl-srv-sec-tls (ro)
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-zrbcd (ro)
  passbolt-depl-srv-redisproxy:
    Container ID:   docker://fb0a2fe3fc50df05f995c706a71ac0a79a4c4a010cc8d7f927ffc96e9167166b
    Image:          haproxy:latest
    Image ID:       docker-pullable://haproxy@sha256:13b79eadf1244de34b7de32cf4a8a68075381c745e35087397e6d2357c9dae6c
    Port:           <none>
    Host Port:      <none>
    State:          Running
      Started:      Mon, 15 Jan 2024 19:13:35 +0000
    Ready:          True
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /usr/local/etc/haproxy/haproxy.cfg from passbolt-depl-srv-sec-redis-proxy (ro,path="haproxy.cfg")
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-zrbcd (ro)
Conditions:
  Type              Status
  Initialized       True
  Ready             False
  ContainersReady   False
  PodScheduled      True
Volumes:
  passbolt-depl-srv-sec-tls:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  passbolt-sec-tls
    Optional:    false
  passbolt-sec-gpg:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  passbolt-sec-gpg
    Optional:    false
  passbolt-cm-app-php:
    Type:      ConfigMap (a volume populated by a ConfigMap)
    Name:      passbolt-cm-app-php
    Optional:  false
  passbolt-sec-jwt:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  passbolt-sec-jwt
    Optional:    false
  passbolt-depl-srv-sec-redis-proxy:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  passbolt-sec-redis-proxy
    Optional:    false
  kube-api-access-zrbcd:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type     Reason     Age                  From               Message
  ----     ------     ----                 ----               -------
  Normal   Scheduled  16m                  default-scheduler  Successfully assigned default/passbolt-depl-srv-65c854d995-8k85z to minikube
  Normal   Pulling    16m                  kubelet            Pulling image "mariadb"
  Normal   Pulled     16m                  kubelet            Successfully pulled image "mariadb" in 5.643s (16.457s including waiting)
  Normal   Created    16m                  kubelet            Created container passbolt-depl-srv-init
  Normal   Started    16m                  kubelet            Started container passbolt-depl-srv-init
  Normal   Pulling    15m                  kubelet            Pulling image "haproxy:latest"
  Normal   Pulled     15m                  kubelet            Successfully pulled image "haproxy:latest" in 1.487s (1.487s including waiting)
  Normal   Created    15m                  kubelet            Created container passbolt-depl-srv-redisproxy
  Normal   Started    15m                  kubelet            Started container passbolt-depl-srv-redisproxy
  Normal   Started    15m (x3 over 15m)    kubelet            Started container passbolt-depl-srv
  Normal   Created    15m (x3 over 15m)    kubelet            Created container passbolt-depl-srv
  Warning  Unhealthy  15m (x2 over 15m)    kubelet            Readiness probe failed: Get "https://10.244.36.244:443/healthcheck/status.json": dial tcp 10.244.36.244:443: connect: connection refused
  Normal   Pulled     14m (x4 over 15m)    kubelet            Container image "passbolt/passbolt:4.4.2-1-ce" already present on machine
  Warning  BackOff    103s (x66 over 15m)  kubelet            Back-off restarting failed container passbolt-depl-srv in pod passbolt-depl-srv-65c854d995-8k85z_default(6ceca2b5-e36a-4ef2-92a6-6f373eaa2f0d)
root@orquestador-passman:/home/assertiva#

The pod log has not details about the problem:

root@orquestador-passman:/home/assertiva# kubectl logs passbolt-depl-srv-65c854d995-8k85z
Defaulted container "passbolt-depl-srv" out of: passbolt-depl-srv, passbolt-depl-srv-redisproxy, passbolt-depl-srv-init (init)
gpg: keybox '/var/lib/passbolt/.gnupg/pubring.kbx' created
gpg: /var/lib/passbolt/.gnupg/trustdb.gpg: trustdb created
gpg: key 8E776579DD73EBDE: public key "Passbolt default user <passbolt@yourdomain.com>" imported
gpg: Total number processed: 1
gpg:               imported: 1
gpg: key 8E776579DD73EBDE: "Passbolt default user <passbolt@yourdomain.com>" not changed
gpg: key 8E776579DD73EBDE: secret key imported
gpg: Total number processed: 1
gpg:              unchanged: 1
gpg:       secret keys read: 1
gpg:   secret keys imported: 1
........+.+...........+.+..+.......+.....+.+...+............+...+......+.....+...+.+..+...+....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.+....+...+.....+...+.............+.....+.+......+..+......+......+...+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*......+...+...........+...................+..+...+.+.....+...............+.......+..+...+....+...+...+...+...........+..........+........+.+.........+............+......+.........+.....+............................+...............+..+.+.....+...................+........+.+..+...+.........+............+......+....+......+..+............+.+........+....+...+..................+..+...............+...+.+.........+......+.....+....+.....+......+.+.....+...+...................+..+............................+...........+.......+..+............+.........+............+.......+........+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
.+...+.......+...+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.+.....+......+.+...+..+...+.+......+.....+..........+...............+...+.........+......+..+...+.........+...+.............+...........+...+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*........+......+........................+.........+............+...+...+..............+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
-----
Installing passbolt
<!DOCTYPE html>
<html class="passbolt no-js no-passboltplugin version" lang="en">
<head>
    <meta charset="utf-8"/>
    <title>Passbolt | An Internal Error Has Occurred.</title>
    <!--

        ____                  __          ____
       / __ \____  _____ ____/ /_  ____  / / /_
      / /_/ / __ `/ ___/ ___/ __ \/ __ \/ / __/
     / ____/ /_/ (__  )__  ) /_/ / /_/ / / /_
    /_/    \__,_/____/____/_.___/\____/_/\__/

    Open source password manager for teams
    Copyright (c) Passbolt SA (https://www.passbolt.com)


    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as
    published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Affero General Public License for more details.

    You should have received a copy of the GNU Affero General Public License
    along with this program. If not, see http://www.gnu.org/licenses/.


    -->
    <meta name="description" content="Open source password manager for teams">
    <meta name="keywords" content="Passbolt, password manager, online password manager, open source password manager">
    <meta name="robots" content="noindex, nofollow">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="shortcut icon" type="image/x-icon" href="https://passbolt.local/favicon.ico" />
    <link rel="icon" href="https://passbolt.local/favicon_32.png" sizes="32x32" />
    <link rel="icon" href="https://passbolt.local/favicon_57.png" sizes="57x57" />
    <link rel="icon" href="https://passbolt.local/favicon_76.png" sizes="76x76" />
    <link rel="icon" href="https://passbolt.local/favicon_96.png" sizes="96x96" />
    <link rel="icon" href="https://passbolt.local/favicon_128.png" sizes="128x128" />
    <link rel="icon" href="https://passbolt.local/favicon_192.png" sizes="192x192" />
    <link rel="icon" href="https://passbolt.local/favicon_228.png" sizes="228x228" />
    <base href="https://passbolt.local/">
    <link rel="stylesheet" href="https://passbolt.local/css/themes/default/api_main.min.css?v=4.4.2"/></head>
<body spellcheck="false">
<div id="container" class="error page error-500">
<!-- header navigation -->
<header>
    <div class="header first ">
        <nav>
            <div class="top navigation primary">
                <ul>
                    <li class="left"><a href="https://passbolt.local/"><span>home</span></a></li>
                    <li class="right"><a href="https://passbolt.local/auth/login"><span>login</span></a></li>
                </ul>
            </div>
        </nav>
    </div>
</header>
<div id="content">
<div class="grid">
    <div class="row">
        <h2>An Internal Error Has Occurred</h2>
        <p class="error">
            An Internal Error Has Occurred.        </p>
    </div>
    </div>
</div>
</div>
<footer>
    <div class="footer">
        <ul class="footer-links">
            <li><a href="https://www.passbolt.com/terms">Terms</a></li>
            <li><a href="https://www.passbolt.com/privacy">Privacy</a></li>
            <li><a href="https://www.passbolt.com/credits">Credits</a></li>
            <li id="version">
                <a href="https://www.passbolt.com/credits" class="tooltip-left" data-tooltip="4.4.2">
                    <i class="fa fa-heart-o"></i>
                    <span class="visuallyhidden">Versions</span>
                </a>
            </li>
        </ul>
    </div>
</footer>
</div>
</body>
</html>
Running migrations
<!DOCTYPE html>
<html class="passbolt no-js no-passboltplugin version" lang="en">
<head>
    <meta charset="utf-8"/>
    <title>Passbolt | An Internal Error Has Occurred.</title>
    <!--

        ____                  __          ____
       / __ \____  _____ ____/ /_  ____  / / /_
      / /_/ / __ `/ ___/ ___/ __ \/ __ \/ / __/
     / ____/ /_/ (__  )__  ) /_/ / /_/ / / /_
    /_/    \__,_/____/____/_.___/\____/_/\__/

    Open source password manager for teams
    Copyright (c) Passbolt SA (https://www.passbolt.com)


    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as
    published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Affero General Public License for more details.

    You should have received a copy of the GNU Affero General Public License
    along with this program. If not, see http://www.gnu.org/licenses/.


    -->
    <meta name="description" content="Open source password manager for teams">
    <meta name="keywords" content="Passbolt, password manager, online password manager, open source password manager">
    <meta name="robots" content="noindex, nofollow">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="shortcut icon" type="image/x-icon" href="https://passbolt.local/favicon.ico" />
    <link rel="icon" href="https://passbolt.local/favicon_32.png" sizes="32x32" />
    <link rel="icon" href="https://passbolt.local/favicon_57.png" sizes="57x57" />
    <link rel="icon" href="https://passbolt.local/favicon_76.png" sizes="76x76" />
    <link rel="icon" href="https://passbolt.local/favicon_96.png" sizes="96x96" />
    <link rel="icon" href="https://passbolt.local/favicon_128.png" sizes="128x128" />
    <link rel="icon" href="https://passbolt.local/favicon_192.png" sizes="192x192" />
    <link rel="icon" href="https://passbolt.local/favicon_228.png" sizes="228x228" />
    <base href="https://passbolt.local/">
    <link rel="stylesheet" href="https://passbolt.local/css/themes/default/api_main.min.css?v=4.4.2"/></head>
<body spellcheck="false">
<div id="container" class="error page error-500">
<!-- header navigation -->
<header>
    <div class="header first ">
        <nav>
            <div class="top navigation primary">
                <ul>
                    <li class="left"><a href="https://passbolt.local/"><span>home</span></a></li>
                    <li class="right"><a href="https://passbolt.local/auth/login"><span>login</span></a></li>
                </ul>
            </div>
        </nav>
    </div>
</header>
<div id="content">
<div class="grid">
    <div class="row">
        <h2>An Internal Error Has Occurred</h2>
        <p class="error">
            An Internal Error Has Occurred.        </p>
    </div>
    </div>
</div>
</div>
<footer>
    <div class="footer">
        <ul class="footer-links">
            <li><a href="https://www.passbolt.com/terms">Terms</a></li>
            <li><a href="https://www.passbolt.com/privacy">Privacy</a></li>
            <li><a href="https://www.passbolt.com/credits">Credits</a></li>
            <li id="version">
                <a href="https://www.passbolt.com/credits" class="tooltip-left" data-tooltip="4.4.2">
                    <i class="fa fa-heart-o"></i>
                    <span class="visuallyhidden">Versions</span>
                </a>
            </li>
        </ul>
    </div>
</footer>
</div>
</body>
</html>
Clearing cake caches
<!DOCTYPE html>
<html class="passbolt no-js no-passboltplugin version" lang="en">
<head>
    <meta charset="utf-8"/>
    <title>Passbolt | An Internal Error Has Occurred.</title>
    <!--

        ____                  __          ____
       / __ \____  _____ ____/ /_  ____  / / /_
      / /_/ / __ `/ ___/ ___/ __ \/ __ \/ / __/
     / ____/ /_/ (__  )__  ) /_/ / /_/ / / /_
    /_/    \__,_/____/____/_.___/\____/_/\__/

    Open source password manager for teams
    Copyright (c) Passbolt SA (https://www.passbolt.com)


    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as
    published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Affero General Public License for more details.

    You should have received a copy of the GNU Affero General Public License
    along with this program. If not, see http://www.gnu.org/licenses/.


    -->
    <meta name="description" content="Open source password manager for teams">
    <meta name="keywords" content="Passbolt, password manager, online password manager, open source password manager">
    <meta name="robots" content="noindex, nofollow">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="shortcut icon" type="image/x-icon" href="https://passbolt.local/favicon.ico" />
    <link rel="icon" href="https://passbolt.local/favicon_32.png" sizes="32x32" />
    <link rel="icon" href="https://passbolt.local/favicon_57.png" sizes="57x57" />
    <link rel="icon" href="https://passbolt.local/favicon_76.png" sizes="76x76" />
    <link rel="icon" href="https://passbolt.local/favicon_96.png" sizes="96x96" />
    <link rel="icon" href="https://passbolt.local/favicon_128.png" sizes="128x128" />
    <link rel="icon" href="https://passbolt.local/favicon_192.png" sizes="192x192" />
    <link rel="icon" href="https://passbolt.local/favicon_228.png" sizes="228x228" />
    <base href="https://passbolt.local/">
    <link rel="stylesheet" href="https://passbolt.local/css/themes/default/api_main.min.css?v=4.4.2"/></head>
<body spellcheck="false">
<div id="container" class="error page error-500">
<!-- header navigation -->
<header>
    <div class="header first ">
        <nav>
            <div class="top navigation primary">
                <ul>
                    <li class="left"><a href="https://passbolt.local/"><span>home</span></a></li>
                    <li class="right"><a href="https://passbolt.local/auth/login"><span>login</span></a></li>
                </ul>
            </div>
        </nav>
    </div>
</header>
<div id="content">
<div class="grid">
    <div class="row">
        <h2>An Internal Error Has Occurred</h2>
        <p class="error">
            An Internal Error Has Occurred.        </p>
    </div>
    </div>
</div>
</div>
<footer>
    <div class="footer">
        <ul class="footer-links">
            <li><a href="https://www.passbolt.com/terms">Terms</a></li>
            <li><a href="https://www.passbolt.com/privacy">Privacy</a></li>
            <li><a href="https://www.passbolt.com/credits">Credits</a></li>
            <li id="version">
                <a href="https://www.passbolt.com/credits" class="tooltip-left" data-tooltip="4.4.2">
                    <i class="fa fa-heart-o"></i>
                    <span class="visuallyhidden">Versions</span>
                </a>
            </li>
        </ul>
    </div>
</footer>
</div>
</body>
</html>
<!DOCTYPE html>
<html class="passbolt no-js no-passboltplugin version" lang="en">
<head>
    <meta charset="utf-8"/>
    <title>Passbolt | An Internal Error Has Occurred.</title>
    <!--

        ____                  __          ____
       / __ \____  _____ ____/ /_  ____  / / /_
      / /_/ / __ `/ ___/ ___/ __ \/ __ \/ / __/
     / ____/ /_/ (__  )__  ) /_/ / /_/ / / /_
    /_/    \__,_/____/____/_.___/\____/_/\__/

    Open source password manager for teams
    Copyright (c) Passbolt SA (https://www.passbolt.com)


    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as
    published by the Free Software Foundation, either version 3 of the
    License, or (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU Affero General Public License for more details.

    You should have received a copy of the GNU Affero General Public License
    along with this program. If not, see http://www.gnu.org/licenses/.


    -->
    <meta name="description" content="Open source password manager for teams">
    <meta name="keywords" content="Passbolt, password manager, online password manager, open source password manager">
    <meta name="robots" content="noindex, nofollow">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link rel="shortcut icon" type="image/x-icon" href="https://passbolt.local/favicon.ico" />
    <link rel="icon" href="https://passbolt.local/favicon_32.png" sizes="32x32" />
    <link rel="icon" href="https://passbolt.local/favicon_57.png" sizes="57x57" />
    <link rel="icon" href="https://passbolt.local/favicon_76.png" sizes="76x76" />
    <link rel="icon" href="https://passbolt.local/favicon_96.png" sizes="96x96" />
    <link rel="icon" href="https://passbolt.local/favicon_128.png" sizes="128x128" />
    <link rel="icon" href="https://passbolt.local/favicon_192.png" sizes="192x192" />
    <link rel="icon" href="https://passbolt.local/favicon_228.png" sizes="228x228" />
    <base href="https://passbolt.local/">
    <link rel="stylesheet" href="https://passbolt.local/css/themes/default/api_main.min.css?v=4.4.2"/></head>
<body spellcheck="false">
<div id="container" class="error page error-500">
<!-- header navigation -->
<header>
    <div class="header first ">
        <nav>
            <div class="top navigation primary">
                <ul>
                    <li class="left"><a href="https://passbolt.local/"><span>home</span></a></li>
                    <li class="right"><a href="https://passbolt.local/auth/login"><span>login</span></a></li>
                </ul>
            </div>
        </nav>
    </div>
</header>
<div id="content">
<div class="grid">
    <div class="row">
        <h2>An Internal Error Has Occurred</h2>
        <p class="error">
            An Internal Error Has Occurred.        </p>
    </div>
    </div>
</div>
</div>
<footer>
    <div class="footer">
        <ul class="footer-links">
            <li><a href="https://www.passbolt.com/terms">Terms</a></li>
            <li><a href="https://www.passbolt.com/privacy">Privacy</a></li>
            <li><a href="https://www.passbolt.com/credits">Credits</a></li>
            <li id="version">
                <a href="https://www.passbolt.com/credits" class="tooltip-left" data-tooltip="4.4.2">
                    <i class="fa fa-heart-o"></i>
                    <span class="visuallyhidden">Versions</span>
                </a>
            </li>
        </ul>
    </div>
</footer>
</div>
</body>
</html>
root@orquestador-passman:/home/assertiva#

what can we do?

Regards.