Buenas estimados usuarios programadores y desarrolladores de sistemas. En esta vez, les explicaremos a como instalar el sistema de Nube propia u Oficina Virtual Open Source (Es decir que es gratuito), llamado NextCloud. De una forma simple y que puedas realizar con pocos pasos.

¿Que es NextCloud?
NextCloud de acuerdo a sus creadores, fue elaborado con el objetivo de que todas las empresas (Aunque podemos usarlo cualquiera y que sepa instalarlo), puedan ser dueños de sus propias nubes de datos para no tener que depender de terceros (OneDrive, Google Drive, iCloud, etc).
Pero tiene una peculiaridad y es que tiene un sistema con capacidad de instalar plugins. Los cuales en pocas palabras son herramientas que permiten añadir funciones extra para tu sistema y gracias a estos ultimos, es posible que de ser un sistema de nube, se haya convertido en una oficina virtual.
Es decir un sistema con tantas funciones para ti, tus colaboradores y oficina. Que puede llegar a competir contra servicios muy costosos (Como: Google Suit, Microsoft Teams, etc), de herramientas para que los empleados o colaboradores, realicen sus trabajos de forma Online o volver mas eficientes las actividades físicas (Ya que se requiere menos procesos, para lograr algo, porque el mismo sistema automatiza muchas cosas).
A tal grado, de que al momento de redactar este articulo y con la versión de NextCloud 2.0, publicada por sus desarrolladores. Ademas de los servicios de nube o almacén de datos, ofrecen las siguientes funciones como las herramientas principales de su sistema de oficina virtual:
y mucho mucho mas, incluso si tu eres programador. Puedes crear tus propios plugins o sistemas. Incluso que te manden notificaciones, mensajes por chat o por correo.
Pre-Requisitos
Paso extra si usan Cloudflare
En caso de que utilices el sistema de DNS Cloudflare, para gestionar tus DNS (Valga la redundancia). Hay una serie de pasos extra, que debes realizar, para poder continuar usando su sistema SSL y de Proxy, sin que este tenga alguna especie de fallo.
Para empezar, debemos ingresar al apartado de nuestro dominio en nuestra cuenta de Cloudflare (Ambios previamente configurados, como te enseñamos en nuestro tutorial de cloudflare). Posteriormente, ingresaremos al apartado de reglas, ya que daremos clic a la opcion de crear una nueva.

