¿Cómo hacer mi propio servidor Dropbox / Ubuntu One en casa?

70

¿Alguien sabe de algún recurso que pueda mostrarme cómo hacer mi propio servidor "Dropbox, Ubuntu One" en casa?

Me gusta mucho la idea de estos servicios, pero no quiero poner mis 'cosas' en las nubes. Idealmente, debería tener un cliente que se ejecute en Linux y Windows.

Intenté configurar iFolder en mi Ubuntu 10.04, pero sin éxito hasta el momento.

    
pregunta user1978 05.09.2010 - 19:08

13 respuestas

41

Actualmente no hay una gran alternativa de código abierto que funcione de la caja. Lo mejor a tener en cuenta es el proyecto sparkleshare: enlace

Esperemos que se convierta en una gran alternativa, hágalo usted mismo.

    
respondido por el Rick 05.09.2010 - 19:13
44

En realidad, hay muchos de ellos.

  • SparkleShare (deps: git / subversion, mono, python) en github Software de sincronización basado en GUI.

    a. Versiones: a través de un sistema de control de fuente, por lo tanto, está basado en mutex en un servidor central a través de un número de versión.

    b. Estado: en desarrollo

    c. Pros: OSS, mono-basado tan fácilmente moddable, Contras: proceso de nivel de usuario, dependiente del GC, protocolo de intercambio ineficaz por órdenes de magnitud, ya que git es principalmente para archivos de texto pequeños, bastante difícil de compilar (lo intenté). Usar herramientas de alto nivel.

  • lipsync (deps: Unison, rsync) Software basado en el servicio de línea de comandos.

    a. Versiones: a través del algoritmo delta rsync . Supongo que el programador debe elegir la resolución de conflictos.

    b. Estado: no puedo encontrar su código fuente, así que no tengo idea. Las únicas cosas en su git repo son binarias.

    c. Pros: buena configuración, utilizando herramientas de nivel medio.

  • iFolder - Dropbox de Novell. No he estudiado su fuente todavía. Solo quiero terminar esta edición y, si las personas están interesadas, agregaré más.

    a. Versiones:

    b. Estado: problemático incluso compilando en Ubuntu, y mucho menos paquetes. Aquí hay una guía de instalación detallada .

    c. Pros: Cliente Windows X64, maduro, integración AD con ACL, características que ningún otro proyecto ha comenzado a implementar. Creo que este podría ser un buen punto de partida. Contras: Novell podría no usar su repositorio de svn público como el repositorio primario y solo hacer cambios de código. Aunque no sé exactamente sobre esto. Podría estar demasiado acoplado a openSUSE para instalarlo fácilmente en Ubuntu. Para ver sus algoritmos.

  • scp / rcp: obsoleto a favor de rsync

  • DRDB : bloquea las herramientas de duplicación de dispositivos para RAID-1 distribuido, es decir, una variante de servidor de Dropbox. Todavía no he comprobado su código fuente, pero solo es Linux. El algoritmo real probablemente sería fácil de combinar con el código fuente en mis reflexiones debajo de este listado de software.

    a. Versiones: formato de mensaje interno en LAN / WAN

    b. Estado: parece lo suficientemente maduro

    c. Pros: lo suficientemente estable para Linux, Contras: no se admiten otros sistemas operativos

En este momento estoy investigando la mejora de tiempos de compilación en un Windows 7 virtualizado, donde los tiempos de compilación en Windows 7 en metal son 40 s, pero virtualizados aproximadamente 3 m 20 s. Estoy pensando en escribir un controlador ioctl que sea un caché de escritura simultánea que se parece a un disco RAM para las carpetas seleccionadas en NTFS.

Utilizando el software anterior, creo que una semana de desarrollo de 2-3 personas a tiempo completo produciría un Alfa utilizable que no pierde archivos al combinar los programas anteriores.

