Como criar meu próprio servidor Dropbox / Ubuntu One em casa?

70

Alguém sabe de algum recurso que possa me mostrar como fazer meu próprio servidor "Dropbox, Ubuntu One" em casa?

Eu realmente gosto da ideia desses serviços, mas não quero colocar minhas 'coisas' nas nuvens. Idealmente, ele deve ter um cliente que seja executado no Linux e no Windows.

Eu tentei configurar o iFolder no meu Ubuntu 10.04, mas sem sucesso até agora.

    
por user1978 05.09.2010 / 19:08

13 respostas

41

Atualmente, não há uma ótima alternativa de código aberto que funcione fora da caixa. A melhor coisa a observar é o projeto sparkleshare: link

Espero que isso se torne uma ótima alternativa, faça você mesmo.

    
por Rick 05.09.2010 / 19:13
44

Na verdade, existem muitos deles.

  • SparkleShare (deps: git / subversão, mono, python) em github Software de sincronização baseado em GUI.

    a. Versionamento: através de um sistema de controle de origem, portanto, é baseado em mutex em um servidor central através de um número de versão.

    b. Estado: em desenvolvimento

    c. Prós: OSS, mono-baseado tão facilmente modificável, Contras: processo de nível de usuário, dependente de GC, protocolo de compartilhamento ineficaz por ordens de grandeza como git é principalmente para pequenos arquivos de texto, bastante difícil de compilar (eu tentei). Usando ferramentas de alto nível.

  • lipsync (deps: Unison, rsync) Software baseado em serviço de linha de comando.

    a. Versão: por meio do algoritmos delta rsync . Eu assumo que o programador deve escolher a resolução de conflitos.

    b. Estado: não consigo encontrar o código-fonte, por isso não faço ideia. As únicas coisas em seu repositório git são binários.

    c. Prós: boa configuração, usando ferramentas de nível médio.

  • iFolder - Dropbox da Novell. Eu ainda não estudei sua fonte. Eu só quero terminar esta edição e se as pessoas estiverem interessadas, adicionarei mais.

    a. Versão:

    b. Estado: Problemático para compilar no Ubuntu, sem falar nos pacotes. Aqui está um guia de instalação detalhado .

    c. Prós: cliente Windows X64, maduro, integração AD com ACLs, recursos que nenhum outro projeto começou a implementar. Eu acho que isso pode ser um bom ponto de partida. Contras: A Novell pode não usar o seu repositório svn público como o repositório principal e apenas fazer as descrições de código. Eu não sei exatamente sobre isso. Pode ser muito acoplado ao openSUSE para instalar facilmente no Ubuntu. Para verificar seus algoritmos.

  • scp / rcp - preterido em favor do rsync

  • DRDB - bloqueia as ferramentas de espelhamento de dispositivos para RAID-1 distribuído, ou seja, uma variante de servidor da caixa de depósito. Eu ainda não verifiquei seu código-fonte, mas ele é apenas linux. O algoritmo atual provavelmente seria fácil de combinar com o código-fonte em minhas reflexões abaixo desta listagem de software.

    a. Versionamento: formato de mensagem interna em LAN / WAN

    b. Estado: parece maduro o suficiente

    c. Prós: estáveis o suficiente para o Linux, Contras: não há suporte para outros sistemas operacionais

Neste momento, estou investigando a melhoria dos tempos de compilação em um Windows 7 Virtualizado, em que os tempos de compilação em um Windows 7 em metal são de 40 s, mas virtualizados em aproximadamente 3m 20s. Estou pensando em escrever um driver ioctl que é um cache write-through que se parece com um disco RAM para pastas selecionadas em NTFS.

Usando o software acima, acho que uma semana de desenvolvimento em tempo integral de 2 a 3 pessoas produziria um Alpha utilizável que não perdesse seus arquivos combinando os softwares acima.