Despues de crear una nueva regla, nos dejara añadir unas opciones, las cuales hay unas en especifico que son recomendadas, para que su sistema en NextCloud, funcione de la forma mas optima posible:
Por ultimo para que estas reglas tengan efecto y nuestro sistema quede asegurado o administrado por CloudFlare, tenemos que activar el proxy de Cloudflare para nuestro dominio o subdominio, que usemos para la oficina (Se recomienda usar un link privado).
Aunque por fines practicos, se recomienda dejar esto desactivado, hasta que nuestra oficina este funcionando como es debido.
Descargar Unzip
Cuando descarguemos nuestro NextCloud de su pagina oficial, con el respectivo comando. Como otros sistemas, estos vienen comprimidos. Por lo tanto necesitamos un sistema que nos permita descomprimir el archivo, para comenzar con la instalacion.
Esto lo haremos con el sistema UnZip, el cual podemos descargar e instalar, utilizando el siguiente comando.
sudo apt install unzip
Crear la base de Datos de NextCloud
Nuestro sistema, va a necesitar tener su propia base de datos. Por lo tanto debemos crearla utilizando MySQL o MariaDB (Cualquiera que ustedes tengan). Para hacer esto, debemos ejecutar los siguientes comandos:
Ingresamos a MySQL o Mariadb:
sudo mysql
Creamos la base de datos MySQL:
create database nextcloud;
Creamos el usuario Mysql y colocamos su contraseña (Debemos guardar el nombre del usuario y la contraseña, porque la usaremos mas adelante, no usen una contraseña suya, inventense una dificil).
create user nextclouduser@localhost identified by ‘tu-contraseña‘;
Dale permisos al nuevo usuario en la base de datos, con los siguientes comandos (Remplaza lo de negritas por los datos que usas).
grant all privileges on nextcloud.* to nextclouduser@localhost identified by ‘tu-contraseña‘;
flush privileges;
Por ultimo, vamos a salir de la base de datos:
exit;
Este mismo procedimiento, lo podemos hacer con alguna panel de control que nosotros usemos para gestionar las bases de datos. Por ejemplo PHPMyAdmin o VestaCP.
Modulos de PHP
Tambien, para que nuestro sistema funcione de forma optima, necesitamos instalar una serie de modulos de PHP. Los cuales podemos instalar de golpe, con el siguiente comando (Esta es para la version Apache2, aunque para Nginx es algo similar, ya ustedes lo deben de saber):
sudo apt install php-imagick php7.4-common php7.4-mysql php7.4-fpm php7.4-gd php7.4-json php7.4-curl php7.4-zip php7.4-xml php7.4-mbstring php7.4-bz2 php7.4-intl php7.4-bcmath php7.4-gmp
Posteriormente debemos reiniciar nuestro sistema de Apache o Nginx, para que carguen estos modulos:
sudo systemctl reload apache2
Otros Softwares necesarios
Existen una serie de softwares, los cuales funcionan a modo de complemento de nuestro sistema de oficina virtual, dandonos en el proceso muchas herramientas, pero requieren ciertos pasos previos para arrancar con nuestro sistema.
Un ejemplo de este tipo de aplicaciones complementarias son: Only Office o Collabora Online, las cuales permiten vincular su sistema OpenSource para editar archivos, con tu oficina virtual. Dandote la capacidad de tener una paqueteria parecida a la de office de Microsoft, totalmente gratis y en la nube.
Ampliamente recomendable incorporarlo, aunque con el objetivo de no volver mas complejo este tutorial, de momento no lo explicaremos.
Descarga de NextCloud
Previamente para poder descargar el archivo en cuestion que vamos a instalar, necesitamos dirigirnos al directorio donde vamos a instalar la aplicacion (Este debe ser en la carpeta public_html), de nuestro sistema LEMP o LAMP. En caso de usar VestaCP, cada web alojada y configurada en nuestro sistema, tiene su propia carpeta public_html. Entonces iria en aquella perteneciente al dominio o subdominio de nuestro NextCloud.
Recuerden que para poder ir a un directorio, solo debemos ejecutar el siguiente comando, remplazando lo que esta en negritas, por nuestra verdadera ruta donde se encuentra aquella carpeta en la que colocaremos nuestro sistema de NextCloud
cd /ruta/ejemplo/ruta
Ahora si, el primer paso que haremos para instalar oficialmente nuestro NextCloud, es descargarlo. En mi caso hago este ejemplo con la V2.0 pero puede que si estas viendo este articulo despues, exista una version mas reciente, para comprobar esto, ingresa a: nextcloud.com/install/
Para poder descargarlo, vamos a usar este comando (Remplazan lo que esta en negritas por la version que quieran instalar):
wget https://download.nextcloud.com/server/releases/nextcloud-20.0.zip
Debido a que este archivo viene comprimido, como habiamos comentado anteriormente. Usaremos el sistema que instalamos en los pre-requisitos para descomprimirlo. Para esto, solo debemos ejecutar el siguiente comando:
sudo unzip nextcloud-20.0.zip
Si por error, lo descargaste en otra carpeta, puedes usar el siguiente comando para elegir la ruta:
sudo unzip nextcloud-20.0.zip -d ruta/ruta/ruta
Se recomienda, sacar todos los archivos que vengan en la carpeta de NextCloud y moverlos a la carpeta public_html (De este modo, mas adelante cuando este instalada y nuestros usuarios tengan que ingresar, el link sera mucho mas simple).
Esto lo pueden hacer de muchas formas, por ejemplo mediante Sftp o ftp (Una aplicacion recomendada de este tipo es la famosa Filezilla o WinSCP), el cual te dejara hacerlo desde su interfaz grafica con unos pocos clics o mediante el comando mv.
Por ultimo, vamos a cambiar el propietario del archivo al del sistema, para que los usuarios puedan ingresar, esto lo haremos con el siguiente comando (Si usamos vesta, cambiaremos www-data, por el nomrbe de usuario que usemos para nuestro panel de control, por ejemplo: admin):
sudo chown www-data:www-data /var/www/nextcloud/ -R
Obviamente debemos remplazar /var/www/nextcloud/ por la carpeta donde se encuentran todos los archivos de nuestro NextCloud.
Instalación de NextCloud
La instalacion de Nextcloud, es algo sumamente simple, ya que despues de realizar todos los pre-requisitos y pasos de descarga. NextCloud nos recibe con un instalador web, el cual simplemente llenando unos pocos datos, en automatico NextCloud, realizara toda la instalacion.
Un paso extra que debemos hacer siempre, es checar que esten abiertos los puertos 80 y 443 (Aunque estos son raros, de que no vengan abiertos de por si):
Puerto 80: sudo iptables -I INPUT -p tcp –dport 80 -j ACCEPT
Puerto 443: sudo iptables -I INPUT -p tcp –dport 443 -j ACCEPT
Activar sistema Https
Para que podamos usar nuestro sistema de NextCloud, de forma optima, necesitamos incorporar un certificado SSL, el cual mantenga encriptado nuestros datos y los del sistema, para evitar que alguien los pueda interceptar y usar en nuestra contra.
Para esto, aunque CloudFlare, nos da ya este certificado, debemos instalar otro con lets encrypt, para tener ambos certificados que funcionen de capa a capa. Para instalar lets encrypt. Debemos usar el siguiente comando:
sudo apt install certbot python3-certbot-apache
Posteriormente, debemos generar nuestro certificado con el siguiente comando (Debemos remplazar lo de negritas, por nuestros datos):
sudo certbot –apache –agree-tos –redirect –staple-ocsp –email you@example.com -d nextcloud.example.com
Cada uno de los terminos usados en este comando significa lo siguiente:
- –apache2: Establece apache como el autenticador e instalador del certificado.
- –agree-tos: Aceptamos los terminos y condiciones de Lets Encrypt (Obligatorio para poder Utilizarlo).
- –redirect: Redireccionara cualquier peticion Http (No segura), a Https (La segura).
- –staple-ocsp: Activa el OCSP
- –email: Correo electronico al que te notificara cuando el certificado este a punto de vencer.
- -d Dominio o SubDominio al que sera asignado nuestro certificado.
En caso de usar VestaCP, ya saben que hay una serie de pasos extra los cuales deben de hacer y esto lo explicamos en su respectivo tutorial.
El sistema nos obligara a que activemos el HSTS (Obligando a los usuarios a utilizar de manera forzada la via segura), esto lo podemos hacer con un plugin en NextCloud, con Cloudflare o si gustan, puede ser mediante la propia configuracion de apache:
sudo nano /etc/apache2/sites-enabled/nextcloud-le-ssl.conf
Posteriormente, debemos añadir la siguiente linea:
Header always set Strict-Transport-Security “max-age=31536000”
Por ultimo debemos comprobar que la configuracion de Apache2, este en perfecto estado y no hayamos roto nada:
sudo apache2ctl -t
Si la configuracion, esta bien. Debemos reiniciar o recargar apache2, para que este a su vez cargue la nueva configuracion:
Reiniciar: servie apache2 restart
Recargar: service apache2 reload
Podemos probar si nuestro certificado SSL, esta cargado apropiadamente en nuestro sistema, utilizando la herramienta (Se recomienda obtener una nota: A, pero una B es buena): www.ssllabs.com/ssltest/
Usar el configurador web
Como habiamos comentado, NextCloud es relativamente sencillo de instalar, ya que cuenta con un asistente de instalacion web, el cual nos ayudara a que este procedimiento sea lo mas simple posible. Unicamente, nos pedira una serie de datos, los cuales debemos llenar (Con los datos de nuestro sistema o quellos obtenidos en prociedimientos anteriores, como los datos de su respectiva base de datos).

