https://paquita.masto.host/polkillas

Nextcloud en la Raspberry Pi (8). Apps

Actualizada el 5/11/17

Ya tenemos configurada nuestra nube en la Raspberry, con una conexión segura pero ahora mismo es menos útil de lo que puede llegar a ser.

Una característica muy interesante de Nextcloud son las apps. Son añadidos que extienden su funcionalidad mucho más. Convierten algo que es básicamente un Dropbox en algo mucho más grande y útil, más parecido a casi todos los servicios de Google.

Se pueden instalar cosas como un calendario, tareas, lista de contactos, notas, favoritos… Incluso hay una opción de añadir una especie de Google Docs, pero eso, por ahora, es demasiado para la pobre Raspberry. Aun así, las posibilidades son muy grandes.

Si entramos en nuestra nube con un usuario administrador como el que creamos al instalarla, veremos arriba a la izquierda un pequeño menú con cuatro elementos:

archivos-nextcloud-mozilla-firefox_067

  • Archivos: lo que estamos viendo, nuestros archivos y carpetas.
  • Actividad: aquí aparecen los registros de archivos creados, editados, eliminados (que se pueden recuperar)…
  • Galería: un visor de las imágenes que tengamos. Al pulsarlo aparece una lista de las carpetas que incluyen fotos y podemos seleccionarlas. Va lentilla, eso sí.
  • +: Si pulsamos en el signo +, iremos a una pantalla en la que veremos las apps que vienen instaladas de inicio, y podemos instalar muchas más.

En la pantalla que aparece, tenemos la lista de apps instalada y podemos ver en las categorías del menú de la izquierda otras opciones. Pero es interesante activar la opción de «Apps experimentales» pulsando en la rueda dentada de abajo a la izquierda y marcando la casilla, pues aparecen unas cuantas más, algunas muy interesantes.

Para instalar una app, solo hay que encontrarla y pulsa el botón «Activar». Tardará un ratito: nuestra nube tiene que ponerse en contacto con la app store y descargarla.

Después tendremos la posibilidad de desactivar la app. Si más tarde queremos reactivarla, el proceso será más rápido.

La mayoría de las apps de Nextcloud aparecen tras ser activadas en el menú de la izquierda (o arriba, si se instala la app Direct Menu). Otras, en cambio, añaden funcionalidades a otras y no tienen su propia entrada. Es cuestión de probar.


Y tras esta explicación, mis recomendaciones de de apps. Las apps que no deben faltar en una instalación de Nextcloud, en mi humilde opinión, las pongo con el nombre en negrita, mientras que las que no son tan imprescindibles van en cursiva:

  1. Personalización
    1. Direct Menu. Permite poner el menú en la barra superior, lo que nos evita un clic cada vez que queremos cambiar de app.
  2. Archivos
    1. Nextant. Permite buscar en el contenido de los archivos y no solo en el nombre. Muy interesante, pero algo difícil de configurar.
    2. Reader. Con ella puedes leer directamente en la nube los libros electrónicos que tengas.
  3. Multimedia
    1. Audio Player. Reproductor para tus archivos MP3.
    2. GPXPod.Para los que disfrutamos con mapas, es un visor de archivos gpx, como los que utilizan las apps de GPS.
    3. News. Lector de feeds RSS. Es parecida al desaparecido Google Reader. Incluso hay app para Android.
  4. Oficina & texto
    1. Calendar. ¿Cómo te lo diría? Im-pres-cin-di-ble, en cinco sílabas. Muy interesante para los que desconfían de Google y preferirían no tener que usar Google Calendar para guardar sus eventos. Una vez instalada, se puede acceder a los calendarios desde Mozilla Thunderbird con Lightning, desde Outlook, desde el móvil (instalando DAVdroid para la sincronización).
    2. Contacts. Lo mismo que lo anterior. No hace falta nada más para tener un respaldo de tus contactos del móvil en la red y, a la vez, en casa. Igual que con la anterior, hace falta DAVdroid para sincronizarlo.
    3. Notes. Editor rápido de notas. Hay app Android.
  5. Organización
    1. Bookmarks. App de favoritos, permite guardar enlaces. Es muy rudimentaria todavía, parece ser que en el futuro tienen pensado extenderla y, quizás, convertirla en una forma de sincronizar los favoritos del navegador. Aun sin esta capacidad, sigue siendo muy interesante.
    2. Tasks. Un gestor de tareas. Gracias a la magia de DAVdroid, se puede controlar también desde el móvil, instalando la app OpenTasks (si lo vas a usar, instala OpenTasks antes de instalar DAVdroid).
  6. Herramientas
    1. Keeweb/Passman. Gestores de contraseñas compatibles con Keepass y similares. He empezado usando Keeweb pero Passman parece que tiene más vida y se está actualizando con algo muy útil: integración con el navegador (Chrome y, más o menos, Firefox).
    2. Piwik Tracking. Si usas este sistema de estadísticas similar a Google Analytics, esta app te permite integrarlo en la nube.

 

Otras que pueden ser interesantes, al menos para mí, son:

  1. Autenticación & autorización
    1.  Two Factor TOTP Provider. Permite usar el registro en dos pasos, con apps de seguridad como Google Authenticator o una versión libre, Autenticador.
    2. Registration. Si algún año me decido a usar Nextcloud con mis alumnos, usaré esto para que se registren ellos mismos sin tener que crearles yo la cuenta de usuario.
  2. Personalización
    1. AppOrder. Permite cambiar el orden de las apps en el menú. Es compatible con Direct Menu.
  3. Archivos
    1. Checksum. Permite comprobar que hemos realizado correctamente una descarga calculando el checksum del archivo.
    2. OPDS Catalog. Permite crear una biblioteca online de libros electrónicos a la que se puede acceder con FBReader, por ejemplo, y leer en tu móvil o tableta.
    3. Optical Character Recognition. Permite leer los contenidos escritos en imágenes.
  4. Integración
    1. Collabora Online. Es genial, o lo sería si fuera fácil de configurar. Es una versión en línea de LibreOffice, con la que se pueden editar tus documentos de texto o tus hojas de cálculo. Estoy la caza de enterarme de cómo instalarla en condiciones.
    2. Video Calls. Puede ser útil si tienes varios usuarios en el servidor, no tanto para una instalación privada. Es como Skype, pero sin salir de Nextcloud.
  5. Multimedia
    1. Documents. Permite ver algunos documentos. Está superado por LibreOffice Online, pero esta app puede permitirte salir de algún apuro. Es bastante cutre, eso sí, y parece ser que está abandonada así que no se va a actualizar más
    2. Weather. Sencilla app con información del tiempo. Una curiosidad que demuestra lo fácil que es extender Nextcloud.
    3. GPX Edit. Permite editar tus pistas GPX. Muy especializada, pero útil sobre todo porque en Linux no es una tarea fácil.
    4. PhoneSync (antes llamada Owncloud SMS). Como se puede deducir por el nombre antiguo, permite hacer una copia de seguridad de los mensajes SMS. Ya casi no se usan, hace unos años habría sido imprescindible.
    5. Preview Generator. Crea vistas previas de los archivos.
    6. Deck. App recién llegada, pero con mucho potencial para organizar equipos.
    7. Mail. Cliente de correo. tiene la ventaja de integrarse con los contactos, por ejemplo.
  6. Organización
    1. Dashboard. Permite crear un panel de control con widgets que interactúan con otras apps como Contacts o Weather.
    2. Admin notifications. Permite enviar notificaciones a los usuarios. Por ejemplo, a mis alumnos.
  7. Social y comunicación
    1. Polls. Similar a servicios online como Doodle, permite hacer encuestas y organizar grupos de gente.
    2. JavaScript XMPP Chat. Un chat privado para los usuarios.
    3. RainLoop. Otro cliente de correo, como Mail.
  8. Herramientas
    1. Ownbackup. Para crear copias de seguridad.
    2. Ownnotes. Un sistema de notas más potente que Notes a secas.
    3. OownnotesAPI. Permite usar un cliente de escritorio para las notas, llamado QOwnNotes, más potente que la app del móvil.

 

