Files
stacks/passbolt/compose.yml
T
valknar 6f12bf9af7 fix(passbolt): disable metadata encryption for new instance setup
Passbolt 5.x's isNotCreatedInTheFutureRule has zero tolerance for
clock skew — even 1 second between browser and server causes the
metadata key creation to fail during first setup. Disabling the
automatic metadata setup for new instances allows the browser
extension to complete account setup successfully.

Encrypted metadata can be enabled from the admin panel post-setup.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-09 21:24:51 +02:00

67 lines
2.5 KiB
YAML

services:
passbolt:
image: passbolt/passbolt:latest-ce
container_name: passbolt
environment:
APP_FULL_BASE_URL: https://${TRAEFIK_HOST}
PASSBOLT_SSL_FORCE: "false"
TZ: ${TIMEZONE:-Europe/Amsterdam}
PASSBOLT_REGISTRATION_PUBLIC: "false"
PASSBOLT_PLUGINS_METADATA_ENABLE_FOR_NEW_INSTANCES: "false"
DATASOURCES_DEFAULT_HOST: passbolt_db
DATASOURCES_DEFAULT_PORT: "5432"
DATASOURCES_DEFAULT_DATABASE: passbolt
DATASOURCES_DEFAULT_USERNAME: passbolt
DATASOURCES_DEFAULT_PASSWORD: passbolt
DATASOURCES_DEFAULT_DRIVER: Cake\Database\Driver\Postgres
DATASOURCES_DEFAULT_ENCODING: utf8
DATASOURCES_QUOTE_IDENTIFIER: "true"
EMAIL_TRANSPORT_DEFAULT_HOST: mailpit
EMAIL_TRANSPORT_DEFAULT_PORT: "1025"
EMAIL_TRANSPORT_DEFAULT_TLS: "false"
EMAIL_DEFAULT_FROM: passbolt@pivoine.art
EMAIL_DEFAULT_FROM_NAME: Passbolt
volumes:
- ../.data/passbolt/gpg:/etc/passbolt/gpg
- ../.data/passbolt/jwt:/etc/passbolt/jwt
depends_on:
db:
condition: service_healthy
restart: unless-stopped
labels:
- "traefik.enable=true"
- "traefik.http.middlewares.passbolt-redirect-web-secure.redirectscheme.scheme=https"
- "traefik.http.routers.passbolt-web.middlewares=passbolt-redirect-web-secure"
- "traefik.http.routers.passbolt-web.rule=Host(`${TRAEFIK_HOST}`)"
- "traefik.http.routers.passbolt-web.entrypoints=web"
- "traefik.http.routers.passbolt-web-secure.rule=Host(`${TRAEFIK_HOST}`)"
- "traefik.http.routers.passbolt-web-secure.tls.certresolver=resolver"
- "traefik.http.routers.passbolt-web-secure.entrypoints=web-secure"
- "traefik.http.routers.passbolt-web-secure.middlewares=security-headers@file,no-index@file"
- "traefik.http.services.passbolt-web-secure.loadbalancer.server.port=80"
- "traefik.docker.network=${NETWORK_NAME}"
networks:
- compose_network
db:
image: postgres:16-alpine
container_name: passbolt_db
environment:
POSTGRES_DB: passbolt
POSTGRES_USER: passbolt
POSTGRES_PASSWORD: passbolt
POSTGRES_INITDB_ARGS: --data-checksums
volumes:
- ../.data/passbolt/db:/var/lib/postgresql/data
restart: unless-stopped
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 5s
timeout: 5s
retries: 5
networks:
- compose_network
networks:
compose_network:
name: ${NETWORK_NAME}
external: true