{ "1.1.8": { "healthy": true, "supported": true, "healthy_error": null, "location": "/__w/charts/charts/community/passbolt/1.1.8", "last_update": "2023-12-20 10:45:42", "required_features": [ "definitions/certificate", "normalize/ixVolume" ], "human_version": "4.4.2.1_1.1.8", "version": "1.1.8", "chart_metadata": { "name": "passbolt", "description": "Passbolt is a security-first, open source password manager", "annotations": { "title": "Passbolt" }, "type": "application", "version": "1.1.8", "apiVersion": "v2", "appVersion": "4.4.2.1", "kubeVersion": ">=1.16.0-0", "maintainers": [ { "name": "truenas", "url": "https://www.truenas.com/", "email": "dev@ixsystems.com" } ], "dependencies": [ { "name": "common", "repository": "file://../../../common", "version": "1.2.5" } ], "home": "https://www.passbolt.com", "icon": "https://media.sys.truenas.net/apps/passbolt/icons/icon.svg", "sources": [ "https://hub.docker.com/r/passbolt/passbolt", "https://github.com/truenas/charts/tree/master/community/passbolt", "https://www.passbolt.com" ], "keywords": [ "password", "manager" ] }, "app_metadata": { "runAsContext": [ { "userName": "www-data", "groupName": "www-data", "gid": 33, "uid": 33, "description": "Passbolt run as a non-root user" } ], "capabilities": [], "hostMounts": [] }, "schema": { "groups": [ { "name": "Passbolt Configuration", "description": "Configure Passbolt" }, { "name": "Network Configuration", "description": "Configure Network for Passbolt" }, { "name": "Storage Configuration", "description": "Configure Storage for Passbolt" }, { "name": "Resources Configuration", "description": "Configure Resources for Passbolt" } ], "portals": { "web_portal": { "protocols": [ "$kubernetes-resource_configmap_portal_protocol" ], "host": [ "$kubernetes-resource_configmap_portal_host" ], "ports": [ "$kubernetes-resource_configmap_portal_port" ], "path": "$kubernetes-resource_configmap_portal_path" } }, "questions": [ { "variable": "passboltConfig", "label": "", "group": "Passbolt Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "appUrl", "label": "App URL", "description": "The URL for the Passbolt WebUI.
\nFormat is: https://sub.domain.tld:port\n", "schema": { "type": "uri", "default": "", "required": true } }, { "variable": "additionalEnvs", "label": "Additional Environment Variables", "description": "Configure additional environment variables for Passbolt.", "schema": { "type": "list", "default": [], "items": [ { "variable": "env", "label": "Environment Variable", "schema": { "type": "dict", "attrs": [ { "variable": "name", "label": "Name", "schema": { "type": "string", "required": true } }, { "variable": "value", "label": "Value", "schema": { "type": "string", "required": true } } ] } } ] } } ] } }, { "variable": "passboltNetwork", "label": "", "group": "Network Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "hostNetwork", "label": "Host Network", "description": "Bind to the host network. It's recommended to keep this disabled.
\n", "schema": { "type": "boolean", "default": false } }, { "variable": "webPort", "label": "Web Port", "description": "The port for the Passbolt WebUI.", "schema": { "type": "int", "default": 30097, "show_if": [ [ "hostNetwork", "=", false ] ], "min": 9000, "max": 65535, "required": true } }, { "variable": "certificateID", "label": "Certificate", "description": "The certificate to use for Passbolt.", "schema": { "type": "int", "null": true, "$ref": [ "definitions/certificate" ], "enum": [ { "value": null, "description": "No Certificate" } ], "default": null } } ] } }, { "variable": "passboltStorage", "label": "", "group": "Storage Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "gpg", "label": "Passbolt GPG Storage", "description": "The path to store Passbolt GPG.", "schema": { "type": "dict", "attrs": [ { "variable": "type", "label": "Type", "description": "ixVolume: Is dataset created automatically by the system.
\nHost Path: Is a path that already exists on the system.\n", "schema": { "type": "string", "required": true, "immutable": true, "default": "ixVolume", "enum": [ { "value": "hostPath", "description": "Host Path (Path that already exists on the system)" }, { "value": "ixVolume", "description": "ixVolume (Dataset created automatically by the system)" } ] } }, { "variable": "datasetName", "label": "Dataset Name", "schema": { "type": "string", "show_if": [ [ "type", "=", "ixVolume" ] ], "required": true, "hidden": true, "immutable": true, "default": "gpg", "$ref": [ "normalize/ixVolume" ] } }, { "variable": "hostPath", "label": "Host Path", "schema": { "type": "hostpath", "show_if": [ [ "type", "=", "hostPath" ] ], "required": true } } ] } }, { "variable": "jwt", "label": "Passbolt JWT Storage", "description": "The path to store Passbolt JWT.", "schema": { "type": "dict", "attrs": [ { "variable": "type", "label": "Type", "description": "ixVolume: Is dataset created automatically by the system.
\nHost Path: Is a path that already exists on the system.\n", "schema": { "type": "string", "required": true, "immutable": true, "default": "ixVolume", "enum": [ { "value": "hostPath", "description": "Host Path (Path that already exists on the system)" }, { "value": "ixVolume", "description": "ixVolume (Dataset created automatically by the system)" } ] } }, { "variable": "datasetName", "label": "Dataset Name", "schema": { "type": "string", "show_if": [ [ "type", "=", "ixVolume" ] ], "required": true, "hidden": true, "immutable": true, "default": "jwt", "$ref": [ "normalize/ixVolume" ] } }, { "variable": "hostPath", "label": "Host Path", "schema": { "type": "hostpath", "show_if": [ [ "type", "=", "hostPath" ] ], "required": true } } ] } }, { "variable": "mariadbData", "label": "Passbolt MariaDB Data Storage", "description": "The path to store Passbolt MariaDB Data.", "schema": { "type": "dict", "attrs": [ { "variable": "type", "label": "Type", "description": "ixVolume: Is dataset created automatically by the system.
\nHost Path: Is a path that already exists on the system.\n", "schema": { "type": "string", "required": true, "immutable": true, "default": "ixVolume", "enum": [ { "value": "hostPath", "description": "Host Path (Path that already exists on the system)" }, { "value": "ixVolume", "description": "ixVolume (Dataset created automatically by the system)" } ] } }, { "variable": "datasetName", "label": "Dataset Name", "schema": { "type": "string", "show_if": [ [ "type", "=", "ixVolume" ] ], "required": true, "hidden": true, "immutable": true, "default": "mariadbData", "$ref": [ "normalize/ixVolume" ] } }, { "variable": "hostPath", "label": "Host Path", "schema": { "type": "hostpath", "show_if": [ [ "type", "=", "hostPath" ] ], "required": true } } ] } }, { "variable": "mariadbBackup", "label": "Passbolt MariaDB Backup Storage", "description": "The path to store Passbolt MariaDB Backup.", "schema": { "type": "dict", "attrs": [ { "variable": "type", "label": "Type", "description": "ixVolume: Is dataset created automatically by the system.
\nHost Path: Is a path that already exists on the system.\n", "schema": { "type": "string", "required": true, "immutable": true, "default": "ixVolume", "enum": [ { "value": "hostPath", "description": "Host Path (Path that already exists on the system)" }, { "value": "ixVolume", "description": "ixVolume (Dataset created automatically by the system)" } ] } }, { "variable": "datasetName", "label": "Dataset Name", "schema": { "type": "string", "show_if": [ [ "type", "=", "ixVolume" ] ], "required": true, "hidden": true, "immutable": true, "default": "mariadbBackup", "$ref": [ "normalize/ixVolume" ] } }, { "variable": "hostPath", "label": "Host Path", "schema": { "type": "hostpath", "show_if": [ [ "type", "=", "hostPath" ] ], "required": true } } ] } }, { "variable": "additionalStorages", "label": "Additional Storage", "description": "Additional storage for Passbolt.", "schema": { "type": "list", "default": [], "items": [ { "variable": "storageEntry", "label": "Storage Entry", "schema": { "type": "dict", "attrs": [ { "variable": "type", "label": "Type", "description": "ixVolume: Is dataset created automatically by the system.
\nHost Path: Is a path that already exists on the system.
\nSMB Share: Is a SMB share that is mounted to a persistent volume claim.\n", "schema": { "type": "string", "required": true, "default": "ixVolume", "immutable": true, "enum": [ { "value": "hostPath", "description": "Host Path (Path that already exists on the system)" }, { "value": "ixVolume", "description": "ixVolume (Dataset created automatically by the system)" }, { "value": "smb-pv-pvc", "description": "SMB Share (Mounts a persistent volume claim to a SMB share)" } ] } }, { "variable": "mountPath", "label": "Mount Path", "description": "The path inside the container to mount the storage.", "schema": { "type": "path", "required": true } }, { "variable": "hostPath", "label": "Host Path", "description": "The host path to use for storage.", "schema": { "type": "hostpath", "show_if": [ [ "type", "=", "hostPath" ] ], "required": true } }, { "variable": "datasetName", "label": "Dataset Name", "description": "The name of the dataset to use for storage.", "schema": { "type": "string", "show_if": [ [ "type", "=", "ixVolume" ] ], "required": true, "immutable": true, "default": "storage_entry", "$ref": [ "normalize/ixVolume" ] } }, { "variable": "server", "label": "Server", "description": "The server for the SMB share.", "schema": { "type": "string", "show_if": [ [ "type", "=", "smb-pv-pvc" ] ], "required": true } }, { "variable": "share", "label": "Share", "description": "The share name for the SMB share.", "schema": { "type": "string", "show_if": [ [ "type", "=", "smb-pv-pvc" ] ], "required": true } }, { "variable": "domain", "label": "Domain (Optional)", "description": "The domain for the SMB share.", "schema": { "type": "string", "show_if": [ [ "type", "=", "smb-pv-pvc" ] ] } }, { "variable": "username", "label": "Username", "description": "The username for the SMB share.", "schema": { "type": "string", "show_if": [ [ "type", "=", "smb-pv-pvc" ] ], "required": true } }, { "variable": "password", "label": "Password", "description": "The password for the SMB share.", "schema": { "type": "string", "show_if": [ [ "type", "=", "smb-pv-pvc" ] ], "required": true, "private": true } }, { "variable": "size", "label": "Size (in Gi)", "description": "The size of the volume quota.", "schema": { "type": "int", "show_if": [ [ "type", "=", "smb-pv-pvc" ] ], "required": true, "min": 1, "default": 1 } } ] } } ] } } ] } }, { "variable": "resources", "label": "", "group": "Resources Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "limits", "label": "Limits", "schema": { "type": "dict", "attrs": [ { "variable": "cpu", "label": "CPU", "description": "CPU limit for Passbolt.", "schema": { "type": "string", "max_length": 6, "valid_chars": "^(0\\.[1-9]|[1-9][0-9]*)(\\.[0-9]|m?)$", "valid_chars_error": "Valid CPU limit formats are
\n- Plain Integer - eg. 1
\n- Float - eg. 0.5
\n- Milicpu - eg. 500m\n", "default": "4000m", "required": true } }, { "variable": "memory", "label": "Memory", "description": "Memory limit for Passbolt.", "schema": { "type": "string", "max_length": 12, "valid_chars": "^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$", "valid_chars_error": "Valid Memory limit formats are
\n- Suffixed with E/P/T/G/M/K - eg. 1G
\n- Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi
\n- Plain Integer in bytes - eg. 1024
\n- Exponent - eg. 134e6\n", "default": "8Gi", "required": true } } ] } } ] } } ] }, "app_readme": "

Passbolt

\n

Passbolt is a security-first, open source password manager

\n
\n

When application is installed, a container will be launched with root privileges.\nThis is required in order to apply the correct permissions to the Passbolt directories.\nAfterward, the Passbolt container will run as a non-root user (33).\nSame applies to the mariadb container. This will run afterwards as a non-root user (999).\nOn each upgrade, a container will be launched with root privileges in order to apply the correct\npermissions to the mariadb backups directory. Container that performs the backup will run as a non-root user (999) afterwards.\nKeep in mind the permissions on the backup directory will be changed to 999:999 on every update.\nBut will only be changed once for the Passbolt and mariadb data directories.

\n
\n

Register admin user

\n

Connect to the container's shell and run the following command replacing the\nvalues (user@example.com, first_name, last_name) with your own values.

\n

shell\n/usr/share/php/passbolt/bin/cake passbolt register_user -r admin \\\n -u user@example.com -f first_name -l last_name

", "detailed_readme": "

Passbolt

\n

Passbolt is a security-first, open source password manager

\n
\n

When application is installed, a container will be launched with root privileges.\nThis is required in order to apply the correct permissions to the Passbolt directories.\nAfterward, the Passbolt container will run as a non-root user (33).\nSame applies to the mariadb container. This will run afterwards as a non-root user (999).\nOn each upgrade, a container will be launched with root privileges in order to apply the correct\npermissions to the mariadb backups directory. Container that performs the backup will run as a non-root user (999) afterwards.\nKeep in mind the permissions on the backup directory will be changed to 999:999 on every update.\nBut will only be changed once for the Passbolt and mariadb data directories.

\n
\n

Register admin user

\n

Connect to the container's shell and run the following command replacing the\nvalues (user@example.com, first_name, last_name) with your own values.

\n

shell\n/usr/share/php/passbolt/bin/cake passbolt register_user -r admin \\\n -u user@example.com -f first_name -l last_name

", "changelog": null } }