Instalando Nextcloud 15 en Raspberry Pi 3B+

Desde hace ya tiempo tenía ganas de comprarme una de estas tarjetas para experimentar, cosa que al final he realizado estas navidades.

Para realizar este tutorial necesitaras otro PC para preparar la tarjeta y configurar más tarde la Raspberry, sobre todo por copiar y pegar el código.

Lo primero de todo es dar formato a la tarjeta SD para dejarla como nueva. Debe de ir formateada en FAT32. Yo he usado SD Memory Card Formatter el cual puedes descargar de https://www.sdcard.org/downloads/formatter_4/index.html

Simplemente abre el programa, selecciona la letra de la tarjeta SD (es automático si solo tienes una conectada al PC) y dale a Format.

Hecho esto nos descargaremos Raspbian Stretch Lite que es la versión sin escritorio desde https://www.raspberrypi.org/downloads/raspbian/

Ahora necesitaremos descargar Ether para instalar el sistema operativo que nos hemos descargado en la tarjeta SD. Puedes hacerlo desde https://www.balena.io/etcher/ . Luego de instalarlo simplemente debes seleccionar el archivo ZIP de Raspbian que nos hemos descargado anteriormente, darle al botón Flash y esperar a que termine. Cuando el proceso finalice la tarjeta ya no será accesible desde Windows.

Introduce la tarjeta SD en la Raspberry, enciendela, te preguntara un usuario y contraseña, por defecto el usuario es pi y la contraseña raspberry, hecho esto teclea los siguientes comandos para actualizar y configurar el sistema

sudo apt-get update
sudo apt-get upgrade
sudo raspi-config

Accederemos a una pantalla donde configuraremos las siguientes opciones:

  • Change User Password: cambiaremos aquí la contraseña para el usuario pi por una nueva.
  • Localization Options: Configuraremos las cuatro opciones seleccionando lo siguiente
    • Change Locale: es_ES.UTF-8 UTF-8
    • Change Timezone: Europe / Madrid
    • Change Keyboard Layout: Por lo general selecciona PC generico 105 teclas (intl), al darle Aceptar selecciona Otro y luego Español
    • Change Wi-FI Country: Selecciona ES (España)
  • Interfacing Options: Seleccionaremos P2 SSH y le diremos que Si. De esta forma habilitaremos el servidor SSH que nos permitirá conectarnos desde otro PC a nuestra raspberry.
  • Advanced Options: Seleccionaremos únicamente A3 Memory Split y lo dejaremos en 16 ya que al no usar entorno gráfico no es necesario dejarle más.

Vamos ahora a configurar una IP fija. Aclaro aqui que he conectado la raspberry al router por cable.

sudo nano /etc/dhcpcd.conf

Al final del archivo encontraremos algo así como

#Example static IP configuration:
#interface eth0
#static ip_address=192.168.0.10/24
#static ip6_address=fd51:42f8:caae:d92e::ff/64
#static routers=192.168.0.1
#static domain_name_servers=192.168.0.1 8.8.8.8

descomentaremos las lineas y rellenaremos con la información que corresponda a nuestra red. En mi caso el router es 192.168.1.1 por lo que he puesto como IP 192.168.1.11. De servidor DNS he puesto el router de nuevo ya que proporciona también dicho servicio y el servidor DNS de Google (8.8.8.8)

#Example static IP configuration:
interface eth0
static ip_address=192.168.1.11/24
#static ip6_address=fd51:42f8:caae:d92e::ff/64
static routers=192.168.1.1
static domain_name_servers=192.168.1.1 8.8.8.8

Evidentemente debes usar los datos que correspondan con la red que proporciona tu router.

Reinicia la rasberry con

sudo reboot now

He descargado Putty en mi PC para conectarme remotamente a la rasberry. Puedes encontrar dicho programa en https://www.putty.org/. Una vez instalado solo tienes que poner la IP fija que has puesto anteriormente y darle a Open

Una vez conectado vamos a instalar el servidor web Apache, el servidor de bases de datos MariaDB y algunas herramientas necesarias

sudo apt install apache2 mariadb-server software-properties-common zip unzip screen curl ffmpeg

Una vez ha terminado para verificar que el servidor web se ha instalado correctamente puedes abrir la pagina http://192.168.1.11 y deberás de ver la pagina de inicio del servidor.

Vamos a crear ahora la base de datos que usaremos para Nextcloud en MariaDB. Para ello usaremos el siguiente comando

sudo mysql -u root -p

Nos preguntará por una contraseña la cual dejaremos en blanco, y luego introduciremos las siguientes lineas para crear la base de datos nextcloud, el usuario nextcloud y darle permisos a dicho usuario sobre la base de datos.

CREATE DATABASE nextcloud;
CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'CONTRASEÑA';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';
FLUSH PRIVILEGES;