Apps antiguas, no compatibles con la última versión

Hay alguna que usaba y no son compatibles todavía con la versión más moderna:

  • Polls. Similar a servicios online como Doodle, permite hacer encuestas y organizar grupos de gente.
  • Weather. Sencilla app con información del tiempo. Una curiosidad que demuestra lo fácil que es extender Nextcloud.
  • Documents. Permite ver algunos documentos. Está superado por LibreOffice Online, pero esta app puede permitirte salir de algún apuro. Es bastante cutre, eso sí, y parece ser que está abandonada así que no se va a actualizar más
  • Shorten. Acortador de URLS. Acorta las direcciones que compartimos para que sean más agradables.
  • Files Share Link Renamer. Aparentemente parecida a Shorten, pero lo que acorta son los enlaces de los archivos que compartamos con otras personas, para que queden más legibles y más recordables.
  • Dashboard. Permite crear un panel de control con widgets que interactúan con otras apps como Contacts o Weather. Está, como indica su nombre, sin mantenimiento, aunque parece que se puede conseguir que funcione en Nextcloud 10, no sé si en el 11.

Nextcloud en la Raspberry Pi (7). Let’s Encrypt – Tu propio dominio seguro (y 2)

Actualizado el 5/11/17

(Las imágenes corresponden a una versión anterior de Certbot, pero el proceso sigue siendo prácticamente igual)

En la entrada anterior veíamos que Nextcloud nos advertía de que no estábamos usando una conexión segura para verlo. Hasta hace bien poco, la única opción que podría haber funcionado era comprar un certificado de servidor, pero si la idea es ahorrar lo más posible, salía más caro el certificado que la propia Raspberry.

Sin embargo, no hace demasiado ha aparecido el proyect Let’s Encrypt, que pretende facilitar y abaratar (¡es gratis!) el acceso a conexiones seguras. Está apoyado por jugadores tan importantes dentro del campo del software libre y de la libertad en internet como la EFF o la Fundación Mozilla. Con Let’s Encrypt («Vamos a cifrar») es mucho más fácil crear conexiones seguras. Y esto es importante por detalles como que yo guardo en mi nube el cuaderno de clase con datos personales de mis alumnos, y usar una conexión no fiable es peligroso e, incluso. podría ir en contra de la LOPD. Este, por cierto, es un problema de Dropbox.

Técnicamente estoy convencido de que es muy difícil de entender, pero por suerte no hace falta saber mucho, es muy fácil de llevar a cabo.

Los pasos son estos:

  1. Instalamos el paquete python-certbot-apache, que instala todo lo necesario:
    sudo apt-get install python-certbot-apache
  2. Actualización (12/6/18): parece que ha habido algún tipo de problema de seguridad con certbot, y da un error al llegar a este paso. Lo que hay que hacer es ejecutar sudo certbot --authenticator webroot --installer apache.
    Los pasos son similares, pero algo más largos.
    certbot en raspbian
    Nos preguntará en primer lugar sobre el dominio. Respondemos el ddns.net que hayamos escogido. Después nos pide una dirección de correo y nos pide que aceptemos los términos y condiciones, lo que hacemos escribiendo ‘a’. A continuación nos pregunta por la raíz web, y deberemos responder que /var/www/html. Por último nos pregunta si queremos el método fácil o el seguro. A gusto del consumidor pero, evidentemente, es más seguro el Seguro. Lo escogemos pulsando ‘2’.
    Una vez hemos terminado, podemos probar nuestro dominio de ddns en el navegador. Nos pedirá que añadamos LOQUESEA.ddns.net a los dominios fiables (trusted domains) porque de primeras Nextcloud no se fía del cambio en la dirección. Pulsamos el botón… y nos dará un error. Es normal: se debe a que el certificado de Let’s Encrypt que hemos instalado certifica que esa web es realmente LOQUESEA.ddns.net, mientras que la página que acaba de cargar sigue estando en la red local con 192.168.0.x. Debemos agregar una excepción pulsando el botón «Avanzado» y después «Añadir excepción»:
    Agregar excepción en Firefox
    Y lo que nos queda es añadir el dominio pulsando Sí en la ventana emergente que nos aparece.
    Añadir dominio de confianza a Nextcloud
    Ejecutamos el archivo:
    sudo certbot --apache
    Aparece un mensaje de aviso y nos pide nuestro dominio. Lo rellenamos. La captura de pantalla siguiente contiene un error, no se debe añadir el http:// al principio sino empezar directamente.

  3. Nos pide nuestro correo:
  4. Empieza a trabajar  y nos solicita que aceptemos los términos de usuario. Podemos aceptar con la A.
  5. pipolkillas-pi-_064
  6. Respondemos las preguntas que nos hace el instalador:
    Dominio: ponemos el que hayamos escogido en no-ip.com
    Correo: nuestra cuenta
  7. Después nos pregunta si queremos el método fácil o el seguro. A gusto del consumidor pero, evidentemente, es más seguro el Seguro.
    pipolkillas-pi-_065
  8. Comprobamos que está bien hecho yendo a una prueba de seguridad. Vamos a https://www.ssllabs.com/ssltest e introducimos nuestra dirección de No IP. Nos debe dar este resultado, que está muy bien.
    ssl-server-test-mozilla-firefox_066

Y ya está. Sencillo, ¿verdad? En próximas entradas veremos cómo mejorar y ajustar nuestra nube, ya con un servidor más seguro.

 

Nextcloud en la Raspberry Pi (6). DDNS – Tu propio dominio seguro (1)

El siguiente paso para tener una verdadera nube a la que podamos acceder desde cualquier parte del mundo con nuestro ordenador o móvil es configurar una dirección única para la Raspberry. La dirección que hemos estado utilizando hasta ahora (192.168.0.26 o similar) no sirve más que en nuestra red local. Pero lo interesante de tener una nube propia está en poder acceder a ella desde cualquier lugar. Hay un problema para ello: la práctica totalidad de las empresas proveedoras de servicios de internet en España funcionan mediante lo que se conoce como IP dinámica: la IP, la dirección en internet, va cambiando de forma que los clientes no podemos controlarlo. De tal manera que si acudimos a servicios como What’s My IP, hoy nos puede dar un resultado y mañana otro que no podemos adivinar. Para ello hace falta algo llamado servidor de nombre de dominio dinámico o DDNS, por sus siglas en inglés. Este tipo de servicios instala un pequeño programa en nuestro servidor que periódicamente comprueba si ha cambiado nuestra dirección y lo actualiza en un «dominio» propio, de tal manera que solo tenemos que usar este «dominio». Lo escribo entre comillas porque esta explicación no es técnicamente del todo precisa, pero es más que suficiente para nuestras necesidades.