No meu sistema, então, a ideia geral seria:

  1. Monte uma unidade virtual \? {GUID}, que é o disco RAM e o cache RW. O software que cria esta unidade virtual usa dois parâmetros de entrada (que são vitais):

    a. A pasta de destino; esta é a pasta SMB, portanto, deixarei que a pilha de rede do sistema operacional manipule o IO real. No meu caso, esta é a pasta virtual VMWare, que tem em si um destino em uma unidade ext4, mas poderia facilmente ser seu servidor de arquivos usando SAMBA / SMB.

    b. O caminho da pasta a ser montada, e. C: \ ramdisk

    Este código para criar volumes virtuais foi retirado do código do TrueCrypt , em /Driver/DriverFilter.c (entre outros arquivos)

  2. A unidade usa o SMB / o protocolo de rede VMWare / para buscar dados quando ele é iniciado; ele obtém com baixa prioridade de tarefa, de forma assíncrona da rede e preenche seu cache. Ele poderia usar um algoritmo de compactação simples e ter 1 thread que usa passagem de continuação do tipo de caixa de mensagem para obter um ótimo desempenho. No Windows, ele poderia usar as chamadas IO assíncronas normais, e no linux ele poderia usar o epoll / inotify implementação e código de nginx .

  3. Meu serviço que é o disco RAM monta a unidade de disco ramn sem nome como uma pasta NTFS. Todos os programas podem continuar gravando em C: \ ramdisk, ou como quer que eu chame.

  4. Cópia assíncrona da rede ainda em andamento. Com uma taxa de leitura de aproximadamente 100 MiB / se 2 GiB ramdisk, seria 20,5 s para ler todos os dados.

Cada chamada a ler executaria um cálculo no índice da CPU em um array de tamanho fixo n: ulong GiB max. Isso exigiria a resolução de conflitos ou bloqueios de leitura / gravação.Se implementássemos um algoritmo de resolução de conflito como os disponíveis no Microsoft Sync, poderíamos transmitir cada parte que conflita como uma mensagem para outro processo de resolução de conflito. O Dropbox resolve isso criando um novo arquivo e nomeando-o "Cópia Conflita do Nome de Usuário PrevFileName (aaaa-MM-dd) .ext". Talvez isso possa ser alterado por meio de um widget pequeno, se estiver sendo compilado com essa única fonte - o widget detectará mudanças pendentes como mensagens / eventos e escolherá o protocolo de resolução de conflitos. Assim, ao programar em uma pasta no modo exclusivo, a VM do Windows poderia definir o widget como 'exclusivo'.

Isso teria esses PROs

  • Seria sem bloqueio / assíncrono
  • Isso pressupõe, mas não exige, que um computador esteja escrevendo principalmente para os arquivos.
  • Funcionaria para arquivos arbitrariamente grandes
  • Funcionaria no * nix e no Windows, unindo os projetos mencionados.
  • Funcionaria quando for necessário um alto desempenho de leitura (ou seja, os arquivos estão fisicamente localizados no disco)
  • Quando os eventos conflitantes são atingidos, é possível fornecer um aplicativo de interface do usuário que permita ao usuário gravar / baixar plug-ins que funcionem adequadamente para diferentes tipos de eventos, ou seja, diferentes tipos de arquivos. Por exemplo. um arquivo de texto poderia ser criado com o Kompare / WinDiff, enquanto um binário seria duplicado e salvo como outro arquivo.
por Henrik 31.01.2011 / 20:22
18

OwnCloud ! soa como algo que você está procurando.

    
por Dinesh 22.10.2011 / 11:18
5

Eu ouvi sobre o Syncany no Ubuntu UK Podcast , atualmente beta, mas parece que atende aos requisitos

    
por deveneyi 24.06.2011 / 18:57
3

Eu não acho que isso é exatamente o que você está procurando, mas depende do seu uso pretendido.

O

CrashPlan é um pacote de software de backup e serviço de hospedagem de backup online relacionado, mas o que é diferente é que o software deles tem um modo que permite ter seus dados copiados pela Internet (ou LAN) para outro PC executando o software.

Isso significa que o destino não precisa estar na nuvem. Não é bem como dropbox, pois é mais um backup, em vez de sincronizar e acessar arquivos de qualquer lugar, mas se for apenas backups, então ele funciona bem. Se você quiser acessar os arquivos de backup do outro PC, eu acho que você pode fazer uma "restauração local", mas não é algo que eu tentei.

O pacote básico de software é gratuito e suporta o modo "backup para outro computador", mas apenas o backup programado, mas há uma versão "pro" do software que também custa e sincroniza em tempo real, em vez de apenas os backups agendados . (Armazenamento em nuvem também é um pagamento opcional por mês extra)

    
por Simon P Stevens 05.09.2010 / 20:12
3

Eu uso o Unison para o cliente e rsnapshot (rsync com script perl) para fazer backup do servidor.

    
por bassgey 21.10.2010 / 14:20
2

Veja se isso ajuda:

link

    
por guest442 05.09.2010 / 22:21
2

Se você quiser configurar duas (ou mais) máquinas com uma pasta replicada, dê uma olhada no glusterfs.

É fácil de configurar se você seguir o Guia do usuário do GlusterFS .

    
por Richard Holloway 07.09.2010 / 00:34
2

Ninguém mencionou a sincronização bitorrent ? É executado em qualquer coisa - Ubuntu, Windows, muitos sistemas operacionais de smartphones comuns, framboesa pi .... você nomeia, provavelmente funciona e como um usuário comum. Transferências criptografadas, arquivos não são armazenados na nuvem (embora eu acho que o bittorrent executa o rastreador para isso), razoavelmente rápido, você pode compartilhar pastas seletivamente, e quase nenhuma complicação envolvida, você só precisa copiar e colar uma chave para o outro sistema.

Uma vez configurado, funciona.

    
por Journeyman Geek 08.02.2014 / 05:33
1

Estou de olho no AeroFS . Parece que pode ser um serviço semelhante ao Dropbox, em que o armazenamento na nuvem é opcional. Não sei se / quando eles implementarão o suporte móvel e eu acho que isso exigiria que você sincronizasse esses arquivos na nuvem também. Estou interessado principalmente em uma solução de sincronização bastante indolor entre computadores Windows, Mac e Linux.

Eles estão no beta inicial, mas você pode inscrever-se para um convite, se desejar.

    
por dempa 28.01.2012 / 12:01
1

Eu uso o apache com mod_dav (webdav) para um servidor web apache, posso montá-lo como uma unidade e fazer o download / download de arquivos pela web. Isso é bem simples, mas pode cobrir suas necessidades.

    
por JurjenB 21.02.2012 / 20:35
1
Embora existam alternativas interessantes listadas aqui e esta é uma pergunta antiga, estou convencido de que este tópico não está claramente desatualizado e - pelo contrário - está ganhando cada vez mais importância, devido aos últimos eventos de quebra de privacidade. / p>

Eu quero compartilhar minha própria experiência, portanto. Minha solução atual para um ambiente próprio de nuvem hospedada é o Seafile .

Recursos do Seafile:

  • Acesso à nuvem baseado na Web
  • Clientes para Linux, Windows, Mac, iOS (não gratuito), Android
  • Gerenciamento de usuários / grupos
  • Organização de arquivos por meio de bibliotecas diferentes
  • Sincronização automática de arquivos via software cliente
  • Possibilidade de publicar arquivos por meio da criação de links públicos

Minhas experiências Seafile:

  • A instalação foi fácil e rápida! (em um slim debian vm, com arquivos armazenados via share para o host físico dmraid 5)
  • Interface do usuário limpa e funcional
  • Software cliente limpo e funcional
  • Não havia nenhum problemas funcionais para mim, até agora! (usando isso há algumas semanas)
  • O conjunto de recursos é básico (comparado ao owncloud, por exemplo), mas eu enfatizo que tudo funciona aqui!
  • Nenhum suporte de proxy direto (pelo menos para o cliente linux - e a interface web!). Nota: o webinterface funciona, mas o download de arquivos via webinterface não funciona atrás de um proxy - não sei se isso é possível de alguma forma

Como não preciso de suporte a proxy, estou realmente satisfeito com o Seafile!

    
por Nicolas 29.07.2014 / 10:35
0

Eu uso o SSHFS para montar diretórios no meu servidor como diretórios locais no meu desktop e laptop. Todas as alterações de arquivo são salvas diretamente no servidor. Ao contrário da caixa de depósito, os arquivos não são armazenados localmente nas máquinas clientes. Acho isso ótimo, porque você não precisa se preocupar com a sincronização e o controle de versões, mas não é ideal para uso off-line nem para arquivos muito grandes.

É muito direto e simples, e acho que é a melhor solução. A única coisa que eu não uso é para grandes mídias como fotos e filmes, porque todos os arquivos são acessados pela rede. Aqueles que eu sincronizo com o Rsync.

Link para a documentação do SSHFS - & gt; link

    
por Sam Swift 31.01.2011 / 20:25