Salimos de MySQL con CTRL+D

Instalaremos ahora PHP 7.2. Por defecto raspberry solo tiene la versión 7.0 por lo que usaremos un repositorio externo con paquetes mas actualizados

sudo apt-get -y install apt-transport-https lsb-release ca-certificates
sudo curl -ssL -o /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
sudo sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
sudo apt-get update
sudo apt-get install php7.2 php-redis php7.2-cli php7.2-curl php7.2-gd php7.2-ldap php7.2-mbstring php7.2-mysql php7.2-xml php7.2-xmlrpc php7.2-zip php7.2-intl libapache2-mod-php7.2 php7.2-common php7.2-dev php7.2-fpm php7.2-json php7.2-bz2 php7.2-ldap php-dompdf php-apcu imagemagick php-imagick php-smbclient redis-server php-redis unzip -y

Una vez haya terminado teclearemos php -v y debe devolvernos la versión correcta que acabamos de instalar.

Llegado este momento vamos a instalar el disco donde se guardaran los datos de nuestra nube Nextcloud. Raspberry no tiene disco duro y la tarjeta SD tiene un espacio bastante limitado por lo que si tienes un disco USB es el momento de conectarlo. En mi caso tengo uno de 1TB el cual formateare con formato EXT4. En una prueba anterior intenté dejarlo como NTFS pero me daba problemas con los permisos ya que Nextcloud 15 hace comprobaciones de estos al inicio. También puedes conectar cualquier otro dispositivo como una memoria USB de gran capacidad. Ten en cuenta que el almacenamiento debe quedar conectado por siempre a la Raspberry.

Listaremos los discos que están conectados a la Raspberry con

sudo blkid 

Lo cual nos dará algo así como:

pi@raspberrypi:~ $ sudo blkid
/dev/mmcblk0p1: LABEL="boot" UUID="9304-D9FD" TYPE="vfat" PARTUUID="c1d43b2a-01"
/dev/mmcblk0p2: LABEL="rootfs" UUID="29075e46-f0d4-44e2-a9e7-55ac02d6e6cc" TYPE="ext4" PARTUUID="c1d43b2a-02"
/dev/mmcblk0: PTUUID="c1d43b2a" PTTYPE="dos"
/dev/sda1: LABEL="Disco USB" UUID="D272963172961A75" TYPE="ntfs" PARTUUID="0904f096-01"

Lo importante es la última linea que será el disco USB que acabamos de conectar, aquellas con el prefijo /dev/mmcblks se refieren a la tarjeta SD del sistema. El dato importante que debemos apuntar para lo siguiente es el UUID y el punto de montaje. El punto de montaje del disco en este caso es /dev/sda1 y el UUID es D272963172961A75

Al conectar el disco se ha montado automáticamente, pero para formatearlo a formato EXT4 debemos desmontarlo primero.

sudo umount /dev/sda1

y lo formateamos [NOTA: Esto elimina toda la información del disco USB]

sudo mkfs.ext4 /dev/sda1

Creamos la carpeta donde se montará el disco USB

sudo mkdir /media/USB
sudo chmod 777 /media/USB

Editamos el archivo fstab

sudo nano /etc/fstab

y añadimos al final de todo la siguiente linea poniendo especial atención en escribir correctamente el UUID del disco USB que previamente habíamos localizado con sudo blkid

UUID=PonAquiTuUUID /media/USB ext4 defaults 0 0

Guardamos con CTRL+O,salimos del editor con CTRL+X y reiniciamos con

sudo reboot now

Volvemos a conectarnos con Putty, limpiamos el directorio /var/www/html, descargamos Nextcloud 15 (actualmente en release 15.0.0), lo descomprimimos y movemos a /var/www/html dandole los permisos necesarios.

sudo rm /var/www/html/*.*
wget https://download.nextcloud.com/server/releases/nextcloud-15.0.0.zip
unzip nextcloud-15.0.0.zip
sudo mv /home/pi/nextcloud/* /var/www/html/
sudo chown -R www-data:www-data /var/www/html

Como he usado mi disco USB para los datos de nextcloud voy a crear una carpeta en el disco donde se guarden dichos datos y darle los permisos necesarios.

sudo mkdir /media/USB/datosnc15
sudo chown -R www-data:www-data /media/USB/datosnc15
sudo chmod -R 0770 /media/USB/datosnc15

Y completamos la instalación de Nextcloud conectándonos a la web http://192.168.1.11 y rellenando los datos que se piden

Vista de la instalación de NextCloud

La instalación tarda bastante, no desesperes ni cierres la página web de instalación. En mi caso han sido unos largos 35 minutos.

Vista de Nextcloud recién instalado

Aún quedan bastantes cosas por hacer pero eso lo explicaré en próximas entradas.

Un comentario sobre “Instalando Nextcloud 15 en Raspberry Pi 3B+

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.