Posteriormente a esto debemos de dar clic al boton, para continuar. Posteriormente a esto el Instalador de Nextcloud, trabajara dentro de la base de datos, para dejarla acorde a las necesidades de nuestro sistema, realizara algunas configuraciones o instalaciones necesarias y por ultimo instalara los plugins que recomienda (Aunque podemos evitar que se instalen algunos).
En caso de que pierdan la contraseña del administrador general y no puedan solicitar un restablecimiento de contraseña, porque el sistema de correos no esta activo. Pueden usar el siguiente comando para restablecerlo:
sudo -u www-data php /var/www/nextcloud/occ user:resetpassword nombre-usuario
Conexión a sistema de correo
Es necesario contar con un servidor de correo, ya que nuestro NextCloud, lo utiliza para mandar de vez en cuando ciertas notificaciones al usuario o lo utiliza para ciertas gestiones administrativas (Como el restablecer las contraseñas).
Para poder configuarlo, debemos acceder a la oficina con una cuenta administrativa, posteriormente ingresar al apartado de configuracion

Posteriormente de lado izquierdo, debemos acceder al apartado de configuracion, llamado Configuraciones Basicas.

Dentro de este apartado, encontraremos varias configuraciones, pero en nuestro caso, la que nos interesa es configurar el servidor SMTP. Los cuales debemos llenar con nuestros datos del sistema de correo, que tenemos. Por ultimo debemos colocar nuestro correo, para verificar que el sistema nos puede mandar un correo.

