Instalación y configuración de Pydio Cells en Debian 12
¿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.
Ahora introducimos los datos de la base de datos que creamos anteriormente:
Ahora configuramos el usuario administrador, el titulo de la página y el idioma:
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.
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.
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:
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:
Como podemos ver pydio cells ya está instalado y configurado correctamente.