I am trying to bring a new installation of PassBolt CE via Docker online within a LAN so that we can test/evaluate the product before considering the business version.
I am able to build/run the container, and it appears to be accessible, when I follow the new user registration link, it looks like it works, I am allowed to enter my e-mail address and create a passphrase. However, after that is done, I’m redirected to a page that says “Something went wrong” “Authentication is required to continue”. At that point, it’s impossible for me to log in or access the registration page, and the system does not recognize the password that I just created.
I am using the 5.4.1-1-ce image, if that matters.
I don’t believe it’s a Docker issue, using the Passbolt Healthcheck routine tells me the following:
su -s /bin/bash -c “/usr/share/php/passbolt/bin/cake passbolt healthcheck” www-data
2025-08-26 21:54:43 warning: SplFileInfo::openFile(/var/lib/passbolt/tmp/cache/persistent/myapp_cake_translations_translations.cake_console.en_UK): Failed to open stream: Permission denied in /usr/share/php/passbolt/vendor/cakephp/cakephp/src/Cache/Engine/FileEngine.php on line 384
warning: 512 :: SplFileInfo::openFile(/var/lib/passbolt/tmp/cache/persistent/myapp_cake_translations_translations.cake_console.en_UK): Failed to open stream: Permission denied on line 384 of /usr/share/php/passbolt/vendor/cakephp/cakephp/src/Cache/Engine/FileEngine.php
2025-08-26 21:54:43 warning: SplFileInfo::openFile(/var/lib/passbolt/tmp/cache/persistent/myapp_cake_translations_translations.cake_console.en_UK): Failed to open stream: Permission denied in /usr/share/php/passbolt/vendor/cakephp/cakephp/src/Cache/Engine/FileEngine.php on line 384
warning: 512 :: SplFileInfo::openFile(/var/lib/passbolt/tmp/cache/persistent/myapp_cake_translations_translations.cake_console.en_UK): Failed to open stream: Permission denied on line 384 of /usr/share/php/passbolt/vendor/cakephp/cakephp/src/Cache/Engine/FileEngine.php
__ __ __
/ __ \__ __ __/ /_ ___ / / /_
/ /_/ / __ `/ __/ __/ __ \/ __ \/ / __/
/ ____/ /_/ (__ |__ ) /_/ / /_/ / / /
/_/ \__,_/__/__/_.___/\____/_/\__/
Open source password manager for teams
-------------------------------------------------------------------------------
Healthcheck shell
If you want to have more information about the different checks, please take a look at the documentation: 2025-08-26 21:54:44 error: Record not found in table `organization_settings`.
-------------------------------------------------------------------------------
Environment
[INFO] Linux 1fbcf02bee04 5.15.0-134-generic #145-Ubuntu SMP Wed Feb 12 20:08:39 UTC 2025 x86_64 GNU/Linux
[PASS] PHP version 8.2.29.
[PASS] PHP version is 8.2 or above.
[PASS] 64-bit architecture system detected.
[INFO] gpg (GnuPG) 2.2.40 / libgcrypt 1.10.1
[PASS] PCRE compiled with unicode support.
[PASS] Mbstring extension is installed.
[PASS] Intl extension is installed.
[PASS] GD or Imagick extension is installed.
[FAIL] The temporary directory and its content are not writable, or are executable.
[HELP] Ensure the temporary directory and its content are writable by the webserver user.
[HELP] you can try:
[HELP] sudo chown -R www-data:www-data /var/lib/passbolt/tmp/
[HELP] sudo chmod -R 775 $(find /var/lib/passbolt/tmp/ -type d)
[HELP] sudo chmod -R 664 $(find /var/lib/passbolt/tmp/ -type f)
[PASS] The logs directory /var/log/passbolt/ and its content are writable.
[WARN] System clock and NTP service information cannot be found.
[HELP] See `timedatectl | grep -i -A 1 clock`. More information: https://www.passbolt.com/docs/hosting/configure/ntp/
Config files
[PASS] The application config file is present
[WARN] The passbolt config file is missing in /etc/passbolt/
[HELP] Copy /etc/passbolt/passbolt.default.php to /etc/passbolt/passbolt.php
[HELP] The passbolt config file is not required if passbolt is configured with environment variables
Core config
[PASS] Cache is working.
[PASS] Debug mode is off.
[PASS] Unique value set for security.salt
[PASS] Full base url is set to http:172.16.10.3:3380
[PASS] App.fullBaseUrl validation OK.
[PASS] /healthcheck/status is reachable.
SSL Certificate
[PASS] SSL peer certificate validates.
[PASS] Hostname is matching in SSL certificate.
[PASS] Not using a self-signed certificate.
SMTP settings
[PASS] The SMTP Settings plugin is enabled.
[PASS] SMTP Settings coherent. You may send a test email to validate them.
[WARN] The SMTP Settings source is: env variables.
[HELP] It is recommended to set the SMTP Settings in the database through the administration section.
[WARN] The SMTP Settings plugin endpoints are enabled.
[HELP] It is recommended to disable the plugin endpoints.
[HELP] Set the PASSBOLT_SECURITY_SMTP_SETTINGS_ENDPOINTS_DISABLED environment variable to true.
[HELP] Or set passbolt.security.smtpSettings.endpointsDisabled to true in /etc/passbolt/passbolt.php.
[PASS] No custom SSL configuration for SMTP server.
JWT Authentication
[PASS] The JWT Authentication plugin is enabled.
[PASS] The /etc/passbolt/jwt/ directory is not writable.
[FAIL] A valid JWT key pair is missing.
[HELP] Run the create JWT keys script to create a valid JWT secret and public key pair:
[HELP] sudo su -s /bin/bash -c “/usr/share/php/passbolt/bin/cake passbolt create_jwt_keys” www-data
GPG Configuration
[PASS] PHP GPG Module is installed and loaded.
[PASS] The environment variable GNUPGHOME is set to /var/lib/passbolt/.gnupg.
[PASS] The directory /var/lib/passbolt/.gnupg containing the keyring is writable by the webserver user.
[FAIL] The server OpenPGP key is not set.
[HELP] Create a key, export it and add the fingerprint to /etc/passbolt/passbolt.php
[HELP] See.
[PASS] The public key file is defined in /etc/passbolt/passbolt.php and readable.
[PASS] The private key file is defined in /etc/passbolt/passbolt.php and readable.
[FAIL] The server key fingerprint doesn’t match the one defined in /etc/passbolt/passbolt.php.
[HELP] Double check the key fingerprint, example:
[HELP] sudo su -s /bin/bash -c “gpg --list-keys --fingerprint --home /var/lib/passbolt/.gnupg” www-data | grep -i -B 2 ‘SERVER_KEY_EMAIL’
[HELP] SERVER_KEY_EMAIL: The email you used when you generated the server key.
[HELP] See. install#toc_gpg
[FAIL] The server public key defined in the /etc/passbolt/passbolt.php (or environment variables) is not in the keyring
[HELP] Import the private server key in the keyring of the webserver user.
[HELP] you can try:
[HELP] sudo su -s /bin/bash -c “gpg --home /var/lib/passbolt/.gnupg --import /etc/passbolt/gpg/serverkey_private.asc” www-data
[FAIL] The server key does not have a valid email id.
[HELP] Edit or generate another key with a valid email id.
[FAIL] The private key cannot be used to decrypt a message
[FAIL] The private key cannot be used to decrypt and verify a message
[FAIL] The public key cannot be used to verify a signature.
Application configuration
[PASS] Using latest passbolt version (5.4.1).
[FAIL] Passbolt is not configured to force SSL use.
[HELP] Set passbolt.ssl.force to true in /etc/passbolt/passbolt.php.
[FAIL] App.fullBaseUrl is not set to HTTPS.
[HELP] Check App.fullBaseUrl url scheme in /etc/passbolt/passbolt.php.
[PASS] Selenium API endpoints are disabled.
[PASS] Search engine robots are told not to index content.
[INFO] The Self Registration plugin is enabled.
[INFO] Registration is closed, only administrators can add users.
[PASS] The deprecated self registration public setting was not found in /etc/passbolt/passbolt.php.
[WARN] Host availability checking is disabled.
[HELP] Make sure this instance is not publicly available on the internet.
[HELP] Or set the PASSBOLT_EMAIL_VALIDATE_MX environment variable to true.
[HELP] Or set passbolt.email.validate.mx to true in /etc/passbolt/passbolt.php.
[PASS] Serving the compiled version of the javascript app.
[WARN] Some email notifications are disabled by the administrator.
[PASS] The database schema is up to date.
Database
[PASS] The application is able to connect to the database
[PASS] 34 tables found.
[PASS] Some default content is present.
Metadata
[PASS] The server is able to decrypt the metadata private key.
[PASS] Active metadata key found or not required.
[PASS] The server has access to the metadata keys or does not require access to it.
[PASS] The server metadata private key is valid.
[FAIL] 11 error(s) found. Hang in there!
So, there appears to be a lot of issues with permissions in the Docker image itself, which can be corrected, although unfortunately then they’ll return the next time the container is restarted.
I haven’t gotten to the stage of even trying to mess with implementing HTTPS yet, since this is still a test installation, so I’m not really concerned about them. We’ll worry about SSL/TLS after the platform is working.
[WARN] System clock and NTP service information cannot be found.
I don’t know why the image reports this, nothing in the installation documentation references setting up NTP in the Docker yaml file.
[WARN] The passbolt config file is missing in /etc/passbolt/
There again, it’s a Docker image, nothing in the install documentation refers to setting a config file. Maybe there are additional instructions required for running Passbolt in Docker?
The warnings about SMTP don’t seem to be serious, and the running container is capable of sending e-mails , so that’s probably not a critical issue.
I suspect that these messages about keys/keypairs are the root cause of the site being non-functional:
[FAIL] A valid JWT key pair is missing.
[FAIL] The server OpenPGP key is not set.
[FAIL] The server key fingerprint doesn’t match the one defined in /etc/passbolt/passbolt.php.
[FAIL] The server public key defined in the /etc/passbolt/passbolt.php (or environment variables) is not in the keyring
[FAIL] The server key does not have a valid email id.
[FAIL] The private key cannot be used to decrypt a message
[FAIL] The private key cannot be used to decrypt and verify a message
[FAIL] The public key cannot be used to verify a signature.
I had been following the instructions at this link for how to install and run Passbolt-
https://www.passbolt.com/docs/hosting/install/ce/docker/
I am now realizing, these instructions cover maybe 10% at best of the actual required steps to install Passbolt, is there any more complete documentation available?
Alternatively, is the Docker implementation of Passbolt considered to be viable for production use, or should I stop trying to run it in a container and do a full local install in a virtual machine?
Checklist
I have read intro post: https://community.passbolt.com/t/about-the-installation-issues-category/12
I have read the tutorials, help and searched for similar issues
I provide relevant information about my server (component names and versions, etc.)
I provide a copy of my logs and healthcheck
I describe the steps I have taken to trouble shoot the problem
I describe the steps on how to reproduce the issue