How to Install Passbolt on Arch Linux

Passbolt is an open-source password manager designed for teams that is available as a web application. With Passbolt, you can securely store, share, and manage your login credentials in a centralized location.

In this tutorial, we will guide you through the installation of Passbolt on Arch Linux. By the end of this tutorial, you will have a fully functional installation of Passbolt on your Arch Linux system.

Prerequisites

Before proceeding any further, make sure you have the following prerequisites:

Step 1: Install PHP, Nginx and Other Dependencies

Passbolt is a PHP-based application and requires specific dependencies to run correctly. To start, we will install PHP, Nginx, and other required packages, namely MariaDB, Git, and Composer.

sudo pacman -S nginx php php-fpm php-intl php-pdo php-gd php-curl php-mysql git mariadb composer

Step 2: Configure Nginx

Next, we will create an Nginx server block file for Passbolt. This step is crucial since it enables server configuration for the Passbolt application.

Create a new configuration file in /etc/nginx/sites-available using the following command.

sudo nano /etc/nginx/sites-available/passbolt

Then, paste the following configuration in the file.

server {
    listen 80;

    server_name example.com; # Replace with your own domain name

    root /var/www/passbolt/webroot;

    index index.php;
    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }

    location /.well-known {
        allow all;
    }

    client_max_body_size 100M;
}

Make sure to update the server_name parameter with your domain name.

Enable the Passbolt configuration by creating a symbolic link inside the sites-enabled directory.

sudo ln -s /etc/nginx/sites-available/passbolt /etc/nginx/sites-enabled/

Step 3: Install Passbolt

In this step, we will install Passbolt from the official Passbolt repository on Github using Git.

Clone the Passbolt repository to the /var/www directory with the following command:

sudo git clone https://github.com/passbolt/passbolt_ce.git /var/www/passbolt

Next, we will create a new .env configuration file by copying the .env file sample from the installation directory of Passbolt.

cd /var/www/passbolt
sudo cp .env.sample .env

We will now update the following values in the .env configuration file:

# MySQL/MariaDB Server Details
DATABASE_URL="mysql://username:password@localhost/passbolt"

# The domain name of your Passbolt instance
FULL_BASE_URL="http://example.com"

# GPG Server Parameters
OPENGPG_SERVER_URL="http://pool.sks-keyservers.net:80"
OPENGPG_SERVER_HKP="http://pool.sks-keyservers.net:80"

Replace username, password, and example.com with your own values. Save and exit the file.

Run the following commands in the project root directory to install and download the Passbolt PHP dependencies via Composer.

sudo composer install --no-dev
sudo composer dumpautoload

Now set the proper permissions for the webroot and config directories to the Nginx user http.

sudo chown -R http:http /var/www/passbolt/webroot /var/www/passbolt/config

Step 4: Create and Configure the Database

Create a new database and user for Passbolt using the MySQL/MariaDB command-line client.

mysql -u root -p
CREATE DATABASE passbolt;
CREATE USER 'passbolt'@'localhost' IDENTIFIED BY 'YourPassword';
GRANT ALL PRIVILEGES ON passbolt.* TO 'passbolt'@'localhost';
FLUSH PRIVILEGES;
exit

Next, we will populate the Passbolt database schema by running the following command in the command-line.

sudo -u http /usr/bin/php /var/www/passbolt/bin/cake.php schema create

Step 5: Start the Services

With everything set up, now start the required services for the Passbolt application to function correctly. Start the Nginx web server and PHP FastCGI Process manager with the following commands.

sudo systemctl enable nginx
sudo systemctl start nginx
sudo systemctl enable php-fpm
sudo systemctl start php-fpm

You should be able to access the Passbolt application via your web browser by navigating to http://example.com. Here, replace example.com with your own domain name.

Conclusion

Congratulations! You have successfully installed Passbolt on your Arch Linux system. You now have a fully functional password manager that you can use for your team.

If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!