Savoir créer son propre serveur Cloud grâce au Raspberry Pi et au logiciel Seafile.
Le Cloud est de partout, pleins de fournisseurs entre dans cette niche vous proposant ce service. Certains sont gratuit, d’autres inclus dans un abonnement mobile et d’autre sont des services professionnels à abonnement (annuel ou mensuel). Ce service pose 3 problèmes : la taille de l’espace de stockage (25 Gb maxi pour une version gratuite), la disponibilité du service (souvent en maintenance, risque de fermeture, …) et surtout la propriété des fichiers déposées. Grâce à ce tutoriel vous créer votre propre service Cloud. L’espace est celui du disque dur que vous allez branché, la disponibilité sera gérée par vous et surtout vos données sont chez vous !
Etape 1 : Préparation de l’OS Raspbian
Sur le site : https://www.raspberrypi.org/ , allez dans la section : Donwloads, cliquez sur Raspbian puis dans la page sélectionnez le « Download ZIP » du Raspbian Wheezy.
Téléchargez aussi Win32DiskImager (http://sourceforge.net/projects/win32diskimager/) et installez-le.
Téléchargez aussi Putty pour pouvoir communiquer en SSH avec le Raspberry. (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)
Décompressez Raspbian.
Avec Win32DiskImager, sélectionnez (dossier bleu) et écrivez (bouton Write) l’image de Raspbian sur la carte microSD. (ATTENTION à la lettre du lecteur car cela risque d’endommager les données d’autres périphériques).
Etape 2 : Installation de l’OS Raspbian
Ouvrez Putty.exe et connectez-vous au Raspberry.
Au login, l’utilisateur est « Pi » et le mot de passe est « raspberry ».
Lancez le configurateur Raspi-config : sudo raspi-config
Dans l’option 4 « Internationalisation Options », sélectionnez l’option 1 « Change Locale ».
Désélectionnez en_GB.UTF-8 UTF-8 et sélectionnez fr_FR.UTF-8 UTF-8. Puis avec la touche TAB faites « OK » puis sélectionnez fr_FR.UTF-8. Faites « Finish » pour fermer le Raspi-config.
Modifiez le mot de passe de « root » avec la commande « sudo passwd root ».
Tapez votre mot de passe (exemple : toto) et confirmez-le.
Redémarrez le RPi avec la commande « sudo reboot –n ».
Restartez Putty avec la même connexion.
Au login entrez : root et votre mot de passe (toto).
Entrez dans l’inittab avec : nano /etc/inittab
Mettre « # » à la ligne : 1:2345:respawn:/sbin/getty –noclear 38400 tty1
Et dessous mettre : 1:2345:respawn:/bin/login -f root tty1 /dev/tty1 2>&1
Faire CTRL + X pour fermer et validez avec O et ENTRER.
Rebooter avec la commande : reboot –n
Restartez Putty avec la même connexion.
Au login entrez : root et votre mot de passe (toto).
Faites une mise à jour avec la commande : apt-get update && apt-get upgrade
A la demande d’autorisation « Souhaitez-vous continuer [O/n] ? » faites « O » et ENTRER.
Rebooter avec la commande : reboot –n
Restartez Putty avec la même connexion.
Au login entrez : root et votre mot de passe (toto).
Etape 3 : Installation de Seafile
On va créer un dossier intégrant tous les fichiers nécessaires à Seafile (exemple : moncloud)
Pour se faire faites la commande : mkdir moncloud
Puis on y accède avec la commande : cd moncloud
On va y télécharger la dernière version de seafile : wget https://github.com/haiwen/seafile-rpi/releases/download/v4.4.6/seafile-server_stable_4.4.6_pi.tar.gz
Puis on le décompresse : tar –xzf seafile-server_stable_4.4.6_pi.tar.gz
On va créer un dossier pour ranger l’archive : mkdir installed
Puis on va le déplacer : mv seafile-server_stable_4.4.6_pi.tar.gz installed.
On va installer les applications nécessaires pour son fonctionnement : apt-get install python2.7 libpython2.7 python-setuptools python-imaging python-ldap sqlite3
A la demande d’autorisation « Souhaitez-vous continuer [O/n] ? » faites « O » et ENTRER.
On va préparer notre disque dur. Pour le repérer, faites la commande : fdisk -l
On trouve :
Device Boot Start End Blocks Id System
/dev/sda1 * 32 125042687 62521328 7 HPFS/NTFS/exFAT
Donc notre disque est branché sur /dev/sda1
On va le formater au format NTFS (même si c’est déjà fait)
On va installer le programme avec la commande : apt-get install ntfsprogs
A la demande d’autorisation « Souhaitez-vous continuer [O/n] ? » faites « O » et ENTRER.
A la fin de l’installation, faite la commande : mkntfs /dev/sda1
Le processus est long….. très long….
Après le formatage faire un dossier ou router les données vers le disque dur : cd /root/moncloud/
Puis : mkdir seafile-data
Montage du disque dur dans le dossier : mount /dev/sda1 /root/moncloud/seafile-data
A la fin des préparations on va dans le dossier : cd /root/moncloud/seafile-server-4.4.6
Puis on lance le script d’installation de seafile avec : ./setup-seafile.sh
A la question « You are running this script as ROOT. Are you sure to continue ? » entrez « yes » puis ENTRER.
A la question « Press [ENTER] to continue » tapez ENTER.
A la question « [server name] : » tapez le nom de votre cloud (exemple : moncloud)
A la question « [This server’s ip or domain] : » tapez votre adresse IP fixe de votre connexion (exemple : 000.000.000.000).
A la question « [default: /root/moncloud/seafile-data ] » tapez ENTRER
A la question « [default: 8082 ] » tapez ENTRER
A la question « If you are OK with the configuration, press [ENTER] to continue. » tapez aussi ENTRER
A la question « Now let’s setup seahub configuration. Press [ENTER] to continue » tapez encore une fois ENTRER.
On va augmenter le nombre de fichiers de description de Linux : ulimit -n 30000
On lance le gestionnaire Seafile : ./seafile.sh start
Puis mon lance le gestionnaire Seahub : ./seahub.sh start
A la question : « [ admin email ] » tapez votre adresse e-mail : toto@toto.fr
A la question : « [ admin password ] » tapez votre mot de passe : toto
A la question : « [ admin password again ] » retapez votre mot de passe.
Ça y est c’est lancé !
On va tester en local notre Cloud. Avec un explorateur Web tapez l’adresse de votre Raspberry Pi (example : http://192.168.0.19:8000/)
Si vous avez la page de login c’est gagné ! Tapez l’adresse e-mail entrée plus haut (toto@toto.fr) et votre mot de passe (toto)
« Welcome to Seafile! »
Vous avez réussi à configurer seafile !
Etape 4 : Configuration de Seafile (minimal)
On va configurer un minimum Seafile.
Configuration e-mail : nano /root/moncloud/seahub_settings.py
Ajouter sous le texte déjà en place :
EMAIL_USE_TLS = True
EMAIL_HOST = ‘smtp.gmail.com’
EMAIL_HOST_USER = ‘toto@toto.fr’
EMAIL_HOST_PASSWORD = ‘password’
EMAIL_PORT = 587
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
SERVER_EMAIL = EMAIL_HOST_USER
Si vous utilisez Gmail ce sont les bons paramètres. Sinon configurez en fonction de votre messagerie.
On va restarter le service en allant dans : cd /root/moncloud/seafile-server-4.4.6
Puis on lance un restart de seafile : ./seafile.sh restart
Puis on lance un restart de seahub : ./seahub.sh restart
On va lancer un script au démarrage pour lancer seafile automatiquement (en cas d’arret du Raspberry)
On va créer un fichier : nano /etc/init.d/xyz
On y insère :
#!/bin/bash
# Apres cette ligne les commandes seront executees systematiquement
# …
# Apres cette ligne les commandes executees en fonction du parametre passe en lig$
case “$1” in
start)
# Commandes executees avec le parametre start (celui lors du boot)
mount /dev/sda1 /root/seafile-data
/root/seafile-server-4.4.6/seafile.sh start
/root/seafile-server-4.4.6/seahub.sh start
;;
stop)
# Commandes executees avec le parametre stop (celui lors de l’arret du sy$
/root/seafile-server-4.4.6/seahub.sh stop
/root/seafile-server-4.4.6/seafile.sh stop
umount /dev/sda1
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo “Usage: $0 start|stop|restart|reload”
exit 1
esac
exit 0
Puis on change des attributions : chmod 755 /etc/init.d/xyz
Puis on teste le script : service xyz start
Puis on l’intègre au démarrage : update-rc.d xyz defaults
Pour plus de personnalisation : quota, personnalisation e-mail, etc… allez sur http://manual.seafile.com/
Sources :
http://www.seafile.com, http://www.raspberrypi.org, http://manual.seafile.com/
Bonne idée. Je vais en parler à mon mari qui saura sûrement le mettre en place !