¿Qué necesitamos para tener una dirección propia reconocible? Hay muchos servicios DDNS disponibles. El que yo uso es no-ip.com, que es bastante fácil de utilizar.

En primer lugar tenemos que registrarnos en la web de No IP.

free-dynamic-dns-managed-dns-managed-email-domain-registration-no-ip-mozilla-firefox_055

Como se ve en la imagen, podemos elegir una dirección que sea «lo-que-te-dé-la-gana.una-de-las-cuatro-opciones». Mi nube en producción usa la dirección http://polkillas.ddns.net, pero puedes escoger la opción que prefieras.

Cuando nos registramos, nos envía un correo de confirmación a nuestra cuenta de correo. Cuando activamos mediante el enlace, podemos entrar en el servicio. El segundo paso consiste en descargarse el programa que se conecta a No IP. Lo llaman DUC y se instala así, siguiendo las instrucciones oficiales:

mkdir /home/pi/noip (creamos un directorio para bajarlo)

cd /home/pi/noip (vamos al directorio)

wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz (descargamos el DUC)

tar vzxf noip-duc-linux.tar.gz (lo descomprimimos)

cd noip-2.1.9-1 (entramos en el directorio que se ha creado)

sudo make (preparamos el programa para instalarlo)

sudo make install (lo instalamos)

Este procedimiento se llama compilar el programa. En el último paso, nos pedirá la dirección de correo y la contraseña de nuestra cuenta en no-ip.com.

Luego nos pedirá el intervalo de tiempo en minutos tras el cual se actualizará la dirección, si fuera necesario. El mínimo es 5 y en realidad 30, lo que sale por defecto, suele ser suficiente, pero se puede poner menos. También nos preguntará si queremos ejecutar algo después, pero podemos contestar que no.

pipolkillas-pi-noip-noip-2-1-9-1_058

Ya podemos ejecutarlo con la orden sudo noip2. Y como querremos que se ejecute solo al arrancar la Raspberry, lo hacemos de la siguiente manera. Vamos a editar los programas que se ejecutan cada cierto tiempo o en momentos determinados (como el arranque o el apagado) de la Raspberry con la orden

sudo crontab -e

La primera vez que editamos el archivo crontab nos dará a elegir entre diferentes editores de texto. El recomendado es «nano», la opción 2.

En el archivo que aparece, añadimos en la última línea lo siguiente:

@reboot sudo -u root noip2

Cerramos con CTRL + X y le decimos que guarde el archivo.

Si ahora mismo volvemos a ejecutar el DUC, nos dará el siguiente error:

sudo noip2

One noip2 process is already active,
and the multiple instance flag (-M) is not set.

