Twake Drive – la alternativa de código abierto a Google Drive
(github.com/linagora)- Twake Drive es una plataforma de almacenamiento en la nube de código abierto que ofrece funciones de almacenamiento y compartición de archivos similares a Google Drive
- Soporta despliegue basado en Docker, por lo que puede ejecutarse fácilmente en un entorno local, y usa Node.js y MongoDB como stack tecnológico principal
- Tiene una arquitectura con frontend y backend separados, y ofrece un entorno de desarrollo basado en Yarn junto con la configuración de rutas de almacenamiento local de archivos
- Se publica bajo la licencia Affero GPL v3, por lo que empresas u organizaciones pueden personalizarlo libremente en un esquema de autoalojamiento
Resumen del proyecto
- Twake Drive es una solución de código abierto alternativa a Google Drive desarrollada por Linagora, ofrecida para operar funciones de almacenamiento, compartición y colaboración de archivos en servidores propios
- Está orientada principalmente a organizaciones que buscan evitar la dependencia de servicios en la nube y mantener la propiedad de los datos y el control de la seguridad
- El repositorio publicado en GitHub registra más de 1,000 estrellas y alrededor de 70 forks, y se mantiene activamente
- El proyecto adopta la licencia AGPL-3.0, por lo que al modificar y redistribuir el código fuente se deben conservar las mismas condiciones de licencia
Funciones principales y stack tecnológico
- Twake Drive funciona sobre Node.js (18.x o superior), MongoDB y Yarn, y está diseñado con una arquitectura de frontend y backend separados
- El frontend se ejecuta desde el directorio
tdrive/frontend/conyarn dev:start - El backend se inicia en
tdrive/backend/node/tras configurar las variables de entorno, usandoyarn dev
- El frontend se ejecuta desde el directorio
- Ofrece una opción simple de despliegue con Docker Compose (
docker-compose.minimal.yml), lo que facilita las pruebas locales y los despliegues internos- Se puede acceder a la interfaz web en
http://localhost/
- Se puede acceder a la interfaz web en
- La base de datos puede iniciarse fácilmente con el comando para ejecutar el contenedor de MongoDB (
docker run -p 27017:27017 -d mongo) - La configuración del entorno puede ajustarse en detalle mediante el archivo
tdrive/backend/node/config/development.json
Estructura de desarrollo y despliegue
- Twake Drive separa el frontend (basado en React) y el backend (basado en Node.js), y permite especificar directamente la ruta del almacenamiento local de archivos
- La ubicación de almacenamiento de documentos se configura mediante la variable de entorno
STORAGE_LOCAL_PATH
- La ubicación de almacenamiento de documentos se configura mediante la variable de entorno
- Con la configuración PUBSUB_TYPE=local se habilita la función de publicación y suscripción en entornos locales
- La aplicación se ejecuta por defecto en el puerto 3000 y tiene una estructura optimizada para entornos de desarrollo y pruebas
- Incluye el archivo de configuración de Docker Bake (
docker-bake.hcl) y una configuración de GitHub Actions para CI/CD, lo que permite compilación y pruebas automatizadas
Código y estado del repositorio
- El repositorio está compuesto por 882 commits, 61 ramas y 46 tags, manteniendo un historial de desarrollo activo
- La distribución principal de lenguajes es TypeScript 58.9%, JavaScript 32.6%, SCSS 3.7%, CSS 2.2%, HTML 1.3% y Less 1.0%
Licencia y posibilidades de uso
- Twake Drive se distribuye bajo la licencia Affero GPL v3, lo que implica la misma obligación de publicación al modificar y redistribuir el código fuente
- Las empresas pueden usarlo como base para construir un sistema interno de almacenamiento en la nube o ampliarlo en forma de SaaS
- Se considera una alternativa capaz de lograr al mismo tiempo reducción de costos frente a servicios comerciales en la nube y soberanía de los datos
1 comentarios
Opiniones de Hacker News
Aquí muchos hablan de funciones imprescindibles o de copias de seguridad, pero lo realmente importante es si se puede construir y mantener una comunidad durante mucho tiempo
El almacenamiento en la nube de código abierto puede desaparecer rápido cuando quienes lo mantienen se agotan, así que un modelo de negocio sostenible o una base de contribuyentes es tan importante como la lista de verificación técnica
También se subestima la interoperabilidad. Si soporta WebDAV o S3 y se integra con los sistemas de autenticación existentes, a los equipos les resulta mucho más fácil probarlo
Al final, la gente quiere un servicio que no desaparezca cuando termine la “luna de miel”. Eso es mucho más difícil que agregar una barra de progreso
Uso Syncthing, y nunca me han dicho que participe en la comunidad, pero sigue funcionando muy bien
Parece que Syncthing financia su desarrollo con una empresa llamada Kastelo, que ofrece soporte empresarial
Yo también dirijo una empresa de consultoría open source, y se sostiene perfectamente con contratos corporativos sin necesidad de comunidad
La comunidad está bien, pero a largo plazo creo que son más importantes el modelo de negocio y la estrategia de marketing
Si un sistema soporta la API de S3, cualquier almacenamiento es fácil de reemplazar. Backblaze, Wasabi, una API local de S3: casi todo puede sustituirse directamente
De todos los sistemas de sincronización de archivos self-hosted que he usado, Seafile ha sido el más usable
Pero actualizar el servidor sigue siendo engorroso. NextCloud y herramientas parecidas fueron un desastre total para mis estándares
Tiene todos los plugins que necesitamos, buen rendimiento y sincronización perfecta. Tanto así que no vemos motivo para probar otra alternativa
Antes NextCloud se arrastraba con repositorios grandes y necesitaba una máquina más potente
Seafile funciona bien incluso en una placa ARM con 2 GB de RAM
También lo probé a fondo, y la velocidad de sincronización y la capacidad de respuesta me sorprendieron
Ahora ya moví todos mis archivos desde Google Drive y lo uso como mi nube principal
substfunciona de maravillaHabría sido divertido llamarlo Twake Dwive
Como preguntan otros, me interesa saber cómo se compara esto con NextCloud u ownCloud. Y también si hay clientes para Windows/Mac/Mobile
La vida o muerte de una herramienta de almacenamiento open source depende de tres cosas
Si Twake hace bien eso y además soporta S3 y LDAP, tiene posibilidades
Pero lo realmente difícil es la confianza y la documentación. Hace falta un modelo de amenazas claro, una guía de migración desde Drive o Dropbox, y un CLI pequeño que funcione incluso en entornos headless
Una vez en una empresa teníamos las copias de seguridad activadas, pero cuando intentamos restaurarlas estaban todas corruptas. Desde entonces, verificar los respaldos es mi prioridad número uno
Me parece curioso que una app de tan alto rendimiento esté hecha con 58.9% TypeScript y 32.6% JavaScript
Creo que es más importante enfocarse en las partes donde el cuello de botella no es el lenguaje
Un poco fuera de tema, pero ¿habrá alguna forma de hacer que Viber o WhatsApp usen otro almacenamiento de respaldo en vez de Google Drive? Me pregunto si se podría haciendo root y engañando la interfaz
¿De verdad hace falta una base de datos para un sistema así?
En Unix parecería bastar con CRUD de usuarios y archivos, más permisos. ¿Habrá algún software viejo que simplemente envuelva eso con una UI o API? ¿Aunque sea sobre el protocolo SAMBA?
Además, si quieres restringir grupos de usuarios, enseguida llegas al límite de cantidad de grupos (65536)
usersydocuments, o aprovechar índices y transacciones de MongoDBTambién simplifica la gestión de metadatos de versiones, y en Windows sería más fácil de hackear
Puede que yo vaya contra el ambiente típico de HN, pero para mí la función más importante es la búsqueda
Cuando guardas varios TB de datos, encontrar aunque sea una foto se vuelve difícil
Necesito una función que haga análisis de imágenes y permita buscar cosas como “dos personas en Nothing Street”
Ahora mismo Google está muy por encima en esto, pero ojalá otras nubes eventualmente lo alcancen
Recomiendo probar Syncthing
Eso sí, la experiencia móvil seguía siendo algo tosca. Aun así, con la interfaz web podía sacar un archivo en una urgencia