Gonzague

Tak suka wanita gemuk ! le blog de Gonzague.

Équivalent DropBox sur son propre serveur dédié.

unibox iconDans la série fais le toi même parce que t’arrives pas à trouver ce qui te plaît ou que t’as pas bien cherché je présente le DropBox fait maison !

Ayant un serveur dédié avec 500Go d’espace disque et des fichiers que j’aimerai bien retrouver partout pareil sur mes ordinateurs (musiques, photos -> 50Go) mais qui rentre pas dans les 2Go de DropBox tout en trouvant que ça fait chier de lacher 80€ / an pour 50Go alors qu’on en a 500 qui ne demandent qu’a être remplis je me suis mis au défi de me créer mon propre DropBox basé sur Unison.

Voici un petit tutoriel de comment faire, et au final c’est relativement simple.

1) Qu’est-ce qu’on va faire ?

C’est très simple, on va se servir de notre serveur comme d’un HUB et tous nos ordinateurs vont verifier les changements sur le serveur et télécharger, envoyer, effacer les fichiers nécessaires. On pourrait faire du dossier cas par cas, mais pour faire comme DropBox et rendre les choses plus simple, on va uniquement synchroniser un seul dossier histoire de savoir où sont les choses qu’on synchronise et pour être sûr qu’on oubliera pas.

2) Les pré-requis.

  • Un serveur dédié avec un accès SSH sans mot de passe
  • Unison installé sur le serveur dédié ainsi que sur chacun des clients (Attention il faut la version ligne de commande sur les clients, pas uniquement l’interface)
  • Et c’est tout…

3) Et ensuite ?

Ensuite deux solutions, la solutions de fainéant et facile, faire un script sur chacun des clients du style

/usr/bin/unison cheminLocalDuDossierASynchro ssh://loginSsh@urlserver//cheminDelaRacineDuServeur -fastcheck true -batch -ui text -perms 0 -times -rsync

Coller un cronjob la dessus et en voiture Simone… Le transfers de fichier se fera en utilisant rsync ce qui signifie s’il y a des modifications sur les fichiers, seules les modifications seront envoyées/téléchargées. Donc on gagne en temps de synchro. C’est bien mais je trouve que ça manque de classe.

Donc on va se diriger vers la deuxième méthode qui consiste à créer un petit programme en Java dans mon cas qui va écouter le dossier sur mon ordinateur pour être au courant dès qu’un changement à lieu. Si changement, on lance la synchronisation, si une synchronisation est déjà en cours, on dis a notre programme de relancer une synchronisation à la suite de la courante pour être sûr que tout est à jour sur le serveur.

On va également faire une synchronisation à intervals réguliers (toutes les 3 minutes ici) et on est bon. On colle tout ça dans la barre de menu et on a notre propre Dropbox en quelques heures. Pour la classe on rend le tout configurable au cas où le dossier à synchroniser n’est pas le même sur chacun des ordis. Une petite icône et c’est parti

Voilà j’ai exposé le concept et fait une petite application en alpha qui fait ce qu’il faut faire sans trop de bugs. Pour l’instant ça marche sur OS X et ça devrait marcher sur Linux, Je mettrais ça en téléchargement quand ça sera vraiment prêt !

unibox preferences unibox preferences

7 commentaires pour “Équivalent DropBox sur son propre serveur dédié.”

  1. GaLaK dit :
  2. Gonzague dit :

    Syncany, bien qu’intéressant, n’est pas encore disponible, et ne sera sur OS X qu’en dernier (ce qui m’intéresse le plus et avec ce genre de projet… ça le sera dans plusieurs années) et FTPBox uniquement sur windows.

  3. GaLaK dit :

    Effectivement vu ton “cahier des charges”…

    Sinon du webdav ça répondrait pas aussi à ton besoin ?
    (genre ici http://www.ovh.com/fr/hebergement_mutualise/webdav_beta.xml )

    D’ailleurs ton logiciel gère le versioning par exemple ?

  4. ecaheti dit :

    Tu sais, Gonzague, sans toi l’internet serait moins bien !
    Je testerais ton truc quand j’aurai le temps, ça pourrait répondre à mes besoins.

  5. Gonzague dit :

    WebDav c’était un peu plus galère pour accéder aux fichiers hors ligne. Et non, pas de versionning. En plusieurs années de Dropbox j’y ai jamais eu recours donc c’était pas dans mes priorités

    Haha merci ecaheti j’ai encore quelques trucs à modifier pour que ce soit sortable.

  6. GaLaK dit :

    Ah oui, “hors ligne”, c’est du plus en plus rare mais ça arrive !

    Pour le versioning je m’en suis jamais servi à titre perso mais dans un dossier partagé pour un travail de groupe j’étais bien content de l’avoir.

    Merci pour les infos en tout cas, le jour où mon compte Dropbox sera plein (il fait 16Go, merci l’adresse “étudiante”…) je saura quoi faire !

  7. LordHenry dit :

    Sympa ce truc, je suis très intéressé par ton appli java, c’est possible de l’avoir (avec la source tant qu’à y être) ?

Laisser un commentaire

Si vous avez un compte sur WeFrag, connectez-vous pour publier un commentaire.

Vous pouvez, entre autres, utiliser les tags XHTML suivant :
<a href="" title="">...</a>,<b>...</b>,<blockquote cite="">...</blockquote>,<code>...</code>,<i>...</i>