Instalación y configuración de Pydio Cells en Debian 12

pydio

¿Que es Pydio Cells?

Pydio Cells es una herramienta web de almacenamiento y sincronización de archivos de código abierto. Permite a los usuarios acceder a los archivos desde cualquier lugar y compartirlos con otros.

Requisitos

  • Sistema Debian 12 actualizado.
  • Privilegios de root o sudo.
  • Acceso a internet.

Instalación de Pydio Cells

Creamos un usuario para ejecutar el servicio Pydio Cells:

root@pydio:~# useradd -m -s /bin/bash pydio

Creamos los directorios necesarios para la instalación de Pydio Cells y asignamos los permisos necesarios:

root@pydio:~# mkdir -p /opt/pydio/bin /var/cells
root@pydio:~# chown -R pydio: /opt/pydio /var/cells

Agregamos la variable ENV para todo el sistema:

root@pydio:~# tee -a /etc/profile.d/cells-env.sh << EOF
export CELLS_WORKING_DIR="/var/cells"
EOF
root@pydio:~# chmod 0755 /etc/profile.d/cells-env.sh

Comprobamos que la variable se haya agregado correctamente con el usuario creado para pydio:

root@pydio:~# su - pydio
pydio@pydio:~$ echo $CELLS_WORKING_DIR
pydio@pydio:~$ exit

Instalamos el gestor de base de datos MariaDB:

root@pydio:~# apt install mariadb-server -y

Entramos a la consola de MariaDB y creamos el usuario y la base de datos para Pydio Cells:

root@pydio:~# mysql -u root -p
MariaDB [(none)]> CREATE DATABASE cells;
MariaDB [(none)]> CREATE USER 'pydio'@'localhost' IDENTIFIED BY 'pydio';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON cells.* TO 'pydio'@'localhost';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

Ahora utilizando el usuario creado para pydio descargamos la última versión de Pydio Cells:

root@pydio:~# sudo su - pydio

Descargamos la última versión de Pydio Cells:

root@pydio:~# distribId=cells 
root@pydio:~# wget -O /opt/pydio/bin/cells https://download.pydio.com/latest/${distribId}/release/{latest}/linux-amd64/${distribId}

Damos permisos de ejecución al archivo:

root@pydio:~# chmod +x /opt/pydio/bin/cells
root@pydio:~# exit

Ahora como administrador damos permisos a cells para que pueda utilizar los puertos http por defecto:

root@pydio:~# setcap 'cap_net_bind_service=+ep' /opt/pydio/bin/cells

Declaramos los comandos de cells para que puedan usarse en todo el sistema:

root@pydio:~# ln -s /opt/pydio/bin/cells /usr/local/bin/cells

Ahora con el usuario creado para pydio comprobamos que funciona el comando de cells:

root@pydio:~# su - pydio
pydio@pydio:~$ cells version

Con esto pydio cells ya está instalado, ahora vamos a configurarlo.

Configuración de Pydio Cells

Con el usuario creado para pydio ejecutamos el siguiente comando para configurar pydio cells:

root@pydio:~# su - pydio
pydio@pydio:~$ cells configure

Nos apareceran dos opciones para configurar pydio cells, en mi caso elegiré la opción 1 para configurarlo desde el navegador web.

Instroducimos la dirección IP de nuestro servidor y el puerto 8080:

En la siguiente pantalla elegimos el idioma para la interfaz web y aceptamos las condiciones de uso.

pydio-config1

Ahora introducimos los datos de la base de datos que creamos anteriormente:

pydio-config2

Ahora configuramos el usuario administrador, el titulo de la página y el idioma:

pydio-config3

En la siguiente pantalla tendremos configuración avanzada opcional. Podemos configurar una base de datos nosql (MongoDB) y podemos modificar el tipo y lugar de almacenamiento de los datos. En mi caso lo dejaré por defecto.

pydio-config4

Ahora hay que esperar a que se instale y configure pydio cells. No cierre la terminal ni el navegador web. cuando termine la instalación nos llevará automáticamente a la página de inicio de sesión de pydio cells.

pydio-config5

Lo que hemos hecho hasta ahora han sido la instalación y configuración básica de pydio. Todavia tenemos que configurar mas cosas para que funcione correctamente:

  • Configurar el sitio web de pydio cells.
  • Configurar el servicio de pydio cells para que se inicie automáticamente al iniciar el sistema.

Configuración del sitio web de Pydio Cells

Ahora utilizaremos el usuario creado para pydio para configurar el sitio web de pydio cells:

root@pydio:~# su - pydio
pydio@pydio:~$ cells configure sites

Nos hará una serie de preguntas para configurar el sitio web de pydio cells:

No site is currently configured. Cells exposes automatically the following URLs :
   - https://0.0.0.0:8080
? Do you want to create a new site (it will replace the default one)? [y/N] y

✔ Binding Port: 443

Use the arrow keys to navigate: ↓ ↑ → ←
? Binding Host (webserver will listen to {Host}:{Port}. Use an IP or domain name):
+   Other (enter your own ip/domain)
    0.0.0.0
    localhost
  ▸ 192.168.50.38
↓   127.0.0.1

✔ Do you want to add another host? [y/N] : n

Use the arrow keys to navigate: ↓ ↑ → ←
? Choose TLS activation mode:
  ▸ Self-signed: generate your own locally trusted certificate (recommended behind a reverse proxy)
    Custom Certificate: provide paths to certificate/key files
    Let's Encrypt: automagically generate domain certificates signed by LetsEncrypt Authority
    Disabled: staging environments only (not recommended!)

Use the arrow keys to navigate: ↓ ↑ → ←
? Do you want to automatically redirect HTTP (80) to HTTPS? Warning: this requires the right to bind to port 80 on this machine.:
  ▸ Yes
    No

✔ If this site is accessed through a reverse proxy, provide full external URL (https://mydomain.com):

? Do you want to save this configuration? [y/N] y

Ahora volvemos a inicio pydio cells con el usuario creado para pydio:

pydio@pydio:~$ cells start

Ahora podemos acceder a pydio sin tener que usar el puerto 8080 en el navegador web:

pydio-config6

Ahora solo queda por configurar el servicio de pydio cells para que se inicie automáticamente al iniciar el sistema.

Configuración del servicio de Pydio Cells

Ahora con el usuario administrador creamos el archivo de configuración del servicio de pydio cells:

root@pydio:~# nano /etc/systemd/system/cells.service

Agregamos el siguiente contenido al archivo:

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

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

# Add environment variables
Environment=CELLS_WORKING_DIR=/var/cells

[Install]
WantedBy=multi-user.target

Guardamos los cambios y cerramos el editor de texto.

Ahora recargamos los servicios de systemd:

root@pydio:~# systemctl daemon-reload

Habilitamos el servicio de pydio cells para que se inicie automáticamente al iniciar el sistema:

root@pydio:~# systemctl enable cells

Reiniciamos el sistema para comprobar que el servicio de pydio cells se inicia automáticamente:

root@pydio:~# reboot

Una vez reiniciado el sistema accedemos a pydio cells desde el navegador web y comprobamos que funciona correctamente:

iniciamos sesión con el usuario administrador que creamos durante la instalación:

pydio-config7

Como podemos ver pydio cells ya está instalado y configurado correctamente.

pydio-config8