En este blog he escrito tutoriales sobre dos programas que pueden ser de utilidad a la hora de montar un servidor de almacenamiento propio. Estos son Nextcloud y MinIO. A coninuación mostraré las similitudes y diferencias entre cada uno
Tipos de licencia
Ambos programas ofrecen su código mediante la licencia AGPLv3, además de vender soporte para empresas
Plataformas de servidor
Nextcloud está programado en PHP y requiere una base de datos MySQL o PostgreSQL para funcionar correctamente. Se requiere un servidor con GNU/Linux para poderlo utilizar (puede que funcione en FreeBSD, pero no hay documentación para ello)
MinIO está programado en Go y es compatible no solo con GNU/Linux, sino también con Microsoft Windows y Mac OS
Público objetivo
Nextcloud está dirigido al usuario promedio de servicios en la nube. El propósito principal es reemplazar servicios como Google Drive. También es una buena alternativa a opciones propietarias como los NAS Synology
MinIO está dirigido a desarrolladores de aplicaciones en la nube.
El propósito principal es reemplazar servicios como Amazon S3 con un cluster de servidores propio, aunque también se puede montar con un solo servidor de un disco (como se ve en mi tutorial). También se puede montar un NAS casero con este software, pero el manejo de este difiere en comparación con Nextcloud
Protocolos
Nextcloud utiliza una interfaz WebDAV para interactuar con los programas cliente, por lo que cualquier programa capaz de interactuar con este protocolo debería funcionar sin problemas
MinIO utiliza el protocolo de Amazon S3 para interactuar con los programas cliente, por lo que la mayoría de programas compatibles con Amazon S3 deberían ser compatibles con este. Nextcloud puede utilizar una instancia de MinIO como backend de almacenamiento (aquí se muestra cómo)
Programas cliente oficiales
Nextcloud cuenta con un cliente de sincronización para sistemas de escritorio, el cual es sencillo de utilizar
MinIO provee un cliente para consola de comandos que permite transferir archivos con una relativa facilidad (si tienes experiencia administrando archivos mediante comandos de texto). También permite sincronizar archivos, pero solamente en una dirección
Nextcloud ofrece un cliente oficial para Android fácil de usar
MinIO no cuenta con uno oficial, pero hay algunos compatibles con S3 que funcionan bien con este software. Aquí está uno para Android que me ha funcionado. Aquí hay un cliente de sincronización compatible con ambos
Interfaz web
La interfaz web de Nextcloud se ve así en un navegador de escritorio
Así se ve la de MinIO
La interfaz web de Nextcloud se adapta bien a un navegador móvil, aquí una muestra
Con la interfaz web de MinIO no han tomado en cuenta los navegadores móviles
Compartir archivos
En ambos se puede compartir archivos sueltos. En el caso de MinIO es necesario establecer una fecha de expiración, mientras que en Nextcloud esto es opcional. En Nextcloud existe la opción para compartir carpetas completas mediante un solo enlace, algo que MinIO no puede hacer por si solo.
Al compartir un arhivo en Nextcloud se obtiene un enlace que permite previsualizar el archivo (dependiendo del tipo de archivo), descargarlo, o importarlo a otro servidor de Nextcloud. En caso de haber compartido una carpeta completa se mostrará un listado con los archivos de esta
Al compartir un arhivo en MinIO se obtiene un enlace directo al archivo, el cual se abrirá o se descargará según el programa donde se introduzca
Para insertar una imagen dentro de un sitio web se puede utilizar directamente el enlace compartido a través de MinIO, pero con Nextcloud debe agregarse el sufijo /download al final del enlace para tener algo similar al enlace de MinIO