会社でのパスワード管理に、passboltが使えるのでは、考えていました。
少し時間があったので、dockerのイメージを使って、Macに入れてみました。
Passbolt を chrome から http://localhost でアクセスできるようにします。
DockerHub
使用したバージョンなど
- docker: 18.03.1-ce-mac64
- passbolt: 2.0.4-debian
- mysql: 5.7.22
- 8系を使用するとpassboltのAPI側でSQLエラーになり、表のjsonは "internal error occurred" になります
dockerでのセットアップ
mysqlとpassboltを同一ネットワークにおくためのネットワークを作ります
docker network create passbolt_network
# ネットワークが作られたのを確認します
docker network ls
NETWORK ID NAME DRIVER SCOPE
999999999999 bridge bridge local
999999999999 host host local
999999999999 none null local
999999999999 passbolt_network bridge local
mysqlのコンテナを起動します
docker run --name passbolt-mysql -d -p 3306:3306 --net passbolt_network -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -e MYSQL_ROOT_PASSWORD=hogehoge -e MYSQL_DATABASE=passbolt -e MYSQL_USER=passbolt -e MYSQL_PASSWORD=passbolt mysql:5.7.22 --default-authentication-plugin=mysql_native_password
- mysqlを自ホストの3306ポートにバイパスしてコンテナを作成します
- その際、default-authentication-pluginをnative_passwordに変更しておきます
- 変更しないと、接続時に "Error: Authentication plugin 'caching_sha2_password' cannot be loaded" となります
- @see https://stackoverflow.com/questions/49945649/mysql-error-authentication-plugin-caching-sha2-password-cannot-be-loaded
- docker ps でコンテナが起動しているか確認します
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
999999999999 mysql:5.7.22 "docker-entrypoint.s…" 7 seconds ago Up 6 seconds 0.0.0.0:3306->3306/tcp passbolt-mysql
- ホストのmysqlクライアントでdockerコンテナ上のmysqlに接続できることを確認します
mysql -h 127.0.0.1 -uroot -phogehoge
passboltのコンテナを起動します
docker run -d --name passbolt-app -p 80:80 -p 443:443 -p 9000:9000 --net passbolt_network --link passbolt-mysql:mysql -e DATASOURCES_DEFAULT_HOST=passbolt-mysql -e DATASOURCES_DEFAULT_PASSWORD=passbolt -e DATASOURCES_DEFAULT_USERNAME=passbolt -e DATASOURCES_DEFAULT_DATABASE=passbolt -e APP_FULL_BASE_URL=https://localhost passbolt/passbolt:2.0.4-debian
- passbolt_networkを使ってpassboltをmysqlとリンクして起動します。
- 自ホストのhttp, https, 9000番ポートをバイパスします。
- コンテナの起動を確認します
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
999999999999 passbolt/passbolt:2.0.4-debian "docker-php-entrypoi…" 34 seconds ago Up 33 seconds 0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp, 0.0.0.0:9000->9000/tcp passbolt-app
999999999999 mysql:5.7.22 "docker-entrypoint.s…" 6 minutes ago Up 6 minutes 0.0.0.0:3306->3306/tcp passbolt-mysql
- 管理者権限のユーザを作ります
docker exec passbolt-app su -m -c "/var/www/passbolt/bin/cake passbolt register_user -u yourname@yourdomain.com -f first_name -l last_name -r admin" -s /bin/sh www-data
# 以下のように表示されたら、URLをコピーして自分のブラウザに貼り付けます
____ __ ____
/ __ \____ _____ ____/ /_ ____ / / /_
/ /_/ / __ `/ ___/ ___/ __ \/ __ \/ / __/
/ ____/ /_/ (__ |__ ) /_/ / /_/ / / /
/_/ \__,_/____/____/_.___/\____/_/\__/
Open source password manager for teams
---------------------------------------------------------------
User saved successfully.
To start registration follow the link in provided in your mailbox or here:
https://localhost/setup/install/999999999999999999999999999
URLを貼り付けて、上の画面が出れば成功です。
chromeのextensionが、passboltのプラグインが既に他の名前で設定されています、と注意を表示していますが、特に気にしないでください。