There is a new version of this tutorial available for Debian 12 (Bookworm).

How to Install Pydio on Debian 11

Pydio is a free, open-source, and cloud-based file-sharing application. It is written in the Golang language and used for sharing files with the client. It allows you to share and access various documents such as files, images, and videos from anywhere using a mobile app, desktop software, or a web browser. It has native clients for Linux, Windows, and macOS, and mobile clients for Android and iOS.

In this tutorial, I will show you how to install Pydio app on Debian 11.

Prerequisites

  • A server running Debian 11.
  • A root password is configured on the server.

Install and Configure MariaDB

Pydio uses MariaDB as a database backend, so you must install the MariaDB database server on your server. You can install it by running the following command:

dnf install mariadb-server -y

Once the MariaDB is installed, secure the MariaDB installation using the following command:

mysql_secure_installation

This script will set a root password, remove anonymous users, disallow root login remotely and remove the test database as shown below:

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

Once MariaDB is secured, log in to the MariaDB shell:

mysql -u root -p

Once you are log in, create a database and user with the following command:

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

Next, grant all the privileges to the Pydio with the following command:

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

Next, flush the privileges and exit from the MariaDB shell with the following command:

FLUSH PRIVILEGES;
EXIT;

Install Pydio Cells

By default, the Pydio package is not included in the Debian 11 repository. So you will need to download it from their official website.

You can download the latest version of Pydio cells using the following command:

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

Once the download is completed, set executable permission on the downlaoded file and bind it to the HTTP port using the following command:

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

Next, verify the Pydio cells version using the following command:

cells version

You will get the following output:

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

Configure Pydio Cells

Next, you will need to configure the Pydio Cells. You can configure it with the following command:

cells configure

You will be asked to choose between the browser-based and command-line installation modes.

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 the Enter key. Once the Pydio Cells is configured, you will get the following output:

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

? Browser-based (requires a browser access)
2022-04-02T11:16:18.544Z        INFO    pydio.gateway.rest      Started
2022-04-02T11:16:18.685Z	INFO	pydio.rest.install	Started
2022-04-02T11:16:22.010Z	INFO		

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

2022-04-02T11:16:22.366Z	INFO		? Created a new local CA at "/root/.config/pydio/cells/certs/rootCA.pem" ????
2022-04-02T11:16:22.366Z	INFO		? Created a new certificate valid for the following names ???? - "127.0.0.1" - "209.23.9.181" - "localhost"
2022-04-02T11:16:22.366Z	INFO		? The certificate is at "/root/.config/pydio/cells/certs/e6de382e6f121a9072d77b25ba622a36.pem" 
2022-04-02T11:16:22.366Z	INFO		 and the key at "/root/.config/pydio/cells/certs/e6de382e6f121a9072d77b25ba622a36-key.pem"
2022-04-02T11:16:22.366Z	INFO		
2022-04-02T11:16:22.366Z	INFO		???? If you are behind a reverse proxy, you can either install the RootCA on the proxy machine trust store, or configure your proxy to `insecure_skip_verify` for pointing to Cells.
2022-04-02T11:16:22.367Z	INFO		???? If you are developing locally, you may install the RootCA in your system trust store to see a green light in your browser!
2022-04-02T11:16:22.367Z	INFO		????  To easily install the RootCA in your trust store, use https://github.com/FiloSottile/mkcert. Set the $CAROOT environment variable to the rootCA folder then use 'mkcert -install'
2022-04-02T11:16:22.367Z	INFO		
2022-04-02T11:16:22.367Z	INFO		Activating privacy features... done.
2022-04-02T11:16:22.367Z	INFO		https://0.0.0.0:8080
2022-04-02T11:16:22.367Z	INFO		WARNING: File descriptor limit 1024 is too low for production servers. At least 8192 is recommended. Fix with "ulimit -n 8192".
2022-04-02T11:16:24.365Z	INFO	pydio.gateway.proxy	Restarting proxy	{"caddyfile": "\n\n0.0.0.0:8080  {\n\troot \"/root/.config/pydio/cells/static/install\"\n\tproxy /install [::]:38327\n\n\t\n\ttls \"/root/.config/pydio/cells/certs/e6de382e6f121a9072d77b25ba622a36.pem\" \"/root/.config/pydio/cells/certs/e6de382e6f121a9072d77b25ba622a36-key.pem\"\n}\n\n\n\n\t "}
2022-04-02T11:16:24.868Z	INFO	pydio.gateway.proxy	Restart done

Opening URL https://0.0.0.0:8080 in your browser. Please copy/paste it if the browser is not on the same machine.

Access Pydio Cells Web Installation Wizard

At this point, the Pydio Cells is started and listening on port 8080. You can access it using the URL https://your-server-ip:8080. You should see the Pydio Cells License agreement page:

Welcome to pydio installation

Agree to the License agreement and click on the NEXT button. You should see the database configuration page.

Database configuration

Provide your database configuration and click on the NEXT button. You should see the admin user creation page:

Pydio cells

Provide your admin username, password, and click on the NEXT button. You should see the following page:

Pydio advanced settings

Now, click on the INSTALL NOW button. You should see the Pydio Cells login page:

Pydio Login

