Install Cells on Debian/Ubuntu
This guide explains how to install and configure Cells on an Debian-like system. It contains strongly opinionated choices and best practices. It explains the steps required for a production-ready and reasonnably secured server. For a simple test, you should rather visit our quick start page.
Use case
Deploy a self-contained Pydio Cells instance on a web-facing Debian 12 server,
exposed at https://<your-fqdn>
using a Let's Encrypt certificate.
Requirements
- CPU/Memory: 4GB RAM, 2 CPU
- Storage: 100GB SSD hard drive
- Operating System:
- Debian (10, 11, 12), Ubuntu LTS (18, 20, 22)
- An admin user with sudo rights that can connect to the server via SSH
- Note: The present guide uses a Debian 11 (Bullseye) server. You might have to adapt some commands if you use a different version or flavour.
- Networking:
- One Network Interface Controller connected to the internet
- A registered domain that points toward the public IP of your server: if you already know your IP address, it is a good idea to already add a
A Record
in your provider DNS so that the record has been already propagated when we need it.
Installation¶
Dedicated user and file system layout¶
We recommend to run Pydio Cells with a dedicated pydio
user with no sudo permission.
As admin user on your server:
Verification¶
Login as user pydio
and make sure that the environment variables are correctly set:
Database¶
We use the default MariaDB package shipped with Debian Bullseye:
Start a MySQL prompt and create the database and the dedicated pydio
user.
Note: default limits on MariaDB are quite low after install. If your target instance is not small, you probably should adapt them for Cells to run smoothly:
Verification¶
Check the service is running and that the user pydio
is correctly created:
Retrieve binary¶
Verification¶
Call the command version
as user pydio
:
Configuration¶
Configure the server¶
Call the command configure
as user pydio
:
If you choose Browser install
at the first prompt, you can access the configuration wizard at https://<YOUR PUBLIC IP>:8080
after accepting the self-signed certificate. (Ensure the port 8080
is free and not blocked by a firewall).
You can alternatively finalise the configuration from the command line by answering a few questions.
Verification¶
If you used the browser install, you can login in the web browser as user admin
.
If you have done the CLI install, you first need to start the server:
Connect and login at https://<YOUR PUBLIC IP>:8080
Note:
At this stage, we start the server in foreground mode. In such case, it is important that you always stop the server using the CTRL + C
shortcut before calling the start
command again.
Declare site and generate Let's Encrypt Certificate¶
At this point, we assume that:
- your
A record
has been propagated: verify withping <YOUR_FQDN>
from your local workstation - both port 80 and 443 are free and not blocked by any firewall
sudo netstat -tulpn
Create a site:
- Choose "Create a new site"
- Choose
443
as the port to bind to - Enter your FQDN as the address to bind to
- Choose "Automagically generate certificate with Let's Encrypt"
- Enter your Email, Accept Let's Encrypt EULA
- Redirect default
HTTP
port towardsHTTPS
- Double check and save.
Note: if you are not 100% sure of your network setup, we suggest that you first use the staging entry point for Let's Encrypt. You can then avoid being black-listed while fine-tuning and fixing any network issue you might still have at this point.
Verification¶
Restart your server:
Connect to your web site at https://<YOUR_FQDN>
. A valid certificate is now used.
Stop your server once again before performing the finalisation steps.
Finalisation¶
Run your server as a service with systemd¶
Create a configuration file sudo vi /etc/systemd/system/cells.service
with the following:
Reload systemd daemon, enable and start cells:
Verification¶
Connect to your certified web site at https://<YOUR_FQDN>
.
Add a firewall¶
In this tutorial, we use UncomplicatedFirewall (UFW).
If you can still connect to your web GUI and open a ssh connection, even after reboot, you are now good to go.
Thanks for using Pydio Cells and happy file sharing!
Troubleshooting¶
Main tips¶
With cells as a service, you can access the logs in different ways: