wait-for.sh: waiting for db:3306 without a timeout
wait-for.sh: db:3306 is available after 2 seconds
gpg: keybox '/var/lib/passbolt/.gnupg/pubring.kbx' created
gpg: /var/lib/passbolt/.gnupg/trustdb.gpg: trustdb created
gpg: key 2CE3371C6EC1405B: public key "Passbolt default user <passbolt@yourdomain.com>" imported
gpg: Total number processed: 1
gpg: imported: 1
gpg: key 2CE3371C6EC1405B: "Passbolt default user <passbolt@yourdomain.com>" not changed
gpg: key 2CE3371C6EC1405B: secret key imported
gpg: Total number processed: 1
gpg: unchanged: 1
gpg: secret keys read: 1
gpg: secret keys imported: 1
Installing passbolt
____ __ ____
/ __ \____ _____ ____/ /_ ____ / / /_
/ /_/ / __ `/ ___/ ___/ __ \/ __ \/ / __/
/ ____/ /_/ (__ |__ ) /_/ / /_/ / / /
/_/ \__,_/____/____/_.___/\____/_/\__/
Open source password manager for teams
-------------------------------------------------------------------------------
Running baseline checks, please wait...
The /etc/passbolt/jwt/ directory should not be writable.
Please run ./bin/cake passbolt healthcheck for more information and help.
Running migrations
____ __ ____
/ __ \____ _____ ____/ /_ ____ / / /_
/ /_/ / __ `/ ___/ ___/ __ \/ __ \/ / __/
/ ____/ /_/ (__ |__ ) /_/ / /_/ / / /
/_/ \__,_/____/____/_.___/\____/_/\__/
Open source password manager for teams
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
Running migration scripts.
-------------------------------------------------------------------------------
using migration paths
- /etc/passbolt/Migrations
using seed paths
using environment default
using adapter mysql
using database passbolt
ordering by creation time
All Done. Took 0.0463s
Clearing cake caches
Clearing _cake_model_
Cleared _cake_model_ cache
Clearing _cake_core_
Cleared _cake_core_ cache
Enjoy! ☮
/usr/lib/python3/dist-packages/supervisor/options.py:474: UserWarning: Supervisord is running as root and it is searching for its configuration file in default locations (including its current working directory); you probably want to specify a "-c" argument specifying an absolute path to a configuration file for improved security.
self.warnings.warn(
2024-10-08 14:33:06,752 CRIT Supervisor is running as root. Privileges were not dropped because no user is specified in the config file. If you intend to run as root, you can set user=root in the config file to avoid this message.
2024-10-08 14:33:06,752 INFO Included extra file "/etc/supervisor/conf.d/cron.conf" during parsing
2024-10-08 14:33:06,752 INFO Included extra file "/etc/supervisor/conf.d/nginx.conf" during parsing
2024-10-08 14:33:06,752 INFO Included extra file "/etc/supervisor/conf.d/php.conf" during parsing
2024-10-08 14:33:06,763 INFO RPC interface 'supervisor' initialized
2024-10-08 14:33:06,763 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2024-10-08 14:33:06,764 INFO supervisord started with pid 1
2024-10-08 14:33:07,775 INFO spawned: 'php-fpm' with pid 109
2024-10-08 14:33:07,783 INFO spawned: 'nginx' with pid 110
2024-10-08 14:33:07,791 INFO spawned: 'cron' with pid 111
[08-Oct-2024 14:33:08] NOTICE: fpm is running, pid 109
[08-Oct-2024 14:33:08] NOTICE: ready to handle connections
[08-Oct-2024 14:33:08] NOTICE: systemd monitor interval set to 10000ms
2024-10-08 14:33:09,078 INFO success: php-fpm entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2024-10-08 14:33:09,079 INFO success: nginx entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
2024-10-08 14:33:09,079 INFO success: cron entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
Logs for traefik:
time="2024-10-08T14:32:49Z" level=info msg="Configuration loaded from file: /traefik.yaml"
time="2024-10-08T14:32:49Z" level=info msg="Traefik version 2.6.7 built on 2022-05-24T14:19:52Z"
time="2024-10-08T14:32:49Z" level=info msg="\nStats collection is disabled.\nHelp us improve Traefik by turning this feature on :)\nMore details on: https://doc.traefik.io/traefik/contributing/data-collection/\n"
time="2024-10-08T14:32:49Z" level=info msg="Starting provider aggregator.ProviderAggregator"
time="2024-10-08T14:32:49Z" level=info msg="Starting provider *file.Provider"
time="2024-10-08T14:32:49Z" level=info msg="Starting provider *docker.Provider"
time="2024-10-08T14:32:49Z" level=info msg="Starting provider *acme.ChallengeTLSALPN"
time="2024-10-08T14:32:49Z" level=info msg="Starting provider *traefik.Provider"
time="2024-10-08T14:32:49Z" level=info msg="Starting provider *acme.Provider"
time="2024-10-08T14:32:49Z" level=info msg="Testing certificate renew..." providerName=letsencrypt.acme ACME CA="https://acme-v02.api.letsencrypt.org/directory"
time="2024-10-08T14:33:10Z" level=error msg="Unable to obtain ACME certificate for domains \"passbolt.domain.com\": unable to generate a certificate for the domains [passbolt.domain.com]: error: one or more domains had a problem:\n[passbolt.domain.com] acme: error: 400 :: urn:ietf:params:acme:error:connection :: 198.51.100.0: Timeout during connect (likely firewall problem)\n" ACME CA="https://acme-v02.api.letsencrypt.org/directory" rule="Host(`passbolt.domain.com`)" routerName=passbolt-https@docker providerName=letsencrypt.acme
time="2024-10-08T14:33:29Z" level=error msg="Unable to obtain ACME certificate for domains \"passbolt.domain.com\": unable to generate a certificate for the domains [passbolt.domain.com]: error: one or more domains had a problem:\n[passbolt.domain.com] acme: error: 400 :: urn:ietf:params:acme:error:connection :: 198.51.100.0: Timeout during connect (likely firewall problem)\n" rule="Host(`passbolt.domain.com`)" providerName=letsencrypt.acme ACME CA="https://acme-v02.api.letsencrypt.org/directory" routerName=passbolt-https@docker
time="2024-10-08T14:33:44Z" level=error msg="Unable to obtain ACME certificate for domains \"passbolt.domain.com\": unable to generate a certificate for the domains [passbolt.domain.com]: error: one or more domains had a problem:\n[passbolt.domain.com] acme: error: 400 :: urn:ietf:params:acme:error:connection :: 198.51.100.0: Connection refused\n" providerName=letsencrypt.acme ACME CA="https://acme-v02.api.letsencrypt.org/directory" routerName=passbolt-https@docker rule="Host(`passbolt.domain.com`)"
I have replaced my actual domain with a placeholder: passbolt.domain.com and the IP with: 198.51.100.0
Has a certificate been successfully generated for the site in /etc/letsencrypt? If not, can you run certbot certonly -d <passbolt domain name> and paste the output here?
nope, letsencypt hasn’t even created a directory yet.
root@f7494cbbd189:/usr/share/php/passbolt# certbot certonly -d passbolt.domain.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
How would you like to authenticate with the ACME CA?
1: Spin up a temporary webserver (standalone)
2: Place files in webroot directory (webroot)
Input the webroot for passbolt.domain.com`: (Enter ‘c’ to cancel): /etc/nginx/sites-enabled
Certbot failed to authenticate some domains (authenticator: webroot). The Certificate Authority reported these problems:
Domain: passbolt.domain.com
Type: connection
Detail: 198.51.100.0: Fetching http://passbolt.domain.com/.well-known/acme-challenge/5gDFu-o7vu9eHzGeIDKHRg-rvHvQtnRmXlDze0xjXgM: Timeout during connect (likely firewall problem)
Hint: The Certificate Authority failed to download the temporary challenge files created by Certbot. Ensure that the listed domains serve their content from the provided --webroot-path/-w and that files created there can be downloaded from the internet.
Some challenges have failed.
Ask for help or search for solutions at https://community.letsencrypt.org. See the logfile /var/log/letsencrypt/letsencrypt.log or re-run Certbot with -v for more details.
root@f7494cbbd189:/usr/share/php/passbolt#
The problem was due to my ISP provider not allowing port 80 on their end.
I have requested a static DHCP and now i can execute the certbot cert process.