Diferencia entre revisiones de «Nextcloud»

De La Wiki de KiVi
(Página creada con «[https://nextcloud.com Nextcloud] se puede resumir a como una alternativa a otros servicios de almacenamiento y edición en la nube, como puede ser Google Drive, OneDrive, Dropbox… Pero su principal característica es que es gratuito y de código abierto y puedes descargarlo e instalarlo en tu propio servidor, así acceder a tu propio «disco» desde cualquier punto del mundo con solo el navegador o la aplicación de sincronización de escritorio o teléfono y mucha…»)
 
Sin resumen de edición
Línea 96: Línea 96:


= Instalación manual oficial =
= Instalación manual oficial =
= Completando la instalación de Nextcloud =
En la entrada anterior instalamos Nextcloud fácilmente desde los repositorios de Fedora, peró el proceso está lejos de acabar, antes, quedan varios procesos.
=== Límite de memoria en PHP ===
Este proceso es necesario en otros servicios para poder gestionar procesos por PHP, como por ejemplo, subir ficheros. Para ello, debemos editar el fichero:
sudo nano /etc/php.ini
Y debemos buscar la línea:
memory_limit = 128M
Por defecto viene a un valor de 128 Megas, mínimo, debemos cambiarlo a 512M:
memory_limit = 512M
Hecho esto, cerramos el editor y reiniciamos el servicio apache:
sudo systemctl restart httpd
=== PHP configuration option output_buffering must be disabled ===
Para comprobar la salud de nuestro servicio, podemos acceder al Administrador de configuraciones y veremos qué nos puede faltar o fallar, por ejemplo, el output_buffering de la configuración de php, debe estar deshabilitado. Este mensaje es un bug que genera esta advertencia y será reparado por los desarrolladores.
Mientras podemos crear el fichero:
sudo nano /usr/share/nextcloud/.user.ini
Con la linia:
output_buffering=0
=== Cacheando la memoria ===
Otra de las advertencias que nos podemos encontrar es el «memory_caching» que influye en el rendimiento del servicio. Por defecto, no viene configurado y hay que configurarlo.
Hay tres maneras de cachear la memoria como se muestra en la página de soporte oficial, pero he optado por la más sencilla. Para ello instalaremos:
sudo dnf install php-pecl-apcu
Editamos el fichero de configuración de Nextcloud
sudo nano /etc/nextcloud/config.php
y añadimos a la penúltima línea:
'memcache.local' => '\OC\Memcache\APCu',
Ahora tenemos que editar el fichero:
sudo nano /etc/php.d/40-apcu.ini
Y dejamos el valor:
apc.enable_cli=1
Cerramos y reiniciamos los servicios:
sudo systemctl restart httpd php-fpm
=== Instalar los módulos php gmp i bcmath ===
No son obligatorios, pero si recomendables estar estos dos módulos, los instalamos con:
sudo dnf install php-gmp php-bcmath
Y reiniciamos el servicio:
sudo systemctl restart httpd
=== Región del teléfono ===
Otro parámetro que no es obligatorio es la región del teléfono por defecto, para configurarlo editamos:
sudo nano /etc/nextcloud/config.php
Y en la penúltima línea añadimos:
'default_phone_region' => 'ES',
=== Configurando el correo electrónico ===
Otro de los ajustes básicos es el envío de correos electrónicos, en mi caso utilizo una contraseña maestra de gmail y los parámetros quedan:
Es importante «Enviar mensaje» una vez hechas las configuraciones para acabar el proceso.
=== Instalando aplicaciones por consola ===
Podemos instalar aplicaciones por administrador del navegador, pero es mucho más rápido administrar por consola con occ. Unos ejemplos:
cd /usr/share/nextcloud
sudo -u apache php occ app:install bookmarks #Instala el gestor de marcadores
sudo -u apache php occ app:install passwords #Instala el gestor de contraseñas
sudo -u apache php occ app:install tasks #instala un gestor de tareas que se adapta a calendar
sudo -u apache php occ app:install notes #un gestor de notas básico
sudo -u apache php occ app:install deck  #Un gestor de tareas avanzado
sudo -u apache php occ app:install groupfolders  #Permite la gestión de grupos a las carpetas
sudo -u apache php occ app:install richdocumentscode #Instala un editor de documentos integrado CODE
sudo -u apache php occ app:install richdocuments  #Necesario con el complemento anterior.
sudo -u apache php occ app:install forms  #Instala un generador de formularios que guarda los datos en una hoja
sudo -u apache php occ app:install mail      #Cliente de correo electrónico web
sudo -u apache php occ app:install calendar  #Un gestor de calendario comparable a Google Calendar
sudo -u apache php occ app:install contacts  #Un gestor de contactos que se integra a el resto de complementos
sudo -u apache php occ app:install text          #Un editor de texto básico
sudo -u apache php occ app:install spreed          #Un cliente de chat entre los contactos que permite llamadas y conferencias por video.
sudo -u apache php occ app:install recognize #Permite reconoce en tus fotos a animales, caras...
=== Reparar los ficheros por consola ===
Puede darse el caso que falte un fichero o que no permita borrarlos, eso se debe a un error en la base de datos, se puede reparar fácilmente con:
sudo -u apache php occ files:scan --all
=== Gestión de usuarios y grupos ===
Lista de usuarios
sudo -u apache php ./occ user:list
Lista los grupos y sus usuarios
sudo -u www-data php occ group:list
Crea un usuario
sudo -u apache php occ user:add --display-name="Usuario1" --group="users" --group="Grupo1" usuario1
Borra un usuario
sudo -u apache php ./occ user:delete usuario1
Consulta la configuración del usuario
sudo -u apache php ./occ user:setting usuario2
Configura el usuario, asigna un correo electrónico:
sudo -u apache php ./occ user:setting usuario2 settings email "usuario2@mainkivi.info"
Asigna una quota de disco al usuario
sudo -u apache php ./occ user:setting usuario2 files quota 10GB
Resetea la contraseña del usuario
sudo -u apache php occ user:resetpassword usuario2
Estas y más instrucciones en: <nowiki>https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/occ_command.html</nowiki>
=== Para complementar la entrada, adjunto un video: ===
<youtube>https://www.youtube.com/watch?v=lXGXDcpWKyo</youtube>

Revisión del 10:32 10 abr 2024

Nextcloud se puede resumir a como una alternativa a otros servicios de almacenamiento y edición en la nube, como puede ser Google Drive, OneDrive, Dropbox… Pero su principal característica es que es gratuito y de código abierto y puedes descargarlo e instalarlo en tu propio servidor, así acceder a tu propio «disco» desde cualquier punto del mundo con solo el navegador o la aplicación de sincronización de escritorio o teléfono y muchas opciones más.

Nextcloud es una bifurcación de OwnCloud, es decir, parte del grupo de programadores que quisieron hacer su propia versión del servicio pero con más añadidos.

Instalación desde los repositorios de Fedora

Siguiendo la instalación de servicios en Fedora, podemos instalar el programa desde repositorios oficiales.

sudo dnf install nextcloud

Esto ya genera los directorios de servicio en /usr/share y los de configuración en /etc, por ejemplo, el fichero de configuración de Apache.

El siguiente paso es crear la base de dato, primero accedemos a mysql:

mysql -u root -p 

y creamos la base de datos como en la entrada anterior:

CREATE DATABASE IF NOT EXISTS nextcloud;

Y, si no queremos crear otro usuario, podemos aprovechar el mismo que la entrada anterior:

GRANT ALL PRIVILEGES ON nextcloud.* TO 'admin'@'localhost' IDENTIFIED BY 'F3d0r4-01';
FLUSH PRIVILEGES;

Ahora que ya tenemos la base de datos, vamos a realizar la instalación de nextcloud, en este caso, este, tiene un instalador por PHP que nos va de perlas y que utilizáramos para la mayoría de las operaciones:

cd /usr/share/nextcloud
sudo -u apache php occ maintenance:install --data-dir /var/lib/nextcloud/data/ --database "mysql" --database-name "nextcloud" --database-user "admin" --database-pass "F3d0r4-01" --admin-user "admin" --admin-pass "F3d0r4-01"

ln -s /etc/httpd/conf.d/nextcloud-access.conf.avail /etc/httpd/conf.d/z-nextcloud-access.conf

Con esto haremos le indicamos el directorio donde se ubicaran los datos, el tipo de servidor de base de datos, el nombre de la base de datos que hemos indicado anteriormente, junto con el usuario y contraseña y, por último, el usuario y contraseña de administración del sitio que, por defecto, pongo el mismo que la base de datos para hacerlo más fácil.

También tenemos que permitir que el sitio sea accesible desde fuera del equipo local editando :

sudo nano /etc/httpd/conf.d/nextcloud-auth-local.inc

Y toca cambiar el «Require» para permitir todo el acceso que no sea local:

Cerramos el editor guardando los cambios y reiniciamos el servicio:

sudo systemctl restart httpd

De hecho ya podemos hacer la prueba accediendo al navegador:

https://192.168.1.241/nextcloud

Hecho esto ya podemos acceder a la interficie web, pero queda añadir otro apunte en seguridad y es el dominio de confianza, ya que, por seguridad, limita el acceso a redes desconocidas. Sin salir del directorio de instalación escribimos:

Nextcloud se puede resumir a como una alternativa a otros servicios de almacenamiento y edición en la nube, como puede ser Google Drive, OneDrive, Dropbox… Pero su principal característica es que es gratuito y de código abierto y puedes descargarlo e instalarlo en tu propio servidor, así acceder a tu propio «disco» desde cualquier punto del mundo con solo el navegador o la aplicación de sincronización de escritorio o teléfono y muchas opciones más.

Nextcloud es una bifurcación de OwnCloud, es decir, parte del grupo de programadores que quisieron hacer su propia versión del servicio pero con más añadidos.

Siguiendo la instalación de servicios en Fedora, podemos instalar el programa desde repositorios oficiales.

sudo dnf install nextcloud

Esto ya genera los directorios de servicio en /usr/share y los de configuración en /etc, por ejemplo, el fichero de configuración de Apache.

El siguiente paso es crear la base de dato, primero accedemos a mysql:

mysql -u root -p 

y creamos la base de datos como en la entrada anterior:

CREATE DATABASE IF NOT EXISTS nextcloud;

Y, si no queremos crear otro usuario, podemos aprovechar el mismo que la entrada anterior:

GRANT ALL PRIVILEGES ON nextcloud.* TO 'admin'@'localhost' IDENTIFIED BY 'F3d0r4-01';
FLUSH PRIVILEGES;

Ahora que ya tenemos la base de datos, vamos a realizar la instalación de nextcloud, en este caso, este, tiene un instalador por PHP que nos va de perlas y que utilizáramos para la mayoría de las operaciones:

cd /usr/share/nextcloud
sudo -u apache php occ maintenance:install --data-dir /var/lib/nextcloud/data/ --database "mysql" --database-name "nextcloud" --database-user "admin" --database-pass "F3d0r4-01" --admin-user "admin" --admin-pass "F3d0r4-01"

ln -s /etc/httpd/conf.d/nextcloud-access.conf.avail /etc/httpd/conf.d/z-nextcloud-access.conf

Con esto haremos le indicamos el directorio donde se ubicaran los datos, el tipo de servidor de base de datos, el nombre de la base de datos que hemos indicado anteriormente, junto con el usuario y contraseña y, por último, el usuario y contraseña de administración del sitio que, por defecto, pongo el mismo que la base de datos para hacerlo más fácil.

También tenemos que permitir que el sitio sea accesible desde fuera del equipo local editando :

sudo nano /etc/httpd/conf.d/nextcloud-auth-local.inc

Y toca cambiar el «Require» para permitir todo el acceso que Nextcloudno sea local:

Cerramos el editor guardando los cambios y reiniciamos el servicio:

sudo systemctl restart httpd

De hecho ya podemos hacer la prueba accediendo al navegador:

https://192.168.1.241/nextcloud

Hecho esto ya podemos acceder a la interficie web, pero queda añadir otro apunte en seguridad y es el dominio de confianza, ya que, por seguridad, limita el acceso a redes desconocidas. Sin salir del directorio de instalación escribimos:

sudo -u apache php occ config:system:get trusted_domains

Así vemos la lista de dominios de confianza, para añadir nuevos, añadir POR ORDEN, la IP o el nombre de acceso:

sudo -u apache php occ config:system:set trusted_domains 1 --value="192.168.1.241"

Resumen de directorios en el servidor:

  • /usr/share/nextcloud – directorio de instalación
  • /etc/nextcloud – directorio donde se ubica la configuración
  • /etc/httpd/conf.d/ – directorio del servidor apache donde se ubican las configuraciones del servidor web
  • /var/lib/nextcloud/data – directorio donde se ubicará el contenido de los usuarios

Video explicativo

sudo -u apache php occ config:system:get trusted_domains

Así vemos la lista de dominios de confianza, para añadir nuevos, añadir POR ORDEN, la IP o el nombre de acceso:

sudo -u apache php occ config:system:set trusted_domains 1 --value="192.168.1.241"

Resumen de directorios en el servidor:

  • /usr/share/nextcloud – directorio de instalación
  • /etc/nextcloud – directorio donde se ubica la configuración
  • /etc/httpd/conf.d/ – directorio del servidor apache donde se ubican las configuraciones del servidor web
  • /var/lib/nextcloud/data – directorio donde se ubicará el conteNextcloudnido de los usuarios

Video explicativo

Instalación manual oficial

Completando la instalación de Nextcloud

En la entrada anterior instalamos Nextcloud fácilmente desde los repositorios de Fedora, peró el proceso está lejos de acabar, antes, quedan varios procesos.

Límite de memoria en PHP

Este proceso es necesario en otros servicios para poder gestionar procesos por PHP, como por ejemplo, subir ficheros. Para ello, debemos editar el fichero:

sudo nano /etc/php.ini

Y debemos buscar la línea:

memory_limit = 128M

Por defecto viene a un valor de 128 Megas, mínimo, debemos cambiarlo a 512M:

memory_limit = 512M

Hecho esto, cerramos el editor y reiniciamos el servicio apache:

sudo systemctl restart httpd

PHP configuration option output_buffering must be disabled

Para comprobar la salud de nuestro servicio, podemos acceder al Administrador de configuraciones y veremos qué nos puede faltar o fallar, por ejemplo, el output_buffering de la configuración de php, debe estar deshabilitado. Este mensaje es un bug que genera esta advertencia y será reparado por los desarrolladores.

Mientras podemos crear el fichero:

sudo nano /usr/share/nextcloud/.user.ini

Con la linia:

output_buffering=0

Cacheando la memoria

Otra de las advertencias que nos podemos encontrar es el «memory_caching» que influye en el rendimiento del servicio. Por defecto, no viene configurado y hay que configurarlo.

Hay tres maneras de cachear la memoria como se muestra en la página de soporte oficial, pero he optado por la más sencilla. Para ello instalaremos:

sudo dnf install php-pecl-apcu

Editamos el fichero de configuración de Nextcloud

sudo nano /etc/nextcloud/config.php

y añadimos a la penúltima línea:

'memcache.local' => '\OC\Memcache\APCu',

Ahora tenemos que editar el fichero:

sudo nano /etc/php.d/40-apcu.ini

Y dejamos el valor:

apc.enable_cli=1

Cerramos y reiniciamos los servicios:

sudo systemctl restart httpd php-fpm

Instalar los módulos php gmp i bcmath

No son obligatorios, pero si recomendables estar estos dos módulos, los instalamos con:

sudo dnf install php-gmp php-bcmath

Y reiniciamos el servicio:

sudo systemctl restart httpd

Región del teléfono

Otro parámetro que no es obligatorio es la región del teléfono por defecto, para configurarlo editamos:

sudo nano /etc/nextcloud/config.php

Y en la penúltima línea añadimos:

'default_phone_region' => 'ES',

Configurando el correo electrónico

Otro de los ajustes básicos es el envío de correos electrónicos, en mi caso utilizo una contraseña maestra de gmail y los parámetros quedan:

Es importante «Enviar mensaje» una vez hechas las configuraciones para acabar el proceso.

Instalando aplicaciones por consola

Podemos instalar aplicaciones por administrador del navegador, pero es mucho más rápido administrar por consola con occ. Unos ejemplos:

cd /usr/share/nextcloud

sudo -u apache php occ app:install bookmarks #Instala el gestor de marcadores
sudo -u apache php occ app:install passwords #Instala el gestor de contraseñas
sudo -u apache php occ app:install tasks #instala un gestor de tareas que se adapta a calendar 
sudo -u apache php occ app:install notes #un gestor de notas básico
sudo -u apache php occ app:install deck  #Un gestor de tareas avanzado
sudo -u apache php occ app:install groupfolders  #Permite la gestión de grupos a las carpetas
sudo -u apache php occ app:install richdocumentscode #Instala un editor de documentos integrado CODE
sudo -u apache php occ app:install richdocuments  #Necesario con el complemento anterior.
sudo -u apache php occ app:install forms   #Instala un generador de formularios que guarda los datos en una hoja
sudo -u apache php occ app:install mail      #Cliente de correo electrónico web
sudo -u apache php occ app:install calendar  #Un gestor de calendario comparable a Google Calendar
sudo -u apache php occ app:install contacts  #Un gestor de contactos que se integra a el resto de complementos
sudo -u apache php occ app:install text           #Un editor de texto básico
sudo -u apache php occ app:install spreed           #Un cliente de chat entre los contactos que permite llamadas y conferencias por video.
sudo -u apache php occ app:install recognize #Permite reconoce en tus fotos a animales, caras...

Reparar los ficheros por consola

Puede darse el caso que falte un fichero o que no permita borrarlos, eso se debe a un error en la base de datos, se puede reparar fácilmente con:

sudo -u apache php occ files:scan --all

Gestión de usuarios y grupos

Lista de usuarios

sudo -u apache php ./occ user:list

Lista los grupos y sus usuarios

sudo -u www-data php occ group:list

Crea un usuario

sudo -u apache php occ user:add --display-name="Usuario1" --group="users" --group="Grupo1" usuario1

Borra un usuario

sudo -u apache php ./occ user:delete usuario1

Consulta la configuración del usuario

sudo -u apache php ./occ user:setting usuario2

Configura el usuario, asigna un correo electrónico:

sudo -u apache php ./occ user:setting usuario2 settings email "usuario2@mainkivi.info"

Asigna una quota de disco al usuario

sudo -u apache php ./occ user:setting usuario2 files quota 10GB

Resetea la contraseña del usuario

sudo -u apache php occ user:resetpassword usuario2

Estas y más instrucciones en: https://docs.nextcloud.com/server/stable/admin_manual/configuration_server/occ_command.html

Para complementar la entrada, adjunto un video: