Come creare il mio server Dropbox / Ubuntu One a casa?

70

Qualcuno sa di risorse che possono mostrarmi come creare il mio server "Dropbox, Ubuntu One" a casa?

Mi piace molto l'idea di questi servizi, ma non voglio mettere le mie "cose" tra le nuvole. Idealmente, dovrebbe avere un client che gira su Linux e Windows.

Ho provato a configurare iFolder su Ubuntu 10.04, ma senza risultati fino ad ora.

    
posta user1978 05.09.2010 - 19:08

13 risposte

41

Al momento non esiste una grande alternativa open source che funzionerà senza problemi. La cosa migliore da tenere d'occhio è il progetto sparkleshare: link

Speriamo che diventi un'alternativa, fai da te, alternativa.

    
risposta data Rick 05.09.2010 - 19:13
44

Ce ne sono in realtà molti.

  • SparkleShare (deps: git / subversion, mono, python) a github Software di sincronizzazione basato su interfaccia grafica.

    a. Controllo delle versioni: tramite un sistema di controllo del codice sorgente, quindi basato su mutex su un server centrale tramite un numero di versione.

    b. Stato: in fase di sviluppo

    c. Pro: OSS, mono-based così facilmente moddable, Contro: processo a livello utente, dipendente da GC, inefficace protocollo di condivisione di ordini di grandezza come git è principalmente per piccoli file di testo, abbastanza difficile da compilare (ho provato). Utilizzo di strumenti di alto livello.

  • lipsync (deps: Unison, rsync) Software basato su servizi a riga di comando.

    a. Controllo delle versioni: tramite rsync delta algorithm . Presumo che il programmatore debba scegliere la risoluzione dei conflitti.

    b. Stato: non riesco a trovare il suo codice sorgente, quindi non ne ho idea. Le uniche cose nel suo repository git sono i binari.

    c. Pro: bella configurazione, utilizzando strumenti di medio livello.

  • iFolder - Dropbox di Novell. Non ho ancora studiato la sua fonte. Voglio solo ottenere questa modifica e se le persone sono interessate ne aggiungerò altre.

    a. Versioning:

    b. Stato: Problematico portarlo a compilare anche su Ubuntu, per non parlare dei pacchetti. Ecco una guida all'installazione dettagliata .

    c. Pro: client Windows X64, maturo, integrazione AD con ACL, funzionalità che nessun altro progetto ha iniziato a implementare. Penso che questo potrebbe essere un buon punto di partenza. Contro: Novell potrebbe non utilizzare il repository svn pubblico come repository primario e fare solo code-drop. Non so esattamente di questo però. Potrebbe essere troppo accoppiato a openSUSE per installare facilmente su Ubuntu. Per verificare i suoi algoritmi.

  • scp / rcp - deprecato a favore di rsync

  • DRDB - blocca strumenti di mirroring del dispositivo per RAID-1 distribuito, ovvero una variante server di dropbox. Non ho ancora controllato il suo codice sorgente, ma è solo Linux. L'algoritmo attuale sarebbe probabilmente facile da combinare con il codice sorgente nelle mie riflessioni sotto questo elenco di software.

    a. Controllo delle versioni: formato dei messaggi interni su LAN / WAN

    b. Stato: sembra abbastanza maturo

    c. Pro: abbastanza stabile per Linux, Contro: non sono supportati altri sistemi operativi

In questo momento sto studiando come migliorare i tempi di compilazione su un Windows 7 virtualizzato, dove i tempi di compilazione su Windows 7 su metallo sono 40 secondi, ma virtualizzati circa 3m 20s. Sto pensando di scrivere un driver ioctl che è una cache write-through che assomiglia a un ram-disk per le cartelle selezionate su NTFS.

Usando il software di cui sopra, penso che una settimana di sviluppo a tempo pieno di 2-3 persone produrrebbe un Alpha utilizzabile che non perderà i tuoi file combinando i software di cui sopra.

