Skip to content

Instantly share code, notes, and snippets.

@Mstaaravin
Last active July 26, 2025 17:57
Show Gist options
  • Save Mstaaravin/8f29e6dfc124d9e3181875d311046a26 to your computer and use it in GitHub Desktop.
Save Mstaaravin/8f29e6dfc124d9e3181875d311046a26 to your computer and use it in GitHub Desktop.
passbolt docker compose.yml
---
services:
passboltdb:
image: library/mariadb:10.3
container_name: passboltdb
hostname: passboltdb
networks:
homelab:
environment:
- MYSQL_RANDOM_ROOT_PASSWORD=true
- MYSQL_DATABASE="passbolt"
- MYSQL_USER="passboltdb"
- MYSQL_PASSWORD="P4ssb0ltdb"
volumes:
- ./mysql:/var/lib/mysql
healthcheck:
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "passboltdb", "-pP4ssb0ltdb"]
interval: 10s
timeout: 5s
retries: 5
start_period: 30s
restart: unless-stopped
passbolt:
image: passbolt/passbolt:latest-ce
container_name: passbolt
hostname: passbolt
depends_on:
passboltdb:
condition: service_healthy
networks:
homelab:
expose:
- "80"
- "443"
environment:
- APP_FULL_BASE_URL='https://passbolt.home.lab'
- DATASOURCES_DEFAULT_HOST='passboltdb'
- DATASOURCES_DEFAULT_USERNAME='passboltdb'
- DATASOURCES_DEFAULT_PASSWORD='P4ssb0ltdb'
- DATASOURCES_DEFAULT_DATABASE='passbolt'
volumes:
- gpg_volume:/etc/passbolt/gpg
- jwt_volume:/etc/passbolt/jwt
command:
[
"/usr/bin/wait-for.sh",
"-t",
"60",
"passboltdb:3306",
"--",
"/docker-entrypoint.sh"
]
labels:
- "traefik.enable=true"
- "traefik.http.routers.passbolt.rule=Host(`passbolt.home.lab`)"
- "traefik.http.routers.passbolt.entrypoints=websecure"
- "traefik.http.routers.passbolt.tls=true"
- "traefik.http.services.passbolt.loadbalancer.server.port=80"
restart: unless-stopped
volumes:
gpg_volume:
jwt_volume:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment