Twake Drive – a alternativa open source ao Google Drive
(github.com/linagora)- O Twake Drive oferece recursos de armazenamento e compartilhamento de arquivos semelhantes ao Google Drive em uma plataforma de armazenamento em nuvem open source
- Suporta implantação baseada em Docker, o que permite executá-lo facilmente em ambiente local, e usa Node.js e MongoDB como principais tecnologias da stack
- Tem uma arquitetura com frontend e backend separados, além de oferecer ambiente de desenvolvimento baseado em Yarn e configuração de caminho de armazenamento local de arquivos
- É distribuído sob a licença Affero GPL v3, permitindo que empresas e organizações o customizem livremente em um modelo de self-hosting
Visão geral do projeto
- O Twake Drive é uma solução open source alternativa ao Google Drive desenvolvida pela Linagora, oferecida para que recursos de armazenamento, compartilhamento e colaboração em arquivos possam ser operados em servidores próprios
- O foco principal são organizações que querem evitar dependência de serviços em nuvem e manter propriedade dos dados e controle de segurança
- O repositório público no GitHub já registra mais de 1.000 estrelas e cerca de 70 forks, com manutenção ativa
- O projeto adota a licença AGPL-3.0, o que exige manter os mesmos termos de licença em caso de modificação e redistribuição do código-fonte
Principais recursos e stack tecnológica
- O Twake Drive funciona com base em Node.js (18.x ou superior), MongoDB e Yarn, e foi projetado com uma arquitetura de frontend e backend separados
- O frontend é executado no diretório
tdrive/frontend/comyarn dev:start - O backend roda em
tdrive/backend/node/após configurar as variáveis de ambiente, usandoyarn dev
- O frontend é executado no diretório
- Oferece uma opção simples de implantação com Docker Compose (
docker-compose.minimal.yml), facilitando testes locais e implantações internas- A interface web pode ser acessada em
http://localhost/
- A interface web pode ser acessada em
- O banco de dados pode ser iniciado facilmente com o comando para executar o contêiner MongoDB (
docker run -p 27017:27017 -d mongo) - As configurações de ambiente podem ser ajustadas em detalhes por meio do arquivo
tdrive/backend/node/config/development.json
Estrutura de desenvolvimento e implantação
- O Twake Drive separa frontend (baseado em React) e backend (baseado em Node.js), e permite definir diretamente o caminho do armazenamento local de arquivos
- A localização de armazenamento dos documentos é configurada pela variável de ambiente
STORAGE_LOCAL_PATH
- A localização de armazenamento dos documentos é configurada pela variável de ambiente
- A configuração PUBSUB_TYPE=local dá suporte ao recurso de publish/subscribe em ambiente local
- Por padrão, a aplicação roda na porta 3000 e tem uma estrutura otimizada para ambientes de desenvolvimento e teste
- Inclui arquivo de configuração do Docker Bake (
docker-bake.hcl) e configuração de GitHub Actions para CI/CD, oferecendo suporte a build e testes automatizados
Código e estado do repositório
- O repositório é composto por 882 commits, 61 branches e 46 tags, mantendo um histórico de desenvolvimento ativo
- A distribuição principal de linguagens é TypeScript 58.9%, JavaScript 32.6%, SCSS 3.7%, CSS 2.2%, HTML 1.3% e Less 1.0%
Licença e possibilidades de uso
- O Twake Drive é distribuído sob a licença Affero GPL v3, o que impõe a mesma obrigação de abertura em caso de modificação e redistribuição do código-fonte
- Com base nele, empresas podem construir um sistema interno de armazenamento em nuvem ou expandi-lo para um modelo SaaS
- É avaliado como uma alternativa capaz de oferecer ao mesmo tempo redução de custos com serviços de nuvem comerciais e garantia de soberania dos dados
1 comentários
Opinião no Hacker News
Muita gente aqui fala de recursos essenciais ou de backup, mas o que realmente importa é se dá para construir e manter uma comunidade por muito tempo
Como armazenamento em nuvem open source pode desaparecer rápido quando os mantenedores se esgotam, um modelo de negócios sustentável ou uma base de contribuidores é tão importante quanto um checklist técnico
Além disso, a interoperabilidade também é subestimada. Se oferecer suporte a WebDAV ou S3 e integrar com sistemas de autenticação já existentes, as equipes vão experimentar com muito mais facilidade
No fim, as pessoas querem um serviço que não desapareça quando acabar a “lua de mel”. Isso é muito mais difícil do que adicionar uma barra de progresso
Eu uso Syncthing e nunca me disseram que eu precisava participar da comunidade, mas continua funcionando muito bem
Pelo visto a Syncthing é financiada pela Kastelo, uma empresa que oferece suporte enterprise
Eu também administro uma consultoria de open source, e contratos corporativos já bastam para manter tudo, mesmo sem comunidade
Comunidade é legal, mas no longo prazo acho que modelo de negócios e estratégia de marketing são mais importantes
Se um sistema suporta a API do S3, fica fácil trocar qualquer storage. Backblaze, Wasabi, API S3 local — quase tudo vira substituição direta
Entre as soluções de sincronização de arquivos self-hosted que usei até hoje, o Seafile foi a melhor
Mas atualizar o servidor ainda é trabalhoso. NextCloud e ferramentas parecidas foram um desastre completo para mim
Tem todos os plugins de que precisamos, o desempenho é bom e a sincronização é perfeita. A ponto de nem haver motivo para testar outra alternativa
Antigamente o NextCloud engasgava com repositórios grandes e precisava de uma máquina mais potente
O Seafile roda tranquilamente até numa placa ARM com 2 GB de RAM
Também testei tudo de forma rigorosa, e a velocidade e a responsividade da sincronização foram impressionantes
Agora já migrei todos os meus arquivos do Google Drive e uso como minha nuvem principal
Teria sido engraçado se o nome fosse Twake Dwive
Como outras pessoas perguntaram, queria saber como isso se compara a NextCloud ou ownCloud. E também se há clientes para Windows/Mac/Mobile
A sobrevivência de uma ferramenta open source de drive depende de três coisas
Se o Twake fizer isso bem e ainda oferecer suporte a S3 e LDAP, pode ter futuro
Mas a parte realmente difícil é confiança e documentação. Precisa de um modelo de ameaça claro, um guia de migração vindo do Drive ou do Dropbox, e um CLI pequeno que funcione até em ambientes headless
Já aconteceu na empresa de o backup estar ativado, mas quando fomos restaurar, tudo estava corrompido. Desde então, validação de backup virou prioridade máxima
Acho estranho fazer um app de alto desempenho desses com 58,9% de TypeScript e 32,6% de JavaScript
Acho mais importante focar nas partes em que a linguagem não é o gargalo
Fugindo um pouco do assunto, será que existe alguma forma de fazer Viber ou WhatsApp usarem outro armazenamento de backup em vez do Google Drive? Fico pensando se, com root, daria para enganar a interface de algum jeito
Um sistema desses realmente precisa de banco de dados?
No Unix, parece que CRUD de usuário e arquivo, mais permissões, já seria suficiente. Será que existe algum software mais antigo que só envolva isso com UI ou API? Mesmo que seja baseado no protocolo SAMBA?
E, se quiser restringir grupos de usuários, rapidinho chega no limite de quantidade de grupos (65536)
usersedocumentsou aproveitar índices e transações do MongoDBTambém simplifica o gerenciamento de metadados de versão e é mais fácil de hackear no Windows
Talvez eu esteja fora do clima do HN, mas para mim o recurso mais importante é a busca
Quando você começa a guardar vários TB de dados, fica difícil achar até uma única foto
Precisa ter análise de imagem para permitir buscas como “duas pessoas na Nothing Street”
Hoje o Google ainda está muito à frente nisso, mas espero que outras nuvens um dia alcancem esse nível
Recomendo experimentar o Syncthing
Só que a experiência no mobile ainda era meio áspera. Mesmo assim, em emergências dá para pegar arquivos pela interface web