Quindi sul mio sistema, l'idea generale sarebbe;

  1. Montare un'unità virtuale \? {GUID}, ovvero il ram-disk e la RW-cache. Il software che crea questo disco virtuale accetta due parametri di input (che sono fondamentali):

    a. La cartella di destinazione; questa è la cartella SMB, quindi lascerò che lo stack di rete del sistema operativo gestisca l'IO effettivo. Nel mio caso questa è a sua volta la cartella virtuale VMWare, che ha in sé una destinazione su un'unità ext4, ma potrebbe facilmente essere il tuo file server utilizzando SAMBA / SMB.

    b. Il percorso della cartella da montare, ad es. C: \ ramdisk

    Questo codice per la creazione di volumi virtuali può essere preso dal codice di TrueCrypt , in /Driver/DriverFilter.c (tra gli altri file)

  2. L'unità utilizza SMB / il protocollo VMWare / network per recuperare i dati all'avvio; recupera con una priorità bassa attività, in modo asincrono dalla rete e riempie la sua cache. Potrebbe utilizzare un semplice algoritmo di compattazione e disporre di 1 thread che utilizza la continuazione del tipo message-box per ottenere grandi prestazioni. Su Windows potrebbe utilizzare le normali chiamate IO asincrone e su linux potrebbe usare epoll / inotify implementazione e prendi il codice da nginx .

  3. Il mio servizio che è il ram-disk monta l'unità ramdisk senza nome come una cartella NTFS. Tutti i programmi possono continuare a scrivere su C: \ ramdisk, o come lo chiamo io.

  4. La copia asincrona dalla rete continua ancora. Con una velocità di lettura di circa 100 MiB / se 2 GB di ramdisk, sarebbero 20,5 secondi per leggere tutti i dati.

Ogni call to read eseguirà un calcolo della CPU dell'indice in un array di dimensione n: max GiB max fisso. Richiederebbe comunque la risoluzione dei conflitti o i blocchi di lettura-scrittura.Se implementassimo un algoritmo per la risoluzione dei conflitti come quelli disponibili tramite Microsoft Sync, potremmo passare ogni blocco che entra in conflitto come messaggio a un altro processo di risoluzione dei conflitti. Dropbox lo risolve creando un nuovo file e nominandolo "PrevFileName Copia in conflitto del nome utente (yyyy-MM-dd) .ext". Forse questo potrebbe essere modificato attraverso un piccolo widget, se si sta compilando contro quella singola fonte: il widget potrebbe rilevare le modifiche in sospeso come messaggi / eventi e scegliere il protocollo di risoluzione dei conflitti. Pertanto, quando si programma su una cartella in modalità esclusiva, la VM di Windows potrebbe impostare il widget su "esclusivo".

Questo avrebbe questi PRO

  • Sarebbe non bloccante / asincrono
  • Sarebbe un'ipotesi ma non richiederebbe che un computer scriva principalmente nei file.
  • Funzionerebbe con file di dimensioni arbitrarie
  • Funzionerebbe su * nix e Windows legando insieme i progetti menzionati.
  • Funzionerebbe quando è necessaria un'elevata capacità di lettura (ovvero i file si trovano fisicamente sul disco)
  • Quando vengono raggiunti gli eventi in conflitto, è possibile fornire un'app di interfaccia utente che consenta all'utente di scrivere / scaricare plug-in che agiscono in modo sano per diversi tipi di eventi, ad esempio diversi tipi di file. Per esempio. un file di testo potrebbe essere richiamato con Kompare / WinDiff, mentre un file binario verrebbe duplicato e salvato come un altro file.
risposta data Henrik 31.01.2011 - 20:22
18

OwnCloud ! sembra qualcosa che stai cercando.

    
risposta data Dinesh 22.10.2011 - 11:18
5

ho sentito parlare di Syncany sul Ubuntu UK Podcast , attualmente in versione beta ma sembra che soddisfi i requisiti

    
risposta data deveneyi 24.06.2011 - 18:57
3

Non penso che questo sia esattamente quello che stai cercando, ma dipende dall'uso che intendi.

CrashPlan è un pacchetto software di backup e relativo servizio di hosting di backup online, ma ciò che è diverso è che il loro software ha una modalità che ti consente per fare eseguire il backup dei dati su Internet (o LAN) su un altro PC su cui è in esecuzione il software.

Questo significa che la destinazione non deve essere nel cloud. Non è paragonabile al dropbox in quanto riguarda più il backup piuttosto che la sincronizzazione e l'accesso ai file da qualsiasi luogo, ma se si tratta solo di backup che si desidera, allora funziona bene. Se vuoi accedere ai file di backup dell'altro PC, penso che puoi fare un "ripristino locale" ma non è qualcosa che ho provato.

Il pacchetto software di base è gratuito e supporta la modalità "backup su un altro computer", ma esegue solo il backup programmato, ma esiste una versione "pro" del software che costa e sincronizza in tempo reale anziché solo i backup pianificati . (Il cloud storage è anche una paga opzionale al mese extra)

    
risposta data Simon P Stevens 05.09.2010 - 20:12
3

Uso Unison per il client e rsnapshot (rsync con script perl) per il backup del server.

    
risposta data bassgey 21.10.2010 - 14:20
2

Verifica se questo aiuta:

link

    
risposta data guest442 05.09.2010 - 22:21
2

Se vuoi impostare due (o più) macchine con una cartella replicata, dai un'occhiata a glusterfs.

È facile da configurare se segui la Guida dell'utente GlusterFS .

    
risposta data Richard Holloway 07.09.2010 - 00:34
2

Nessuna menzione sincronizzazione bitorrent ? Funziona su qualsiasi cosa - Ubuntu, Windows, molti sistemi operativi per smartphone comuni, raspberry pi .... tu lo chiami, probabilmente funziona, e come utente normale. Trasferimenti crittografati, i file non sono archiviati nel cloud (anche se penso che BitTorrent esegua il tracker per esso), ragionevolmente veloce, puoi condividere selettivamente le cartelle e quasi nessuna complicazione, devi solo copiare e incollare una chiave per l'altra sistema.

Una volta impostato, funziona.

    
risposta data Journeyman Geek 08.02.2014 - 05:33
1

Sto tenendo d'occhio AeroFS . Sembra che potrebbe essere un servizio simile a Dropbox in cui lo spazio di archiviazione nel cloud è facoltativo. Non so se / quando implementeranno il supporto mobile e suppongo che ciò richiederebbe anche la sincronizzazione dei file con il cloud. Sono principalmente interessato a una soluzione di sincronizzazione abbastanza indolore tra computer Windows, Mac e Linux.

Sono in fase di beta iniziale, ma puoi registrati per un invito, se lo desideri.

    
risposta data dempa 28.01.2012 - 12:01
1

Uso Apache con mod_dav (webdav) per un server web Apache, posso montarlo come unità e caricare / scaricare file sul web. Questo è piuttosto semplice, ma potrebbe coprire le tue esigenze.

    
risposta data JurjenB 21.02.2012 - 20:35
1

Sebbene esistano già alternative interessanti elencate qui e questa è una domanda precedente, sono convinto che questo argomento non sia chiaramente obsoleto e, al contrario, sta acquisendo sempre più importanza, a causa degli ultimi eventi di violazione della privacy.

Voglio condividere la mia esperienza quindi. La mia soluzione attuale per un ambiente cloud simile a quello ospitato è Seafile .

Funzionalità Seafile:

  • Accesso al cloud basato sul Web
  • Client per Linux, Windows, Mac, iOS (non gratuito), Android
  • Gestione utenti / gruppi
  • Organizzazione file tramite librerie diverse
  • Sincronizzazione automatica dei file tramite il software client
  • Possibilità di pubblicare file tramite la creazione di link pubblici

Esperienze su Seafile:

  • L'installazione è stata facile e veloce! (su un sottile debian vm, con i file memorizzati tramite condivisione sull'host fisico dmraid 5)
  • Interfaccia utente pulita e funzionale
  • Software client pulito e funzionale
  • Ci sono stati problemi di funzionamento no per me, fino ad ora! (usando questo da poche settimane a questa parte)
  • Il set di funzioni è di base (rispetto a owncloud e. g.), ma sottolineo che tutto funziona qui!
  • Nessun supporto proxy diretto (almeno per il client linux - e l'interfaccia web!). Nota: l'interfaccia web funziona, ma il download di file tramite interfaccia web non funziona dietro un proxy - non so se questo è possibile in qualche modo

Poiché non ho bisogno del supporto proxy, sono davvero soddisfatto di Seafile!

    
risposta data Nicolas 29.07.2014 - 10:35
0

Uso SSHFS per montare le directory sul mio server come directory locali sul mio desktop e laptop. Tutte le modifiche ai file vengono salvate direttamente sul server. A differenza di Dropbox, tuttavia, i file non vengono archiviati localmente sui computer client. Penso che questo sia ottimo perché non devi preoccuparti della sincronizzazione e del controllo delle versioni, ma non è l'ideale per l'utilizzo offline o file di grandi dimensioni.

È molto diretto e semplice e trovo che sia la soluzione migliore. L'unica cosa che non lo uso è un supporto di grandi dimensioni come foto e film perché tutti i file sono accessibili dalla rete. Quelli che sincronizzo con Rsync.

Link alla documentazione SSHFS - & gt; link

    
risposta data Sam Swift 31.01.2011 - 20:25

Leggi altre domande sui tag