En mi sistema, entonces, la idea general sería;

  1. Montar un disco virtual \? {GUID}, que es el ram-disk y el RW-cache. El software que crea este disco virtual toma dos parámetros de entrada (que son vitales):

    a. La carpeta de destino; esta es la carpeta SMB, por lo que dejaré que la pila de red del sistema operativo maneje el IO real. En mi caso, esta es a su vez la carpeta virtual VMWare, que tiene un objetivo en una unidad ext4, pero podría ser fácilmente su servidor de archivos usando SAMBA / SMB.

    b. La ruta de la carpeta que se va a montar, p. C: \ ramdisk

    Este código para crear volúmenes virtuales debe tomarse del código de TrueCrypt , en /Driver/DriverFilter.c (entre otros archivos)

  2. El disco usa SMB / el protocolo VMWare / de red para buscar datos cuando se inicia; se recupera con una prioridad de tarea baja, asincrónicamente desde la red y llena su caché. Podría usar un algoritmo de compactación simple y tener 1 hilo que use el paso de continuación del tipo de cuadro de mensaje para obtener un gran rendimiento. En Windows podría usar las llamadas IO asincrónicas normales, y en Linux podría usar epoll / inotify implementación y tomar el código de nginx .

  3. Mi servicio que es el ram-disk monta la unidad de disco RAM sin nombre como una carpeta NTFS. Todos los programas pueden continuar escribiendo en C: \ ramdisk, o como yo lo llame.

  4. Copia asincrónica de la red aún en curso. Con una tasa de lectura de aproximadamente 100 MiB / sy 2 GiB ramdisk, serían 20.5 s para leer todos los datos.

Cada llamada a leer llevaría a cabo un cálculo dentro de la CPU del índice en una matriz de tamaño fijo GiB max. Sin embargo, requeriría resolver conflictos o bloqueos de lectura / escritura.Si implementamos un algoritmo de resolución de conflictos como los disponibles a través de Microsoft Sync, podríamos pasar cada fragmento que entra en conflicto como un mensaje a otro proceso de resolución de conflictos. Dropbox lo resuelve creando un nuevo archivo y nombrándolo "Copia Conflicto del nombre de usuario de PrevFileName (yyyy-MM-dd) .ext". Tal vez esto podría ser alterado a través de un pequeño widget, si uno está compilando contra esa única fuente: el widget detectaría cambios sobresalientes como mensajes / eventos y elegiría el protocolo de resolución de conflictos. Como tal, al programar en una carpeta en modo exclusivo, Windows VM podría establecer el widget en 'exclusivo'.

Esto tendría estos PROs

  • Sería no bloqueante / asincrónico
  • Sería la suposición pero no requeriría que una computadora escriba principalmente en los archivos.
  • Funcionaría para archivos arbitrariamente grandes
  • Funcionaría en * nix y Windows enlazando los proyectos mencionados.
  • Funciona cuando se necesita un alto rendimiento de lectura (es decir, los archivos se encuentran físicamente en el disco)
  • Cuando se alcanzan los eventos en conflicto, uno podría proporcionar una aplicación de interfaz de usuario que le permita al usuario escribir / descargar complementos que actúan de manera sensata para diferentes tipos de eventos, es decir, diferentes tipos de archivos. P.ej. un archivo de texto podría aparecer con Kompare / WinDiff, mientras que un archivo binario sería duplicado y guardado como otro archivo.
respondido por el Henrik 31.01.2011 - 20:22
18

OwnCloud ! suena como algo que estás buscando.

    
respondido por el Dinesh 22.10.2011 - 11:18
5

escuché sobre Syncany en Ubuntu UK Podcast , actualmente en versión beta pero parece que cumple con los requisitos

    
respondido por el deveneyi 24.06.2011 - 18:57
3

No creo que esto sea exactamente lo que está buscando, pero depende del uso previsto.

CrashPlan es un paquete de software de respaldo y un servicio de respaldo de respaldo en línea relacionado, pero lo que es diferente es que su software tiene un modo que le permite hacer copias de seguridad de sus datos a través de Internet (o LAN) a otra PC que ejecuta el software.

Esto significa que el destino no tiene que estar en la nube. No es exactamente como Dropbox porque se trata más de hacer copias de seguridad en lugar de sincronizar y acceder a archivos desde cualquier lugar, pero si solo se trata de copias de seguridad que deseas, entonces funciona bien. Si desea acceder a los archivos respaldados desde la otra PC, creo que puede hacer una "restauración local", pero no es algo que haya intentado.

El paquete de software básico es gratuito y admite el modo "hacer copia de seguridad en otra computadora", pero solo tiene una copia de seguridad programada, pero hay una versión "pro" del software que también cuesta y sincroniza en tiempo real en lugar de las copias de seguridad programadas . (El almacenamiento en la nube también es un pago opcional por mes adicional)

    
respondido por el Simon P Stevens 05.09.2010 - 20:12
3

Uso Unison para el cliente y rsnapshot (rsync con script Perl) para hacer una copia de seguridad del servidor.

    
respondido por el bassgey 21.10.2010 - 14:20
2

Vea si esto ayuda:

enlace

    
respondido por el guest442 05.09.2010 - 22:21
2

Si desea configurar dos (o más) máquinas con una carpeta replicada, eche un vistazo a glusterfs.

Es fácil de configurar si sigues la Guía del usuario de GlusterFS .

    
respondido por el Richard Holloway 07.09.2010 - 00:34
2

Nadie mencionó sincronización bitorrent ? Funciona con cualquier cosa: Ubuntu, Windows, muchos sistemas operativos comunes para teléfonos inteligentes, raspberry pi ... lo que sea, probablemente funcione, y como usuario habitual. Transferencias encriptadas, los archivos no se almacenan en la nube (aunque creo que Bittorrent ejecuta el rastreador), razonablemente rápido, puede compartir carpetas de forma selectiva, y casi sin complicaciones, solo tiene que copiar y pegar una clave a la otra sistema.

Una vez que está configurado, simplemente funciona.

    
respondido por el Journeyman Geek 08.02.2014 - 05:33
1

Estoy pendiente de AeroFS . Parece que podría ser un servicio parecido a Dropbox donde el almacenamiento en la nube es opcional. No sé si / cuándo implementarán soporte para dispositivos móviles y supongo que eso también requerirá que sincronice esos archivos con la nube. Estoy interesado principalmente en una solución de sincronización bastante sencilla entre computadoras con Windows, Mac y Linux.

Están en la versión beta inicial, pero puede registrarse para una invitación si lo desea.

    
respondido por el dempa 28.01.2012 - 12:01
1

Utilizo apache con mod_dav (webdav) para un servidor web apache, puedo montarlo como unidad y subir / descargar archivos a través de la web. Esto es bastante simple, pero podría cubrir sus necesidades.

    
respondido por el JurjenB 21.02.2012 - 20:35
1

Si bien hay alternativas interesantes enumeradas aquí y esta es una pregunta anterior, estoy convencido de que este tema claramente no está desactualizado y, por el contrario, está ganando cada vez más importancia debido a los últimos eventos de privacidad.

Por lo tanto, quiero compartir mi propia experiencia. Mi solución actual para un entorno de cloud hospedado propio es Seafile .

Funciones de Seafile:

  • Acceso a la nube basado en la web
  • Clientes para Linux, Windows, Mac, iOS (no gratuito), Android
  • Administración de usuarios / grupos
  • Organización de archivos a través de diferentes bibliotecas
  • Sincronización automática de archivos a través del software del cliente
  • Posibilidad de publicar archivos mediante la creación de enlaces públicos

Mi experiencia Seafile:

  • ¡La instalación fue fácil y rápida! (en un slim debian vm, con archivos almacenados a través de compartir en el host físico dmraid 5)
  • Interfaz de usuario limpia y funcional
  • Software de cliente limpio y funcional
  • Hubo ningún problema funcional para mí, ¡hasta ahora! (usando esto desde hace algunas semanas)
  • El conjunto de funciones es básico (en comparación con owncloud e. g.), pero enfatizo que todo funciona aquí.
  • Sin soporte de proxy directo (al menos para el cliente de Linux - ¡y la interfaz web!). Nota: la interfaz web funciona, pero la descarga de archivos a través de la interfaz web no funciona detrás de un proxy, no sé si esto es posible de alguna manera

Como no necesito soporte de proxy, ¡estoy realmente satisfecho con Seafile!

    
respondido por el Nicolas 29.07.2014 - 10:35
0

Uso SSHFS para montar directorios en mi servidor como directorios locales en mi computadora de escritorio y portátil. Todos los cambios de archivos se guardan directamente en el servidor. Sin embargo, a diferencia de Dropbox, los archivos no se almacenan localmente en las máquinas de sus clientes. Creo que esto es genial porque no tienes que preocuparte por la sincronización y el control de versiones, pero no es ideal para usar sin conexión o archivos muy grandes.

Es muy directo y simple, y creo que es la mejor solución. Lo único que no uso es un medio grande como imágenes y películas porque se accede a todos los archivos a través de la red. Aquellos que sincronizo con Rsync.

Enlace a la documentación de SSHFS - & gt; enlace

    
respondido por el Sam Swift 31.01.2011 - 20:25

Lea otras preguntas en las etiquetas