Provide your admin username, password, and click on the ENTER button. You should see the Pydio dashboard on the following page:

Pydio

Create Systemd Service Fiel for Pydio Cells

Next, you will need to create a systemd service file to manage the Pydio service. First, press the CTRL+C to stop the Pydio service then create a systemd service file with the following command:

nano /etc/systemd/system/cells.service

Add the following lines:

[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 then reload the systemd daemon to apply the changes:

systemctl daemon-reload

Next, start and enable the Pydio service with the following command:

systemctl enable cells
systemctl start cells

You can also check the Pydio status with the following command:

systemctl status cells

You will get the following output:

? cells.service - Pydio Cells
     Loaded: loaded (/etc/systemd/system/cells.service; disabled; vendor preset: enabled)
     Active: active (running) since Sat 2022-04-02 11:34:24 UTC; 6s ago
       Docs: https://pydio.com
   Main PID: 25764 (cells)
      Tasks: 119 (limit: 2341)
     Memory: 421.6M
        CPU: 4.114s
     CGroup: /system.slice/cells.service
             ??25764 /usr/bin/cells start
             ??25769 /usr/bin/cells start --fork --config local --registry grpc://:8000 --broker grpc://:8003 ^pydio.grpc.jobs$
             ??25775 /usr/bin/cells start --fork --config local --registry grpc://:8000 --broker grpc://:8003 ^pydio.grpc.search$
             ??25781 /usr/bin/cells start --fork --config local --registry grpc://:8000 --broker grpc://:8003 ^pydio.gateway.websocket$
             ??25783 /usr/bin/cells start --fork --config local --registry grpc://:8000 --broker grpc://:8003 ^pydio.grpc.data.sync.pydiods1$
             ??25787 /usr/bin/cells start --fork --config local --registry grpc://:8000 --broker grpc://:8003 ^pydio.grpc.data.sync.personal$
             ??25790 /usr/bin/cells start --fork --config local --registry grpc://:8000 --broker grpc://:8003 ^pydio.grpc.data.sync.cellsdata$
             ??25802 /usr/bin/cells start --fork --config local --registry grpc://:8000 --broker grpc://:8003 ^pydio.grpc.data.sync.versions$
             ??25805 /usr/bin/cells start --fork --config local --registry grpc://:8000 --broker grpc://:8003 ^pydio.grpc.data.sync.thumbnail>
             ??25816 /usr/bin/cells start --fork --config local --registry grpc://:8000 --broker grpc://:8003 ^pydio.grpc.tasks$
             ??25819 /usr/bin/cells start --fork --config local --registry grpc://:8000 --broker grpc://:8003 ^pydio.grpc.data.objects.local1$
             ??25847 /usr/bin/cells start --fork --config local --registry grpc://:8000 --broker grpc://:8003 ^pydio.grpc.data.index.pydiods1$
             ??25848 /usr/bin/cells start --fork --config local --registry grpc://:8000 --broker grpc://:8003 ^pydio.grpc.data.index.personal$
             ??25849 /usr/bin/cells start --fork --config local --registry grpc://:8000 --broker grpc://:8003 ^pydio.grpc.data.index.cellsdat>
             ??25850 /usr/bin/cells start --fork --config local --registry grpc://:8000 --broker grpc://:8003 ^pydio.grpc.data.index.versions$
             ??25851 /usr/bin/cells start --fork --config local --registry grpc://:8000 --broker grpc://:8003 ^pydio.grpc.data.index.thumbnai>

Apr 02 11:34:29 debian11 cells[25764]: 2022-04-02T11:34:29.294Z        INFO        pydio.test.objects        Started
Apr 02 11:34:29 debian11 cells[25764]: 2022-04-02T11:34:29.307Z        INFO        pydio.gateway.grpc        Activating self-signed configura>
Apr 02 11:34:29 debian11 cells[25764]: 2022-04-02T11:34:29.308Z        INFO        pydio.gateway.grpc        Started
Apr 02 11:34:30 debian11 cells[25764]: 2022-04-02T11:34:30.191Z        INFO        pydio.grpc.data.index.pydiods1        Warning: no private >
Apr 02 11:34:30 debian11 cells[25764]: 2022-04-02T11:34:30.194Z        INFO        pydio.grpc.data.index.personal        Warning: no private >
Apr 02 11:34:30 debian11 cells[25764]: 2022-04-02T11:34:30.195Z        INFO        pydio.grpc.data.index.cellsdata        Warning: no private>
Apr 02 11:34:30 debian11 cells[25764]: 2022-04-02T11:34:30.204Z        INFO        pydio.grpc.data.index.thumbnails        Warning: no privat>
Apr 02 11:34:30 debian11 cells[25764]: 2022-04-02T11:34:30.212Z        INFO        pydio.grpc.data.index.versions        Warning: no private >
Apr 02 11:34:30 debian11 cells[25764]: 2022-04-02T11:34:30.326Z        INFO        pydio.gateway.proxy        Restarting proxy        {"caddy>

Conclusion

Congratulations! you have successfully installed and configured Pydio Cells on Debian 11. You can now upload your files, documents, and images from the Pydio dashboard and access it from any mobile or web browser. Feel free to ask me if you have any questions.

Share this page:

0 Comment(s)