Si efectivamente nos llega el correo en cuestion, quiere decir que nuestro sistema esta listo para funcionar en este aspecto.
Activación de tareas programadas
NextCloud, para mantenerse funcionando de forma optima, necesita realizar ciertas tareas programadas, cada cierto periodico tiempo. Por lo tanto, tiene un sistema, que cuando un usuario accede a la oficina, en automatico ejecuta esta accion (Para sistemas de pocos usuarios esta bien), pero si hablamos de un organismo grande, se recomienda implementar esto con un sistema Cron, el cual ejecutara esta accion de forma automatica cada cierto tiempo que configuremos.
Para empezar, debemos acceder al apartado de Configuraciones Basicas, como lo hicimos con la opcion para configurar el servidor SMTP. En nuestro caso nos iremos al apartado de Trabajos en Segundo plano.

A lado del nombre en apartado, nos sale el estado de las tareas en segundo plano, informandonos de cuando fue la ultima vez que se ejecuto y un circulo de color, dependiendo de si esta en buen estado o mal estado (Si se ejecuto hace menos de 5 minutos, esta en buen estado).
Posteriormente, nos deja la opcion de elegir entre 3 opciones de sistema, como queremos que cada cierto tiempo se ejecute los trabajos en segundo plano. Las cuales les informaremos a continuacion que hace cada una.
- AJAX: Como su nombre indica, utiliza el sistema de AJAX y ejecutara los trabajos en segundo plano, cada vez que un usuario ingrese a la oficina y cargue algo de la misma (Por defecto viene esta opcion, pero para sistemas grandes no es recomendable).
- WebCron: Se utiliza un proceso dentro de nuestro sistema de paginas web, donde cada cierto tiempo ejecutara los trabajos en segundo plano.
- Cron (Recomendado): Este sistema, nos permite establecer en el sistema cron, que queremos que estos procesos se ejecuten cada cierto periodo de tiempo (Se recomienda, cada 5 minutos), haciendo este trabajo de forma automatica. Tambien nos indica que sistema debe realizarlo, en nuestro caso, como para este ejmplo usamos VestaCP, nos dice que debe ser el admin, pero si ustedes lo instalaron en un sistema de usuario por ejemplo, entonces sera el nombre del usuario).
Instalación de plugins recomendados
Como les comentamos, al momento de instalar nuestra oficina NextCloud, de por si el sistema instala algunos plugins que recomienda o desarrollado, por los dueños de NextCloud, pero existen otros plugins, los cuales consideramos indispensables para utilizarse.
- Accesbility
- Activity
- Activities for shared file downloads
- Activities for shared file downloads, visible to all admins
- Announcment center
- Antivirus for files
- Appointments
- AppOrder
- Auditing / Logging
- Automated PDF conversion
- Calendar
- Circles
- Collaborative tags
- Comments
- Contacts
- Contacts Interaction
- Cospend
- Custom menu
- Deck
- Deleted files
- Draw.io
- External sites
- External Storage backend for Dropbox
- External storage support
- Extract
- Federation
- File access control
- File sharing
- Files automated tagging
- First run wizard
- Forms
- Group folders
- Group quota
- HSTS Header
- Impersonate
- Link editor
- Log Reader
- Mind Map
- Monitoring
- Nextcloud announcements
- Notes
- Notifications
- Notifications for calendar event updates
- Password policy
- Passwords
- PDF viewer
- Photos
- Polls
- Printer
- Privacy
- Quick notes
- Quota warning
- Recommendations
- Right click
- Share by mail
- Social sharing via email
- Support
- Talk
- Tasks
- Terms of service
- Text
- Theming
- Two-Factor TOTP Provider
- Two-Factor U2F
- Update notification
- Usage survey
- Versions
- Video player
Plugins que no recomendamos
Pero a si como hay plugins buenos, existen otros que son dañinos para nuestro sistema y no se recomienda su instalacion.
Para empezar, hay un plugin el cual se instala por defecto en nuestro sistema llamado: Brute Force Settings, el cual en algunos sistemas provoca ceberos fallos, prohibiendo total acceso a su sistema. Por lo tanto a no ser que lo vayan a configurar de forma apropiada, no se recomienda su instalacion.
Tambien, entre el repertorio de plugins, existen algunosl os cuales todavia no han sido actualizados, entonces el mismo NextCloud, nos indica esto con rojo y no se recomienda que los instalen porque pueden provocar ciertos fallos ceberos.
Guia para usuarios
Si utilizas este sistema, puedes ingresar al siguiente boton, donde encontraras una guia para los usuarios de como funciona la herramienta para que puedas utilizarla sin problemas. Incluso si usas este sistema para tu proyecto, tienes permiso de usar nuestra guia para que tus usuarios sepan como funciona la herramienta.
Creditos
Estimado usuario esperamos que este tutorial sobre la instalacion del OpenSource NextCloud, su funcionamiento y recomendaciones. Te haya gustado mucho y que lo hayas podido disfrutar.
En caso de tener alguna duda puedes dejarla en los comentarios y con gusto lo resolveremos o un aporte de información extra a aquella presentada en este articulo. También es bienvenida tu opinión sobre el mismo, las cuales siempre leemos para mejorar.
Si te sirvió o sabes de alguien que pueda servirle, recuerda compartirlo con esa persona o en tus redes sociales, para que mas personas puedan beneficiarse de esta información.
Por otro lado, te recomendamos ingresar a nuestro foro, donde puedes continuar hablando de este tema o muchos otros extra, con nuestra comunidad de usuarios.
También no olvides de unirte a nuestra comunidad registrándote o accediendo, para que puedas disfrutar de todos los increíbles beneficios que conlleva ser un usuario de nuestra plataforma, los cuales puedes leer en nuestra pagina principal.
También puedes apoyar a que continuemos mejorando o manteniendo nuestro proyecto, con tu donación. Las cuales pueden obtener una serie de beneficios exclusivos en nuestra web y todo esto lo puedes encontrar en: donaciones.
Sin nada mas que comentar, nos despedimos en este articulo y los esperamos en el siguiente.