使用 docker-compose 的简单 15 分钟 passbolt 设置

这是我运行本地 passbolt 实例的方式。

首先,创建目录。我使用 /opt/passbolt运行以下所有命令并将以下所有文件放在该目录中!

首先,使用正确的权限初始化文件夹:

init_passbolt_dirs.sh
mkdir -p passbolt_gpg
chown -R 33:33 passbolt_gpg

现在创建一个带有随机密码的 .env 文件(我建议使用 pwgen 30):

passbolt_env_example.sh
MARIADB_ROOT_PASSWORD=meiJieseingi4dutiareimoh2Aiv5j
MARIADB_USER_PASSWORD=ohre3ye1oNexeShiuChaengahzuemo

现在放置你的 docker-compose.yml:

docker-compose.yml
services:
  mariadb:
    image: mariadb:latest
    environment:
      - MYSQL_DATABASE=passbolt
      - MYSQL_USER=passbolt
      - MYSQL_PASSWORD=${MARIADB_USER_PASSWORD}
      - MYSQL_ROOT_PASSWORD=${MARIADB_ROOT_PASSWORD}
    volumes:
      - ./mariadb_data:/var/lib/mysql

  passbolt:
    image: passbolt/passbolt:latest-ce
    tty: true
    depends_on:
      - mariadb
    environment:
      - DATASOURCES_DEFAULT_HOST=mariadb
      - DATASOURCES_DEFAULT_USERNAME=passbolt
      - DATASOURCES_DEFAULT_PASSWORD=${MARIADB_USER_PASSWORD}
      - DATASOURCES_DEFAULT_DATABASE=passbolt
      - DATASOURCES_DEFAULT_PORT=3306
      - DATASOURCES_QUOTE_IDENTIFIER=true
      - APP_FULL_BASE_URL=https://passbolt.mydomain.com
      - EMAIL_DEFAULT_FROM=passbolt@mydomain.com
      - EMAIL_TRANSPORT_DEFAULT_HOST=smtp.mydomain.com
      - EMAIL_TRANSPORT_DEFAULT_PORT=587
      - EMAIL_TRANSPORT_DEFAULT_USERNAME=passbolt@gepa-mbh.de
      - EMAIL_TRANSPORT_DEFAULT_PASSWORD=yei5QueiNa5ahF0Aice8Na0aphoyoh
      - EMAIL_TRANSPORT_DEFAULT_TLS=true
      - PASSBOLT_KEY_EMAIL=passbolt@mydomain.com
    volumes:
      - ./passbolt_gpg:/etc/passbolt/gpg
      - ./passbolt_web:/usr/share/php/passbolt/webroot/img/public
    command: ["/usr/bin/wait-for.sh", "-t", "0", "mariadb:3306", "--", "/docker-entrypoint.sh"]
    ports:
      - 17880:80

确保将所有电子邮件地址、域名和 SMTP 凭据替换为适合你设置的值。

现在首次启动 passbolt,它将初始化数据库:

passbolt_docker_compose_up.sh
docker-compose up

你需要在以下步骤中保持 passbolt 运行。

首先,我们将发送一封测试电子邮件:

passbolt_send_test_email.sh
docker-compose exec passbolt su -m -c "bin/cake passbolt send_test_email"

如果你看到

passbolt_email_success.txt
The message has been successfully sent!

那么你的 SMTP 配置正确。否则,调试错误消息,并在必要时修改 docker-compose.yml 中的 EMAIL_… 环境变量,然后重启 passbolt。

现在我们将创建管理员用户:

passbolt_register_admin.sh
docker-compose exec passbolt su -m -c "bin/cake passbolt register_user -u john.doe@mydomain.com -f John -l Doe -r admin" -s /bin/sh www-data

如果你想创建普通(非管理员)用户,使用 user 而不是 admin

passbolt_register_user.sh
docker-compose exec passbolt su -m -c "bin/cake passbolt register_user -u jane.doe@mydomain.com -f Jane -l Doe -r user" -s /bin/sh www-data

之后,唯一剩下要做的是创建 systemd 服务以自动启动你的 passbolt 服务:

create_docker_compose_service.sh
curl -fsSL https://techoverflow.net/scripts/create-docker-compose-service.sh | sudo bash /dev/stdin

Passbolt 现在在端口 17880 上运行(你可以使用 docker-compose.yml 配置此端口)。只需适当配置你的反向代理指向此端口。


Check out similar posts by category: Container, Docker