Advanced setups
Advanced step-by-step guides¶
These tutorials provide advanced step-by-step guides for bare installation on your OS/Cloud of choice, from RaspberryPi to Kubernetes Cluster!
This guide explains how to install and configure Cells on a Raspberry Pi system.
Use case
Deploy a self-contained Pydio Cells instance on your local home network with a simple Raspberry Pi.
Requirements
- Although we tested and could start Cells on a Rasberry Pi 3B with only 1GB of RAM, we suggest to use a version 4B with at least 4 GB RAM.
- Storage: 32 SD card
- Operating System:
- Raspbian (Bullseye, Buster or Stretch), the official Raspberry Pi desktop OS (which a Raspbian repackaged the Raspberry Pi team) also works out of the box.
- An admin user with sudo rights that can connect to the server via SSH
- Networking: TODO.
Installation¶
Dedicated user and file system layout¶
We recommend to run Pydio Cells with a dedicated pydio
user with no sudo permission:
Verification¶
Login as user pydio
and make sure that the environment variables are correctly set:
Database¶
We use the default mariadb-server package shipped with Bullseye, it installs the 10.5 version with no hassle:
Start a MySQL prompt and create the database and the dedicated pydio
user.
Verification¶
Check the service is running and that the user pydio
is correctly created:
Retrieve binary¶
Note: we only started shipping the necessary ARM build for Cells at v4.
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.
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¶
You are now good to go. Happy file sharing!
Troubleshooting¶
Main tips¶
With cells as a service, you can access the logs in different ways:
This guide explains how to configure Cells on a Red-Hat-Enterprise-Linux-like system. It contains strongly opinionated choices and best practices. It guides you through the steps required for a production-ready and reasonnably secured server. For a simple test on a RHEL-like server, you can skim through our quick start page instead.
Usecase
Deploy a self-contained Pydio Cells instance on a web-facing RHEL-like Linux 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:
- RHEL 7, 8 or 9, Rocky Linux 8 or 9, CentOS and Scientific Linux 7.
- An admin user with sudo rights that can connect to the server via SSH
- Note: The present guide uses a Rocky Linux 9 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¶
On Rocky Linux 9.2, default MariaDB package is 10.5 that works well for Cells. So simply do:
Start a MySQL prompt and create the database and the dedicated pydio
user.
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
First insure your firewall does not block the port 8080:
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. 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
- In a first pass, if you have a complicated network setup, you might want to choose to use the staging entrypoint for Let's Encrypt: it has much more generous limitations and let you try/error while fixing glitches in your network setup without getting black-listed.
- Redirect default
HTTP
port towardsHTTPS
- Double check and save.
Verification¶
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>
.
You are now good to go. Happy file sharing!
Troubleshooting¶
Main tips¶
With Cells running as a service, you can access the logs in different ways:
Time-out while trying to reach the web UI¶
If the server is started and you get timeout errors while trying to connect to the web UI, it is generally a sign that the connection to the declared port is blocked by a firewall. Check both on your OS and on the admin console of your machine provider.
SELinux is enforced¶
If, after a successful installation and when you try to navigate to the main application page with your browser, you land on a blank page with following message:
Access denied.
ensure you have modified SELinux to be in permissive mode.
Non standard DB install¶
If the default MariaDB package shipped with your OS does not meet your needs, you can install a more recent version from official MariaDB repository. Typically to get version 10.4 on Centos7:
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:
This guide explains how to install and configure Pydio Cells on macOS.
Cells comes as a self-contained binary that can be directly run. The only hard requirement is a recent MySQL server. You can use either MySQL (5.7 or 8) or MariaDB 10.3+, both are available in Homebrew.
brew install mysql
or brew install mariadb
Installation¶
Pydio¶
Download the Pydio Cells binary on your server/machine with the following command:
Port 80 & 443¶
You can only use these ports if you are connected as an Admin User or root.
By default, Apache is running on macOS, so you need to ensure that it - or any other webservers - is not bound to these ports.
To stop the default Apache, you can use:
sudo apachectl stop
To prevent Apache from starting during launch, you may use:
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
Database configuration¶
In this section, we assume you have installed MySQL server. Adapt the following steps to your current setup.
Starting with Pydio¶
First, give execution permission on the file for your user. For instance, you can use chmod u+x <binary>
.
Then run the installer with the following command:
Once you have finished the configuration, you can start Cells with:
By default, the server is started with a self-signed certificate on port 8080: to access the webUI browse to https://localhost:8080
and accept the certificate.
To configure a different URL and/or port for Cells, run the following command.
Troubleshooting¶
- The database service might not be started, you can look at its status using :
brew services list
and thenbrew services start mysql
if needed. - You can look at the webserver's error file located in
/Users/<Your User Name>/Library/Application Support/Pydio/cells
.
This guide shows how to install and run Pydio Cells on Windows 10.
The binary also work on other version of Windows Desktop (8, 11) and of the Windows Server. Yet, please note that due to the majority of UNIX-like boxes in the enterprise server world and also the lack of feedback from the community, the Windows version of our application might still have unknown glitches and is not officially suported.
Please feel free to join our community to improve this.
Install Cells on Windows 10¶
The only hard requirement is a recent MySQL database. If not yet present on your machine, you can refer to:
You can then download the Pydio Cells executable from our download server.
Open a powershell terminal then proceed to install with the following command:
.\cells.exe configure
Note: on Powershell, with legacy version of Cells or Windows, if the arrows keys do not seem to work, you can try with H-J-K-L (J: Up, K: Down).
Note: the legacy Windows Command Prompt, also known as CMD, which is the original shell for the Microsoft DOS operating system and has been the default until Windows 10 is known to have issues with the
Go
language command framework that we use to directly communicate with the server via terminal. On some version, it renders the Cells CLI completely unusable. TL;DR: usepowershell
.
At first prompt, you can choose how you want to go on with the installation:
- Browser based: opens a tab in your local browser with an intuitive installer.
- command line interface: for advanced users, pretty straight forward.
Once installed, you can find the application working folder with data, configurations and logs under %APPDATA%.
For instance: C:\Users\pydio\AppData\Roaming\Pydio\cells
.
Note: you may have to explicitly allow displaying hidden files/folders in your settings to see this folder.
You can now start Cells and access it at https://localhost:8080
or https://<server ip or domain>:8080
By default, Cells start on port 8080 with a self-signed certificate. To change this and use a different domain, port or protocol, run:
Troubleshooting¶
Error message when moving files (license, binary...)¶
You might encounter this message in the logs after performing actions like updating the license or upgrading to the latest version of the server via the in-app process:
This is a known issue and non-blocking: the new file is correctly installed on its intended destination and the app will function normally.