Skip to content

NethServer/ns8-passbolt

Repository files navigation

ns8-passbolt

Passbolt Community Edition module: a password manager for teams.

Install

Instantiate the module with:

add-module ghcr.io/nethserver/passbolt:latest 1

The output of the command will return the instance name. Output example:

{"module_id": "passbolt1", "image_name": "passbolt", "image_url": "ghcr.io/nethserver/passbolt:latest"}

Configure

Let's assume that the passbolt instance is named passbolt1.

Launch configure-module, by setting the following parameters:

  • host: Fully qualified domain name of the passbolt instance
  • lets_encrypt: Enable or disable Let's Encrypt certificate

Example:

api-cli run module/passbolt1/configure-module --data '{"host": "passbolt.gs.nethserver.net", "lets_encrypt": false}'

The above command will:

  • start and configure the passbolt instance
  • redirect from HTTP to HTTPs is enforced

Send a test HTTP request to the passbolt backend service:

curl https://passbolt.gs.nethserver.net/

Smarthost setting discovery

Some configuration settings, like the smarthost setup, are not part of the configure-module action input: they are discovered by looking at some Redis keys. To ensure the module is always up-to-date with the centralized smarthost setup every time passbolt starts, the command bin/discover-smarthost runs and refreshes the state/smarthost.env file with fresh values from Redis.

Furthermore if smarthost setup is changed when passbolt is already running, the event handler events/smarthost-changed/10reload_services restarts the main module service.

See also the systemd/user/passbolt.service file.

This setting discovery is just an example to understand how the module is expected to work: it can be rewritten or discarded completely.

Uninstall

To uninstall the instance:

remove-module --no-preserve passbolt1

Testing

Test the module using the test-module.sh script:

./test-module.sh <NODE_ADDR> ghcr.io/nethserver/passbolt:latest

The tests are made using Robot Framework

UI translation

Translated with Weblate.

To setup the translation process: