diff --git a/passbolt/docker-compose.yml b/passbolt/docker-compose.yml new file mode 100644 index 0000000..e41ee25 --- /dev/null +++ b/passbolt/docker-compose.yml @@ -0,0 +1,57 @@ +version: '3.3' + +volumes: + pb-mariadb: + pb-gpg_volume: + pb-images_volume: + +networks: + traefik_web: + external: + name: traefik_web + +services: + + pb-mariadb: + image: mariadb:10.4.11 + container_name: pb-mariadb + hostname: pb-mariadb + restart: always + volumes: + - pb-mariadb:/var/lib/mysql + networks: + - traefik_web + environment: + MYSQL_ROOT_PASSWORD: thasdfisIsRoot29837! + MYSQL_PASSWORD: p@ssblt!!1NOW + MYSQL_DATABASE: db_passbolt + MYSQL_USER: passbolt + + # https://help.passbolt.com/hosting/install/ce/docker.html + # once it's running you will have to manually create your first user: + # as www-data user: ./cake passbolt register_user -u -f -l -r admin + passbolt: + image: passbolt/passbolt:2.12.0-debian + container_name: pb-passbolt + hostname: passbolt + networks: + - traefik_web + restart: always + tty: true + tmpfs: + - /run + depends_on: + - pb-mariadb + env_file: + - passbolt.env + command: ["/usr/bin/wait-for.sh", "-t", "0", "pb-mariadb:3306", "--", "/docker-entrypoint.sh"] + volumes: + - pb-gpg_volume:/var/www/passbolt/config/gpg + - pb-images_volume:/var/www/passbolt/webroot/img/public + - ./license:/var/www/passbolt/config/license + labels: + - "traefik.enable=true" + - "traefik.http.routers.passbolt.rule=Host(`passbolt.nickyeoman.com`)" + - "traefik.http.routers.passbolt.entrypoints=websecure" + - "traefik.http.routers.passbolt.tls=true" + - "traefik.http.services.passbolt.loadbalancer.server.port=80" diff --git a/passbolt/license b/passbolt/license new file mode 100644 index 0000000..b0047fa --- /dev/null +++ b/passbolt/license @@ -0,0 +1 @@ +None diff --git a/passbolt/passbolt.env b/passbolt/passbolt.env new file mode 100644 index 0000000..e26cf6e --- /dev/null +++ b/passbolt/passbolt.env @@ -0,0 +1,12 @@ +# URL +APP_FULL_BASE_URL=https://passbolt.nickyeoman.com + +# Database settings +DATASOURCES_DEFAULT_HOST=pb-mariadb +DATASOURCES_DEFAULT_USERNAME=passbolt +DATASOURCES_DEFAULT_PASSWORD=p@ssblt!!1NOW +DATASOURCES_DEFAULT_DATABASE=db_passbolt +DATASOURCES_DEFAULT_PORT=3306 + +# Registration +PASSSBOLT_REGISTRATION_PUBLIC=true diff --git a/portainer/docker-compose.yml b/portainer/docker-compose.yml index 9f72df0..dda5a5b 100644 --- a/portainer/docker-compose.yml +++ b/portainer/docker-compose.yml @@ -12,9 +12,11 @@ services: portainer: image: portainer/portainer + container_name: portainer + hostname: portainer command: -H unix:///var/run/docker.sock restart: always - networks: + networks: - traefik_web volumes: - /var/run/docker.sock:/var/run/docker.sock diff --git a/traefik/docker-compose.yml b/traefik/docker-compose.yml index 879511a..e88cf3a 100644 --- a/traefik/docker-compose.yml +++ b/traefik/docker-compose.yml @@ -1,5 +1,5 @@ ############################################################################### -# docker-compose up -d +# docker-compose up -d ############################################################################### version: '3.3' @@ -33,7 +33,9 @@ services: - "traefik.http.routers.traefik.tls.certresolver=leresolver" - "traefik.http.routers.traefik.entrypoints=websecure" - "traefik.http.routers.traefik.middlewares=authtraefik" - - "traefik.http.middlewares.authtraefik.basicauth.users=nick:$$apr1$$9Bb9ylLo$$01sClSThg7OMbRg7Qj3re0" + # https://medium.com/@techupbusiness/add-basic-authentication-in-docker-compose-files-with-traefik-34c781234970 + # echo $(htpasswd -nbB "") | sed -e s/\\$/\\$\\$/g + - "traefik.http.middlewares.authtraefik.basicauth.users=nick:encryptedpasswordgoeshere" # global redirect to https - "traefik.http.routers.http-catchall.rule=hostregexp(`{host:.+}`)" - "traefik.http.routers.http-catchall.entrypoints=web"