Step-by-Step Guide: Installing Pydio on Debian 11

Pydio is an open-source, cloud-based file-sharing application written in Golang. It allows users to securely share and access various documents, including files, images, and videos, from anywhere via mobile apps, desktop software, or a web browser. Pydio offers native clients for Linux, Windows, mMacOS, Android, and iOS.

In this guide, we will walk through the steps to install the Pydio application on a Debian 11 server.

Prerequisites

  • A server running Debian 11.
  • Root password configured on the server.

Step 1: Install and Configure MariaDB

Pydio requires MariaDB as its database backend. Use the following command to install the MariaDB database server:

dnf install mariadb-server -y

Secure the MariaDB installation by executing:

mysql_secure_installation

This utility script will guide you through configuring the root password, removing anonymous users, disabling remote root login, and deleting the test database:

Set root password? [Y/n] n
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y

Log in to the MariaDB shell:

mysql -u root -p

Create a database and user with the following commands:

CREATE DATABASE pydiodb;
CREATE USER 'pydiodb'@'localhost' IDENTIFIED BY 'password';

Grant necessary privileges to the Pydio database user:

GRANT ALL PRIVILEGES ON pydiodb.* to 'pydiouser'@'localhost';

Flush the privileges and exit the MariaDB shell:

FLUSH PRIVILEGES;
EXIT;

Step 2: Install Pydio Cells

Since the Pydio package isn’t available in the default Debian 11 repositories, download it from the official website.

Download the latest version of Pydio Cells using:

distribId=cells wget -O /usr/bin/cells https://download.pydio.com/latest/${distribId}/release/{latest}/linux-amd64/${distribId}

Set executable permissions on the downloaded file and bind it to the HTTP port:

chmod +x /usr/bin/cells
setcap 'cap_net_bind_service=+ep' /usr/bin/cells

Verify the installation by checking the Pydio Cells version:

cells version

You will see an output similar to this:

Warning: no private IP detected for binding broker. Will bind to 209.23.9.181, which may give public access to the broker.
Pydio Cells Home Edition
Version: 	3.0.6
Built: 	22 Mar 22 06:06 +0su - pydio 
cells configure000
Git commit: 	2165523347d2b9860d9c86236b7a518456d9cef3
OS/Arch: 	linux/amd64
Go version: 	go1.15.14

Step 3: Configure Pydio Cells

Configure Pydio Cells using the following command:

cells configure

You’ll be prompted to choose between a browser-based or command-line installation:

Welcome to Pydio Cells Home Edition installation 
Pydio Cells Home Edition (v3.0.3) will be configured to run on this machine.
Make sure to prepare access and credentials to a MySQL 5.6+ (or MariaDB equivalent) server.
Pick your installation mode when you are ready.

Select the browser-based installation and press Enter:

Use the arrow keys to navigate: ↓ ↑ → ← 
? Installation mode: 
  ? Browser-based (requires a browser access)
    Command line (performed in this terminal)

Once configured, you should see the server is starting with the following output:

Installation Server is starting...
Listening to: 0.0.0.0:8080
...

Step 4: Access Pydio Cells Web Installation Wizard

Access the Pydio Cells web interface by visiting https://your-server-ip:8080. You will be greeted with the License Agreement page:

Welcome to pydio installation

Agree to the license and proceed to configure the database:

Database configuration

After setting up the database, create an admin user:

Pydio cells

Finish up by customizing any advanced settings and click “Install Now”:

Pydio advanced settings

Once installed, you can log in to the Pydio interface:

Pydio Login

Successfully logging in brings up the Pydio dashboard:

Pydio

Step 5: Create a Systemd Service for Pydio Cells

Terminate the running Pydio Cells server using CTRL+C and create a systemd service file to manage the Pydio Cells service:

nano /etc/systemd/system/cells.service

Insert the following configuration:

[Unit]
Description=Pydio Cells
Documentation=https://pydio.com
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/bin/cells

[Service]
User=root
Group=root
PermissionsStartOnly=true
AmbientCapabilities=CAP_NET_BIND_SERVICE
ExecStart=/usr/bin/cells start
Restart=on-failure
StandardOutput=journal
StandardError=inherit
LimitNOFILE=65536
TimeoutStopSec=5
KillSignal=INT
SendSIGKILL=yes
SuccessExitStatus=0
WorkingDirectory=/root

[Install]
WantedBy=multi-user.target

Save and close the file. Reload the systemd daemon:

systemctl daemon-reload

Now, start and enable the Pydio Cells service:

systemctl enable cells
systemctl start cells

To verify the service status, run:

systemctl status cells

Confirm that the service is up and running:

? cells.service - Pydio Cells
     Loaded: loaded (/etc/systemd/system/cells.service; disabled; vendor preset: enabled)
     Active: active (running) since ...
...

Conclusion

Congratulations! You have successfully installed and set up Pydio Cells on your Debian 11 server. With your Pydio instance up and running, you can now effortlessly manage and access your files using its intuitive web interface. If you need further help, feel free to reach out for assistance.

FAQ

What is Pydio?

Pydio is a cloud-based file-sharing platform that allows users to access documents and media securely from any device.

Why is MariaDB used?

MariaDB is required by Pydio as it serves as its reliable database backend.

Is Pydio compatible with all operating systems?

Yes, Pydio supports Linux, Windows, macOS, and has mobile applications for Android and iOS.

How do I access Pydio Cells?

You can access Pydio Cells through a web browser by navigating to https://your-server-ip:8080.

What should I do if the Pydio service doesn’t start?

Check the service status using systemctl status cells for any errors and ensure all service prerequisites are met.