Sign inSign up

astopy/passbolt

By astopy

•Updated over 8 years ago

Fork for testing PRs. Don't deploy to production :)

Image
0

876

astopy/passbolt repository overview

       ____                  __          ____          .-.
      / __ \____  _____ ____/ /_  ____  / / /_    .--./ /      _.---.,
     / /_/ / __ `/ ___/ ___/ __ \/ __ \/ / __/     '-,  (__..-`       \
    / ____/ /_/ (__  |__  ) /_/ / /_/ / / /_          \                |
   /_/    \__,_/____/____/_,___/\____/_/\__/           `,.__.   ^___.-/
                                                         `-./ .'...--`
  The open source password manager for teams                `'
  (c) 2018 Passbolt SARL
  https://www.passbolt.com

Codacy Badge Docker Pulls GitHub release license Twitter Follow

⁠What is passbolt?

Passbolt is a free and open source password manager that allows team members to store and share credentials securely.

⁠Requirements:

  • rng-tools or haveged are required on host machine to speed up entropy generation on containers. This way gpg key creation on passbolt container will be faster.
  • mariadb/mysql >= 5.0

⁠Usage

Users are encouraged to use official docker image from the docker hub⁠.

⁠Start passbolt instance

Passbolt requires mysql to be running. The following example use mysql official docker image with the default passbolt credentials.

$ docker run -e MYSQL_ROOT_PASSWORD=<root_password> \
             -e MYSQL_DATABASE=<mysql_database> \
             -e MYSQL_USER=<mysql_user> \
             -e MYSQL_PASSWORD=<mysql_password> \
             mysql

Then you can start passbolt just by providing the database container ip in the db_host environment variable.

$ docker run --name passbolt \
             -e DATASOURCES_DEFAULT_HOST=<mysql_container_host> \
             -e DATASOURCES_DEFAULT_PASSWORD=<mysql_password> \
             -e DATASOURCES_DEFAULT_USERNAME=<mysql_user> \
             -e DATASOURCES_DEFAULT_DATABASE=<mysql_database> \
             -e APP_FULL_BASE_URL=https://mydomain.com \
             passbolt/passbolt:develop-debian

Once the container is running create your first admin user:

$ docker exec passbolt su -m -c "/var/www/passbolt/bin/cake passbolt register_user -u [email protected] -f yourname -l surname -r admin" -s /bin/sh www-data

This registration command will return a single use url required to continue the web browser setup and finish the registration. Your passbolt instance should be available browsing https://yourdomain.com

⁠Configure passbolt

⁠Environment variables reference

Passbolt docker image provides several environment variables to configure different aspects:

Variable nameDescriptionDefault value
APP_FULL_BASE_URLPassbolt base urlfalse
DATASOURCES_DEFAULT_HOSTDatabase hostnamelocalhost
DATASOURCES_DEFAULT_PORTDatabase port3306
DATASOURCES_DEFAULT_USERNAMEDatabase username''
DATASOURCES_DEFAULT_PASSWORDDatabase password''
DATASOURCES_DEFAULT_DATABASEDatabase name''
EMAIL_TRANSPORT_DEFAULT_CLASS_NAMEEmail classnameSmtp
EMAIL_DEFAULT_FROMFrom email addressyou@localhost
EMAIL_DEFAULT_TRANSPORTSets transport methoddefault
EMAIL_TRANSPORT_DEFAULT_HOSTServer hostnamelocalhost
EMAIL_TRANSPORT_DEFAULT_PORTServer port25
EMAIL_TRANSPORT_DEFAULT_TIMEOUTTimeout30
EMAIL_TRANSPORT_DEFAULT_USERNAMEUsername for email server authnull
EMAIL_TRANSPORT_DEFAULT_PASSWORDPassword for email server authnull
EMAIL_TRANSPORT_DEFAULT_CLIENTClientnull
EMAIL_TRANSPORT_DEFAULT_TLSSet tlsnull
EMAIL_TRANSPORT_DEFAULT_URLSet urlnull
GNUPGHOMEpath to gnupghome directory/home/www-data/.gnupg
PASSBOLT_KEY_LENGTHGpg desired key length2048
PASSBOLT_SUBKEY_LENGTHGpg desired subkey length2048
PASSBOLT_KEY_NAMEKey owner namePassbolt default user
PASSBOLT_KEY_EMAILKey owner email address[email protected]⁠
PASSBOLT_KEY_EXPIRATIONKey expiration date0, never expires
PASSBOLT_GPG_SERVER_KEY_FINGERPRINTGnuPG fingerprintnull
PASSBOLT_GPG_SERVER_KEY_PUBLICPath to GnuPG public server key/var/www/passbolt/config/gpg/serverkey.asc
PASSBOLT_GPG_SERVER_KEY_PRIVATEPath to GnuPG private server key/var/www/passbolt/config/gpg/serverkey_private.asc
PASSBOLT_REGISTRATION_PUBLICDefines if users can registerfalse
PASSBOLT_SSL_FORCERedirects http to httpstrue
PASSBOLT_SECURITY_SET_HEADERSSend CSP Headerstrue
SECURITY_SALTCakePHP security saltSALT

For more env variables supported please check default.php⁠ For more env variables supported please check app.default.php⁠

⁠Configuration files

What if you already have a set of gpg keys and custom configuration files for passbolt? It it possible to mount the desired configuration files as volumes.

  • /var/www/passbolt/config/app.php
  • /var/www/passbolt/config/passbolt.php
  • /var/www/passbolt/config/gpg/serverkey.asc
  • /var/www/passbolt/config/gpg/serverkey_private.asc
  • /var/www/passbolt/webroot/img/public/images
⁠SSL certificate files

It is also possible to mount a ssl certificate on the following paths:

  • /etc/ssl/certs/certificate.crt
  • /etc/ssl/certs/certificate.key
⁠docker-compose

Usage:

$ docker-compose up

⁠Requirements:

  • rng-tools or haveged are required on host machine to speed up entropy generation on containers. This way gpg key creation on passbolt container will be faster.
  • mysql >= 5.6

Tag summary

Content type

Image

Digest

Size

204.5 MB

Last updated

over 8 years ago

docker pull astopy/passbolt