Lo que significa que ya está funcionando. Vamos a comprobar así que lo hemos hecho bien, reiniciando la Raspberry con la orden sudo reboot. Si intentamos ejecutar el DUC, nos dará el mismo mensaje, con lo que es correcto. Así pues, ya podemos ir a nuestro navegador y buscar la dirección que hemos escogido al principio (http://polkillas.ddns.net/nube, en mi caso), y nos debería aparecer lo siguiente:

nextcloud-mozilla-firefox_060

Que significa que nuestra nube ha detectado algo raro: ya no accedemos desde la IP local, sino desde un dominio de internet. Por si acaso, no se fía y nos pregunta. Pulsamos el botón «Añadir … como dominio de confianza» o, en inglés «Add … as trusted domain» y, si estábamos registrados como administradores, directamente nos sale una pantalla en la que nos pregunta si queremos añadir el dominio. Respondemos que sí y nos saldrá la pantalla de administración de Nextcloud. El mensaje rojo no es exactamente un error, sino una advertencia que corregiremos en próximas entradas.

administracion-nextcloud-mozilla-firefox_061

SI no funciona este proceso, hace falta abrir los puertos del router. Es un proceso que depende mucho del modelo de router que tengamos en casa, así que, en este caso, toca recurrir a Google o a DuckDuckGo para buscar información concreta de cómo se hace.

Nextcloud en la Raspberry Pi con PHP 7 y MariaDB (5). Instalación de Nextcloud

Actualizado el 15/11/17 a la versión 12.0.3

El siguiente paso es, por fin, instalar Nextcloud en nuestra Raspberry. Es un paso más sencillo que los anteriores, paradójicamente. Pero aun así, vamos con ello. Lo mejor en este paso es entrar a la Raspberry desde otro ordenador con SSH.

En PuTTY o el terminal, entramos en la Raspberry y nos dirigimos a la carpeta raíz del servidor web, que es una carpeta de sistema, está protegida contra escritura  y el usuario ‘pi’ no puede hacer nada en ella, a no ser que tome privilegios de superusuario. Es decir, todo lo que hagamos aquí deberemos hacerlo empezando las órdenes con ‘sudo’. La carpeta es /var/www/html.

cd /var/www/html
ls

La segunda orden lista el contenido de la carpeta. Veremos uno o dos archivos si hemos ido siguiendo las instrucciones de esta serie de entradas: index.html, que es el archivo de inicio de Apache, e info.php, el archivo que podemos haber creado en una entrada anterior para comprobar el buen funcionamiento de PHP. En realidad, no es una idea especialmente buena tener estos archivos porque pueden dar información a posibles atacantes, por lo que podemos querer borrarlos.

Directorio /var/www/html

Ojo con este paso, que la herramienta de borrado es muy potente y si nos equivocamos podemos llegar a borrar todo el disco duro. En la siguiente orden, la parte de ./ indica que solo se tiene en cuenta el directorio en el que estamos:

sudo rm ./index.html

sudo rm ./info.php

Y nos queda un directorio en blanco. Si abrimos ahora la dirección de la Raspberry en un navegador saldrá una página diferente. Bien, pues vamos a llenarla con nuestro Nextcloud.  Para encontrar la última versión  (ahora mismo la 12.0.3), vamos a http://www.nextcloud.com/install, pulsamos el botón azul ‘Download’ y en la siguiente pantalla vamos de nuevo al botón azul pero lo pulsamos con el botón derecho y seleccionamos la opción de copiar el enlace al portapapeles.

La versión ha cambiado, pero el botón es el mismo: ‘Download Nextcloud’

Para descargar Nextcloud, vamos al terminal SSH, e indicamos que vamos a descargar ese archivo. Escribimos la orden wget y pegamos la URL que acabamos de copiar con MAYS + Ins:

sudo wget https://download.nextcloud.com/server/releases/nextcloud-12.0.3.zip

(Hace falta sudo porque la carpeta es del administrador) Tras descargarse, tenemos un archivo comprimido en zip. Para descomprimirlo, debemos hacer lo siguiente:

sudo unzip nextcloud-11.0.2.zip

Cambiando el nombre, claro, dependiendo del archivo que nos hayamos descargado Esto nos creará una carpeta llamada ‘nextcloud’ con los archivos necesarios. Pero hay que tener en cuenta una cosa importante sobre los permisos y las cuentas de usuario en Linux.

En Linux los usuarios tienen una importancia mayor que en Windows, donde normalmente utilizamos un solo usuario para todo. Sin embargo, en Linux se usan mucho más. En concreto, el servidor web Apache utiliza un usuario diferente para sus tareas, que se llama, en Raspbian, ‘www-data’. Como hemos usado privilegios de superusuario para descargar y descomprimir Nextcloud, el propietario de los archivos no es www-data sino el superusuario, ‘root’. Debemos cambiar esto para no tener problemas.

Para cambiar los permisos de archivo, usamos la siguiente orden:

sudo chown -R www-data:www-data nextcloud

Es decir, con permisos de superusuario, cambiamos la propiedad [change ownership] de todos los contenidos [-R] al usuario ‘www-data’ que pertenece al grupo ‘www-data’ para la carpeta ‘nube’.

Una vez hecho esto, se me ocurren tres opciones:

  1. SI no vamos a instalar más cosas y servidores, lo mejor es mover los contenidos de ‘nextcloud’ a ‘/var/www/html’, para que al escribir la dirección 192.168.XX.XX salga directamente la nube.
  2. Si queremos instalar más cosas, lo podemos dejar tal cual.
  3. Si queremos instalar más cosas, también tenemos la opción de cambiar el nombre de la carpeta para que sea más fácil de escribir y recordar. Como se podrá ver en mis capturas, es la opción que he llevado a cabo yo, cambiando ‘nextcloud’ por ‘nube’.

Para llevar a cabo estas opciones, estos son los comandos necesarios:

  1. sudo mv nextcloud/*.* ../*.* (mover todos los archivos dentro de ‘nextcloud’ al directorio superior)
  2. No hay que hacer nada, evidentemente.
  3. sudo mv nextcloud nube (mover la carpeta nextcloud’ a la carpeta ‘nube’)

Ahora ya podemos borrar el archivo .zip. Si no lo hacemos, Nextcloud nos dará un mensaje de advertencia que puede ser molesto. Lo hacemos con el comando
sudo rm./nextcloud-12.0.3.zip.

A partir de este paso, ya podemos trabajar en el navegador, entrando en la dirección adecuada. Según la opción que hayamos escogido de las tres, será:

  1. http://192.168.XX.XX
  2. http://192.168.XX.XX/nextcloud
  3. http://192.168.XX.XX/nube

Como mi opción es la 3, he ido a esa dirección y veo esto:nextcloud-mozilla-firefox_051

Este es el momento en que podemos escoger nuestro nombre de usuario y la contraseña que nos dé la gana. Luego podremos crear más cuentas de usuario si queremos. Pero más importante que el usuario y contraseña es la información siguiente.

El segundo recuadro blanco nos pregunta dónde queremos guardar los archivos que subamos a nuestra nube. Es importante cambiar el directorio que aparece por defecto, porque está en la tarjeta SD y, aparte de que lo llenaríamos en seguida, si la tarjeta se estropea perderíamos la información. Para evitar este problema era la cuarta entrada de la serie. Como se puede ver, he señalado la carpeta /media/Vir/nube. Si el disco duro no lo vamos a usar para nada más, no haría falta el último directorio pero al crear esta subcarpeta la raíz del disco duro queda  más ordenada. (por cierto que, si quieres hacer algo así, deberás crear la carpeta con sudo mkdir /media/Vir/nube y darle los permisos al usuario del servidor con sudo chown -R www-data:www-data /media/Vir/nube).

La advertencia que hay en el centro de la página es sobre los tipos de bases de datos. Nos avisa de que solo puede utilizarse una base de datos MySQL o MariaDB. Como esta última es la que hemos instalado y creado, no hay problema, así que en el último recuadro blanco podemos añadir el nombre de la base de datos y del usuario (será el mismo si hemos seguido el tutorial) y la contraseña que creamos en su momento. La última casilla podemos dejarla con ‘localhost’.

Si hemos introducido bien todos los datos, tardará un ratito (está creando los archivos y carpetas necesarios para el nuevo usuario) y nos saldrá una pantalla de bienvenida:

seleccion_054

No la cierres directamente. Tienes ahí enlaces para descargar los clientes de escritorio (el primer botón negro, para Ubuntu el proceso es algo más complicado pero para Windows es muy fácil) y móviles (los otros dos botones, dependiendo de si usas Android o iPhone). Yo el cliente de Android lo he descargado de F-Droid, que es una appstore alternativa que solo ofrece software libre.

Antes, Nextcloud aparecía por defecto en inglés. Ahora no debería ser el caso, pero si te ocurriera, es probable que quieras ponerlo en español. Para ello, pulsamos en nuestro nombre de usuario que aparece arriba a la derecha y seleccionamos ‘Administración’. En la pantalla que aparece, podemos cambiar el idioma como se ve en la siguiente imagen.

También hay enlaces sobre cómo usar nuestra flamante nube para, además de los archivos y documentos que queramos, almacenar nuestro calendario, nuestras tareas, nuestros contactos… Cuando la cerramos, veremos que tenemos algunas carpetas y documentos de ejemplo.

archivos-nextcloud-chromium_053

Y ya podemos decir que tenemos nuestra propia nube. Pero ¿cómo acceder a ella desde fuera de casa? Si lo intentáramos, veríamos que la dirección 192.168… no funciona. Ese será el contenido de la siguiente entrada.

Nextcloud en la Raspberry Pi con PHP 7 y MariaDB (4). Preparando un disco duro externo

Después de las entradas anteriores, ya podríamos instalar Nextcloud en la Raspberry, pero tendríamos un problema. SI un problema tiene la Raspberry es que no tiene disco duro y las tarjetas SD tienen una capacidad bastante limitada, si lo que pretendemos es usar este pequeño ordenador como nube. La solución está en conectar un disco duro y configurarlo para que nos haga el servicio que queremos.

En este caso vamos a seguir las instrucciones de manuti, creador del blog en español de referencia sobre las Raspberry, Raspberry para torpes.

Si todavía  no hemos conectado ningún disco duro a la Rasberry, es el momento de hacerlo, a ser posible con un concentrador que evite problemas de alimentación.

Un posible problema que podemos tener es que desconectemos el disco duro y, al volverlo a conectar, no se reconozca de la misma manera. Si estuviéramos en Windows, cuando insertamos un pincho USB se le da una letra (G;, H; etc.) y si lo sacamos y volvemos a meter cabe la posibilidad de que la letra cambie, y eso puede ser un problema para nuestra nube. Para ello, vamos a asegurarnos de que esto no pasa.

Cuando hemos conectado el disco duro a la Rasbperry, podemos comprobar si se ha reconocido bien, escribiendo ls -laF /dev/disk/by-uuid/

fotos-onedrive7

Reconozco que no sé a qué se refieren exactamente las dos primeras líneas pero, afortunadamente, no hace falta saberlo. Las importantes son el resto. Las que tienen al final la expresión ../../mmcblkXX se refieren a la tarjeta SD, mientras que la otra es la que nos interesa realmente.

En Ubuntu Linux, los discos duros no reciben una letra como en Windows, sino una expresión que tiene tres letras y puede tener un número. En mi caso, el disco duro es sda1. La «s» significa disco duro moderno, los antiguos llevarían una «h»; la «d» es de disco, la letra es algo parecida a la de Windows, pero siempre en minúscula (podría haber sda, sdb, sdc, etc.); y el número se referirá a las particiones que pueda tener el disco duro.

Manuti recomienda formatear el disco duro en formato ext4. Tiene la ventaja de trabajar mejor y más rápido, y el inconveniente de que, si lo hacemos, Windows no reconocerá el disco duro. Puesto que el principal problema de la Raspberry Pi 2 es la velocidad de transferencia de archivos por la red, problema creado porque el diseño que tiene (todas las versiones, de la 1 a la 3 y también la Zero) presenta un cuello de botella, me parece que no es muy necesario hacerlo, sobre todo si no manejamos normalmente Linux. Si estás interesado en hacerlo, puedes seguir las (muy claras) instrucciones de manuti.

También podemos comprobar la presencia del disco duro con la orden sudo blkid, que nos dará un resultado diferente pero con la información que necesitamos.

pipolkillas-pi-_029

Vemos que el UUID del disco duro es el mismo en los dos casos. Bien, pues vamos a crear una carpeta donde «se monte» el disco duro siempre. O sea, vamos a decirle a la Raspberry que siempre le dé el mismo nombre, como si en Windows le diéramos la misma letra siempre. Para ello creamos un directorio. Puede ser el que queramos, pero es recomendable usar /media/lo-que-sea. Además, para evitarnos problemas de permisos y que siempre podamos abrir cualquier archivo del disco duro, lo dejamos libre, sin protección

Por ejemplo, puesto que uso un disco duro prestado de mi novia que está etiquetado como «Vir», hago lo siguiente:

sudo mkdir /media/Vir
sudo chmod 777 /media/Vir

Ahora, el siguiente paso es delicado. Alguna vez me he cargado la Raspberry, dejándola sin posibilidad de arrancar bien. Afortunadamente, manuti no solo nos recomienda hacer una copia de seguridad sino que nos explica cómo hacerla. Hacemos una copia de seguridad del archivo que guarda la configuración de los discos:, que se llama /etc/fstab:

ls /etc (comprobamos que el archivo existe)
sudo cp /etc/fstab /etc/fstab.old (lo copiamos con otro nombre en el mismo sitio)
ls /etc (comprobamos que lo hemos hecho bien)
sudo apt-get install ntfs-3g (instalamos el driver para ntfs)

 

pipolkillas-pi030 pipolkillas-p031

Ahora vamos a editar el archivo «fstab» con un programa llamado «nano»: sudo nano /etc/fstab.

Nano es un editor de textos muy sencillo, es el equivalente al Bloc de notas. Ojo que, aunque tengamos ratón porque estamos accediendo por SSH, hay que tener en cuenta que no podemos manejar nano con el ratón; solo podemos hacerlo con el teclado.

Ahora tenemos dos opciones. La primera es algo más sencilla. En el fichero fstab, debemos añadir una línea como la siguiente

/dev/hdaX /media/Vir ntfs-3g defaults,locale=es_ES.UTF8 0 0

Pero esto tiene un problema: si desconectamos este disco duro y conectamos otro, Rasbpian no tendría forma de saber que es otro diferente. Casi seguro, las carpetas y archivos serían diferentes y esto nos puede dar muchos problemas con Nextcoud. Por eso, es más seguro, como recomienda manuti, identificar el disco duro por su «DNI», el UUID. La línea del archivo fstab sería esta:

UUID=el-largo-código-de-números-y-letras /media/Vir ntfs-3g defaults,locale=es_ES.UTF8 0 0

Y si hemos optado por hacerlo con el formato de Linux, sería esta otra:

UUID=el-largo-código-de-números-y-letras /media/Vir ext4 defaults 0 0

La explicación es esta:

/dev/hdaX (también puede ser /dev/sdaX)

UUID=lo-que-sea

El nombre del disco duro

El disco duro

/media/Vir La carpeta que hemos creado
ntfs-3g El sistema de archivos del disco duro (si pusiéramos solo ntfs, sería de solo escritura y no nos serviría para Nextcloud)
defaults,locale=es_ES.UTF8 la configuración: normal (defaults) y en español de España (es_ES). Esta parte no hace falta en ext4.
0 opción para copias de seguridad que la Raspberry no tiene por defecto, así que lo dejamos en 0
0 opción para que fsck (algo parecido a scandisk pero en Linux) escanee esta unidad. Alargaría mucho el tiempo de arranque, así que le decimos que no con el 0

 

[Solucionado]Nextcloud en la Raspberry Pi con PHP 7 y MariaDB (3). Apache 2, PHP 7 y MariaDB 10

Actualizado el 2/11/17 con la última versión de Raspbian, que ya trae de serie PHP 7, y los repositorios de mati75

Raspbian Stretch es una versión de Debian 9 optimizada para el procesador de la Raspberry, que no es uno normal de ordenador (x86 o x86_64), sino más parecido a los de los móviles (arm). Acaba de salir, así que es una versión bastante moderna, pero hay ciertas partes del servidor que vamos a instalar que están en versiones un poco más antiguas. Aunque eso lo podremos corregir más adelanta.

Por su parte, MariaDB es una bifurcación (fork) de MySQL que tiene todas las características de MySQL y alguna más, aparte de (según parece) ser más rápida.

Y, por último, Apache es el servidor web, el programa que recibe las peticiones de otros ordenadores y manda páginas web. Hay otros servidores más ligeros (Nginx, lighthttp) que seguramente harían que la Raspberry en general y nuestra nube de Nextcloud en particular funcionaran algo más rápido, pero en mi caso opto por Apache por dos motivos. En primer lugar, porque es el único que he manejado y que algo entiendo de su configuración (poco, realmente poco, en realidad) y en segundo lugar porque hay algunas apps de Nextcloud que piden Apache.

Instalación de Apache, MariaDB y phpMyAdmin

Este paso me ha dado bastantes dolores de cabeza cada vez hasta que, parece, lo he conseguido resolver en Raspbian 9.

Con la llegada de Rasbpian 9, este paso es mucho más sencillo y se instala directamente PHP 7 y una versión de Apache bastante más moderna, aunque siga sin ser la última.

En un terminal o vía SSH, escribimos el siguiente comando:

sudo apt-get update && sudo apt-get install mariadb-server apache2 phpmyadmin

Con esta orden actualizamos la información de actualización y después  instalamos MariaDB y el servidor Apache 2. Veremos que, además, se instalan un montón de paquetes más, que son necesarios. Cuando hemos terminado, podemos comprobar que ambos servidores se han instalado bien.

Para Apache procedemos así: abrimos un navegador en otro ordenador de nuestra red en casa (por ejemplo, en el que estamos usando SSH) y entramos en la dirección de cuatro números que buscamos en la anterior entrada. Debe aparece la página por defecto de Apache. En mi caso, como se puede ver, la dirección es 192.168.0.26, pero variará:

apache2-debian-default-page-it-works-mozilla-firefox_025

Y para PHP 7, podemos escribir php -version en el terminal y debería aparecer algo como esto:

phpversion

Visto desde Windows con PuTTY. (ver entrada anterior).

Si no nos fiamos y queremos comprobar el estado de PHP en el navegador, podemos crear un archivo de prueba. Pero como vamos a instalar dos elementos que usan PHP (phpMyAdmin y el mismo Nextcloud), no es muy necesario.

Instalación de phpMyAdmin

phpMyAdmin es un sistema de gestión de bases de datos MySQL y MariaDB que tiene la ventaja de ser gráfico, por lo que es bastante más sencillo que el cliente de línea de comandos. No es que sea muy necesario para Nextcloud, pero sí que puede simplificar la tarea de crear la base de datos.

Sin embargo, las últimas versiones se han hecho más seguras a costa de ser menos sencillas de usar, y si se instala a pelo en Raspbian da errores y problemas, y parece que en otros sistemas también. Al final, he seguido buscando cómo arreglarlo por cabezonería, me da que al final habría sido más fácil usar el terminal, pero se me ha convertido en cuestión personal. Y creo que al final he conseguido solucionarlo siguiendo instrucciones de un blog en francés, nada menos, y del anterior enlace. Vamos a editar el servidor de bases desde el terminal.

Escribimos sudo mysql --user=root mysql para entrar en MariaDB  y a continuación mandamos las siguientes órdenes, cambiando las mayúsculas por los datos que se quieran:
create user 'USUARIODEMARIADB'@'localhost' identified by 'CONTRASEÑA';
grant all privileges on *.* to 'USUARIODEMARIADB'@'localhost' with grant option;
flush privileges;
exit

La primera línea crea un usuario y una contraseña de MariaDB, la segunda le da todos los permisos, la tercera reinicia los permisos para que empiecen a funcionar los de este usuario y con la cuarta salimos de MariaDB.

Ahora ya sí podemos instalar phpMyAdmin con sudo apt-get install phpmyadmin y abrirlo en el navegador acudiendo a la dirección http://192.168.XX.XX/phpmyadmin, cambiando las equis por la información que nos suministre el comando ifconfig (ver entrada anterior):

phpmyadmin-mozilla-firefox_037

 

Podemos entrar en phpMyAdmin con el usuario y contraseña que acabamos de crear, y  crear una nueva base de datos en el menú de la izquierda, con la opción ‘Nuevo’, pero hay una forma todavía más sencilla, pues nos permite crear a la vez la base de datos para Nextcloud y el usuario. En la pantalla de inicio buscamos el enlace ‘Agregar usuario’ y lo seguimos.

phpmyadmin-4-2-12deb2deb8u2-mozilla-firefox_043

En la pantalla que aparece podemos crear el usuario que queramos (‘nextcloud’ en el ejemplo, pero se puede poner lo que se prefiera) y es importante marcar la opción ‘Crear base de datos con el mismo nombre y otorgar todos los privilegios’, con lo que creamos a la vez el usuario y la base. Es importante no olvidar la contraseña que hemos puesto, pues nos hará falta cuando instalemos Nextcloud.

Cuando hayamos terminado, bajamos al final de la página y pulsamos en ‘Continuar’.

phpmyadmin-4-2-12deb2deb8u2-mozilla-firefox_042

Instalación de versiones modernas de Apache y PHP  7

Hay un informático polaco, Mateusz Łukasik, que entre otras cosas se dedica a actualizar un repositorio con aplicaciones para Debian —el sistema en que se basa Raspbian, como se puede apreciar por el nombre— y para el mismo Raspbian. Si utilizamos este repositorio podemos tener versiones algo más modernas del servidor web Apache y de PHP, lo cual significa algo más de seguridad y posiblemente algo más de rapidez.

¿Cómo se hace? Es (relativamente) sencillo. Hay que editar la lista de repositorios. Para ello, abrimos un terminal:

sudo nano /etc/apt/sources.list

En este archivo está la lista de repositorios en los que Debian busca la información de actualización. Nos aparecerá esto:

terminal con /etc/apt/sources.list de RaspbianLo que tenemos que hacer es añadir en cualquier línea que queramos el texto deb http://repozytorium.mati75.eu/raspbian stretch main contrib non-free. Por motivos estéticos, yo lo he hecho así:terminal con /etc/apt/sources.list con mati75Si actualizamos ahora nos va a dar un error, tenemos que añadir las claves GPG, unas «firmas» que confirman —valga la redundancia—que las actualizaciones son de fiar. En la instalación por defecto falta un requisito, el paquete dirmngr así que lo instalamos con sudo apt-get install dirmngr.

Una vez se ha instalado, podemos agregar las claves con estos comandos (sacados de aquí):

sudo gpg --keyserver pgpkeys.mit.edu --recv-key CCD91D6111A06851

sudo su

gpg --armor --export CCD91D6111A06851 | apt-key add -

Ahora sí actualizamos con estas dos órdenes de una vez:

sudo apt-get update && sudo apt-get dist-upgrade

Y ya tenemos versiones más modernas.

Retoques y mejoras

De inicio, tanto MySQL como MariaDB vienen con ciertas configuraciones de prueba que es mejor eliminar. Para ello escribimos sudo mysql_secure_installation (truco sacado de aquí) y respondemos las preguntas:

mariadb

Se pide, lo primero la contraseña del usuario ‘root’. El error que aparece se debía a que no recordaba qué contraseña había puesto, y tuve que probar dos. Con la nueva versión no hay contraseña de root, así que te propone crear esa contraseña.

mariadb2

Después nos pide eliminar el acceso anónimo, que es una buena idea, y deshabilitar el acceso del usuario root desde otro ordenador que no sea la Raspberry. También sugiera eliminar una base de datos de prueba, que es innecesaria. Decimos que sí (y) a estas tres preguntas.

mariadb3

Por último, sugiere recargar las tablas de privilegios (lo que quiera que eso quiera decir), También aceptamos y listo.

Otros prerrequisitos de Nextcloud

Para poder ver vistas previas de las imágenes que subamos a nuestra nube, necesitamos instalar un programa como ffmpeg:

sudo apt-get install ffmpeg

Nextcloud en la Raspberry Pi con PHP 7 y MariaDB (2). Configuración de Raspbian. Acceso SSH

Actualizado el 2/11/17

Una vez tenemos Rasbpian funcionando en la Raspberry, el siguiente paso es actualizar el sistema. Los comandos que tenemos que escribir son estos:

sudo apt-get update
Actualiza la información de actualizaciones

sudo apt-get dist-upgrade
Actualiza los paquetes, los programas.

Si tienes problemas para escribir el guion, puedes usar el signo menos del teclado numérico y, si no lo tienes, prueba con el apóstrofe, la tecla que hay a la derecha del 0. El teclado aparece por defecto en inglés, pero a continuación podremos cambiarlo.

Cuando hemos hecho esto, podemos cambiar la configuración de la Raspberry. Enviamos la orden sudo raspi-config y nos aparece este menú.

img_24112016_192644_hdr

Hay varias opciones que nos van a interesar. Vamos con ellas en el orden en que aparecen en el menú, por el que nos movemos con las flechas arriba ya abajo. Para saltar a los botones de Aceptar o Cancelar, usamos el tabulador (la tecla que está a la izquierda de la Q).

pipolkillas-pi-_024

1 Expand Filesystem

No debería hacer falta hacerlo al ser una instalación nueva, pero no pasa nada por hacerlo. Lo seleccionamos y nos avisa de que estará hecho después de reiniciar.

2 Change User Password

Muy importante, por seguridad, cambiar la contraseña por defecto, que es «raspberry». Al seleccionarlo, nos avisa de que nos va a pedir la nueva contraseña y la tenemos que escribir 2 veces, para estar seguros de que la hemos escrito bien.

3 Boot Options

Si hemos instalado Rasbpian Lite, no debería hacer falta cambiar nada, pero está bien comprobar la opción B1 Desktop-CLI y marcar B2 Console autologin, para que no haga falta meter la contraseña al reiniciar.

4 Internationalisation Options

Para poner la Raspberry en español este es el sitio adecuado. Las opciones que debemos seleccionar son estas:

I1 Change Locale

Buscamos la opción es_ES.UTF8 y la seleccionamos. Aceptamos y en la siguiente pantalla, en la que aparecen muchas menos opciones, la volvemos a seleccionar. Esperamos unos segundos a que se generen las locales.

I2 Change Timezone

Para no tener problemas, sobre todo, con el calendario de Nextcloud, tenemos que asegurarnos de que el servidor está en nuestra zona horaria. Escogemos nuestro continente y después la capital del país en el que estemos. En mi caso, Europa y Madrid.

I3 Change Keyboard Layout

El primer paso aquí no tan importante como el segundo. Si no encontramos nuestro modelo exacto de teclado o no lo sabemos, basta con dejar el Generic 105 Intl. Lo importante es lo segundo. Seguramente saldrá una serie de opciones del idioma inglés, así que bajamos a Other y buscamos el idioma español. Una vez lo hemos localizado, las opciones que nos ofrece por defecto son buenas, si no tenemos algún teclado muy raro.

I4 Change Wifi Country

Yo no tuve problemas con la wifi antes de configurar esto, pero no sobra busca ES Spain y seleccionarlo.

7 Advanced Options

De todas las opciones que tenemos aquí, solo comento las que nos pueden ayudar a que vaya mejor. Son estas:

A3 Memory Split

Al no tener un escritorio instalado, la GPU (memoria gráfica) no necesita mucho, podemos reducir la cantidad que aparece a 16, que es el mínimo.

A4 SSH

Importantísimo. Sin más.

Según Wikipedia, SSH es el nombre de un protocolo y del programa que lo implementa, y sirve para acceder a máquinas remotas a través de una red.

Es decir, SSH sirve para «entrar» en un ordenador desde otro. Si está activado, podemos tener una línea de comandos en un ordenador diferente y trabajar en la Raspberry. Hasta ahora, SSH venía activado por defecto en Raspbian, pero leí en Raspberry para torpes que van a cambiar esto, al menos en la versión PIXEL, no estaba seguro sobre la Lite que estamos instalando nosotros, pero efectivamente es así, por lo que tendremos que seleccionar esta opción y activarla. Una vez que lo hemos hecho, podemos conectanos a la Raspberry desde otro ordenador.

En Windows se puede usar PuTTY para ello y en Linux no hace falta instalar nada. Veamos:

putty-configuration_018

No hace falta instalar PuTTY, al abrir el archivo descargado se abre directamente esta ventana. En el campo «Host Name (or IP address)» tenemos que escribir lo que aparece en la imagen, cambiando las  XX con unos números que estarán entre 0 y 255. Para saber exactamente qué número poner podríamos ir probando de uno en uno, pero hay una forma mucho más sencilla: cuando  hayamos acabado de configurar la raspberry,,podemos  escribir la orden ifconfig. Sale un montón de información pero lo que tenemos que buscar es la expresion inet address seguida de un número compuesto de cuatro cifras separadas por un punto y que sean las dos primeras esos 192.168. Si estamos conectados al router con un cable, estará en la sección eth0; si estamos usando wifi, estará seguramente en la sección wlan0.

Si lo hemos hecho bien, nos aparecerá una alerta. Es normal, solo nos avisa de que nos estamos conectando a un ordenador nuevo y nunca hemos dicho a PuTTY que se fíe. Pulsar en sí hace que PuTTY, en adelante, confíe en nuestra Raspberry.

putty-security-alert_019

A continuación nos sale una pantalla nueva que nos pedirá el usuario de Rasbpian (pi, si no lo cambiamos) y la contraseña (raspberry por defecto, lo cual tendremos que cambiar en seguida).  Al escribir la contraseña, como suele pasar en Linux, parece que no pasa nada, pero no es preocupante:

pipolkillas-pi-_022

Al pulsar Intro, nos aparece el mismo mensaje que aparece en el monitor de la Raspberry al arrancar, lo que nos confima que esa pantalla «es» la Raspberry.

En Ubuntu y otros Linux, abrimos un terminal (CTRL+ALT+T o abrimos el tablero y escribimos «terminal»). Para usar SSH, la forma es sencilla:

ssh pi@192.168.XX.XX

Igual que en PuTTY, cambiamos los dos últimos números por el resultado de ifconfig:

pipolkillas-pi-_023

¡Voilà! A partir de este momento no nos hace falta tener un monitor conectado a la raspberry mientras haya conexión a internet.

A0 Update

Sirve para actualizar el mismo programa raspi-config. Lo más probable es que no haya actualizaciones.


Con esto tenemos configurada nuestra Raspberry y podemos empezar a instalar los programas que vamos a necesitar para que funcione bien nuestro Nextcloud.

Actualización 25/12: En mi experiencia no me ha pasado porque no he desconectado nunca el cable de red que une la Raspberry con el router. Pero si este fuera el caso y hubiera algún problema con la conexión, podría ser porque se ha asignado una IP diferente a la Raspberry. En este caso, recomiendo acudir a Raspberry para torpes, donde manuti tiene 3 entradas que nos pueden ser útiles:

Por último, una cosa que me parece muy recomendable es cambiar el usuario por defecto, (pi), por otro diferente y la contraseña de root. Esto hace que sea más difícil que un posible atacante pueda entrar en la Raspberry, pues no solo tiene que adivinar la contraseña sino también el usuario. Para ello seguiremos algo de un tutorial de Juan Jose Ramirez Lama en su blog juaramir.com y una página vieja pero aún muy útil, Principiante Linux.

Para cambiar la contraseña del superadministrador, escribimos la siguiente orden:

sudo passwd

Nos pide que escribamos la nueva contraseña y que la repitamos, por si acaso nos hemos equivocado al escribirla. Después iniciamos sesión como administrador con el comando sudo su y metemos la contraseña que acabamos de cambiar.

Para cambiar el usuario «pi» debemos crear un usuario nuevo con la siguiente orden:

sudo  adduser USUARIONUEVO, sustituyendo las mayúsculas por el nombre que queramos darle al usuario.

Nos pide que escribamos dos veces la contraseña del nuevo usuario y nos hace una serie de preguntas que no hace falta responder, podemos pulsar Intro en cada una.

A continuación podemos modificar el usuario para darle derechos de administrador. Con la orden groups pi veremos los grupos a los que pertenece ese usuario, y podemos usar groups USUARIONUEVO para comprobarlo en el nuevo. Para darle permisos, hay que dar la siguiente orden:

sudo usermod -G adm,dialout,cdrom,audio,video,plugdev,games,users,input,netdev,spi,i2c,gpio,sudo USUARIONUEVO

De la ristra de palabras entre comas, lo más importante para nuestros objetivos es «sudo». El resto da otros derechos que para otros usos de la Raspberry serán necesarios. Podemos comprobar que lo hemos hecho bien volviendo a ejecutar groups USUARIONUEVO, y veremos que ya tiene los mismos derechos que «pi».

Cerramos la sesión de «pi» y volvemos a entrar, ahora con el nuevo usuario. Ahora ya podemos eliminar el usuario pi con la orden sudo userdel -r pi.

tenemos que salir de la sesión de «pi» y entrar como root. Por SSH no se puede hacer, pues el usuario administrador está capado por motivos de seguridad, así que hay que hacerlo directamente en la Rasbperry. Después de poner la contraseña de root, escribimos usermod -l NOMBRE pi -md /home/NOMBREQUEQUEREMOSPONER. Lógicamente, hay que cambiar las mayúsculas por el nombre de usuario que queramos usar, escribiéndolo con minúsculas. Por ejemplo usermod -l usuarionuevo pi -md /home/usuarionuevo. Con esto ya no existe el usuario «pi», sino solo el que hemos decidido nosotros, con lo que para conectarse por SSH ahora habrá que escribir ssh usuarionuevo@192.168.XX.XX.

Nextcloud en la Raspberry Pi con PHP 7 y MariaDB (1). Pasos previos

Actualizado el 2/11/17 con la última versión de Raspbian

Sigo jugando de vez en cuando con la Raspberry. La estoy usando como servidor web para una nube privada que usamos Virginia y yo con Nextcloud y, a la vez, voy jugando con cosas (coshash). Puesto que no es buena idea, porque alguna de esas cosas puede acabar dando problemas y ahora mismo dependo más de esta nube (calendario, contactos) que de Google, he decidido aprovechar una de las ventajas que tiene la Raspberry: con cambiar la tarjeta SD cambias por completo el sistema. Así que tengo una SD con la nube en producción y estoy creando otra para pruebas. Y aprovechando, como no he encontrado gran cosa sobre estas cosas en español, lo voy a ir narrando.

Cables y conexiones

La Raspberry necesita unas cuantas cosas para poder arrancar:

  • Cable miniUSB de carga de al menos 2V. Ojo, que no todos los cargadores de móviles valen, aunque sean miniUSB, por el voltaje.
  • Cable de red Ethernet o adaptador wifi USB para tener red.

Puesto que vamos a usar la Raspberry como servidor Nextcloud, necesitamos mucho espacio de disco duro. Aunque ya hay tarjetas SD de por lo menos 128 Gb, es preferible tener un disco duro externo y conectarlo. Si tienes un disco externo que no necesite carga, sería ideal, pero como no suele ser el caso también viene bien un concentrador (hub) USB que dé carga y, a ser posible, con USB 3.0 para que vaya más rápido. Yo uso uno de Amazon Basics.

También es recomendable tener un teclado y ratón USB, no valen los antiguos PS2, y un cable HDMI para conectarla a un monitor. Teóricamente, gracias a SSH, estas tres cosas no deberían hacer falta, pero para mí es muy útil, sobre todo al principio.

Preparación de Raspbian

Si queremos empezar desde cero nuestro servidor, la opción más sencilla es descargar el sistema operativo de la web de la fundación Raspberry. Después de haber probado varias opciones, no veo muchas ventajas a NOOBS, que es teóricamente el sistema más sencillo, así que recomiendo instalar Raspbian directamente. Si te asusta que no haya un escritorio, puedes instalar la versión completa pero es preferible la versión lite porque gasta menos memoria, que queda libre para el resto de cosas que queramos instalar: servidor web, base de datos, servidor de búsqueda, reconocimiento óptico de caracteres, etc.

La forma más fácil para descargar cualquiera de las dos versiones es ir a la web que he enlazado antes, seleccionar Raspbian (o ir directamente aquí) y pulsar en «Download ZIP». Puede ser incluso más rápido bajarlo por vía torrent pero para ello necesitamos un cliente como uTorrent en Windows o Transmission en Linux.

Una vez descargado, hay que descomprimir el archivo .zip: hacemos doble clic sobre él y, se abra lo que se abra, buscamos la opción «Descomprimir»; lo más sencillo, en el escritorio.

Una vez tenemos un archivo con extensión .img, hay que grabar esa imagen en una tarjeta SD de, al menos, 4 Gb. Reconozco que esta parte he sido incapaz de llevarla a cabo con Ubuntu. Lo he intentado en la terminal con dd y con Etcher (vía OMG Ubuntu!) pero siempre me ha dado algún error, Etcher se ha actualizado y ahora parece que sí me funciona bien, tanto en Windows como en Ubuntu. Aun así, dejo lo que escribí hace una semana: lo he hecho en Windows, usando SDFormatter para formatear la tarjeta y Win32DiskImager para copiar el archivo .img a la tarjeta.

Es fácil: abrimos SDFormatter, metemos nuestra contraseña si nos lo pide o pulsamos Sí y, en la ventana, seleccionamos «Option». Ahí cambiamos FORMAT SIZE ADJUSTMENT a ON por si acaso la tarjeta tuviera varias particiones. Varias letras (F:, G:), para entendernos. De esta forma las eliminamos y la tarjeta queda como nueva.

sdformatter

La letra (G: en este caso) puede variar

Luego con el Win32DiskImager, algo parecido: metemos nuestra contraseña si nos lo pide o pulsamos Sí y, en la ventana, seleccionamos la tarjeta en la casilla Device (se puede comprobar la letra en el Explorador de Windows si no estamos seguros) y el archivo .img pulsando el icono de la carpeta.

win32

Por cierto, que si no tienes un portátil con adaptador SD, se puede comprar un adaptador USB por menos de un euro en Deal Extreme.

En Etcher, el proceso es todavía más sencillo.  En el primer paso, seleccionamos el archivo que nos hemos descargado y en el segundo probablemente no tengamos que hacer nada si solo tenemos una unidad extraíble insertada. En caso contrario, selecciona la unidad que sea pulsando en «Change». Y pulsamos «Flash». Pedirá confirmación y/o la contraseña de administrador y se pondrá a la tarea.

ventana principal de EtcherUna vez ha concluido con éxito la copia del archivo .img a la tarjeta SD, llega el momento de insertarla en la Raspberry apagada y solo después de asegurarnos de que ha quedado bien insertada la arrancamos enchufando el cargador miniUSB y conectando con un cable HDMI la Raspberry a un monitor.

El sistema ya está instalado y, si hemos optado por la versión Lite, veremos esto.

arranque de Raspbian Lite

Puede asustar o, si tienes una edad, recordarte a los viejos ordenadores Amstrad, Spectrum o Commodore. La ventaja de no tener un escritorio es que se gasta mucha menos memoria. Pero si te decidiste por la versión con escritorio, lo único que tendrás que hacer en posteriores entradas es abrir la aplicación terminal y escribir ahí los comandos.

Una estatua bajo la lluvia

Encontré el otro día por casa un libro de Virginia bastante curioso: The Complete Collection of The Tragedy Series. Es un libro de de humor gráfico; de viñetas, vaya. Y, evidentemente en inglés.

Digamos que no es un libro que yo me habría comprado, es entretenido pero tampoco me parece especialmente divertido. Son varios centenares de viñetas de tragedias ,salpicadas por unos cuantos «alivios». Tiene cosas como estas:

Trágico, sin duda

Trágico, sin duda

No sé si recomendaría comprar el libro, pero hay alguna viñeta realmente curiosa. Y una me ha parecido una greguería perfecta:

La estatua tímida se aguanta las lágrimas hasta que llueve.

Y, no sé, que me ha gustado y quería compartirlo.

Trump

He visto ya bastantes chistes sobre la victoria de Trump en las elecciones estadounidenses. Me preocupa.

Supongo que al final no pasará nada, a las elites no les interesa ahora mismo una guerra porque para EE UU el enemigo real no es Rusia, que no tiene un duro, sino China y no se ve que vayan por ahí los tiros, pero Trump es quien es y representa lo que representa. Es un peligro real, y veo mucha gente pensando que ahora se va a tranquilizar y no va a ser para tanto. Pero lo que ha prometido es racista, xenófobo, machista y violento, en orden aleatorio.

Y me da miedo que dentro de unos años los historiadores se fije en que, durante estos años, la gente hacía chistes en lugar de, primero, tomárselo en serio y, segundo, hacer algo por cambiarlo.

Cargar más