Serveur personnel Cloud avec Seafile et Raspberry Pi

image principale Serveur personnel Cloud avec Seafile et Raspberry Pi

Difficulté:

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 !

Matériel :

Budget : Non défini

  • – 1 Raspberry Pi B+ (ou B)
  • – 1 carte microSD 8Gb (ou SD pour modèle B)
  • – 1 disque dur (avec alimentation pour ne pas surcharger le port USB)
  • – Alimentations (Raspberry, disques dur)
  • – Câble réseau

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 !

Excellent ! Merci pour l'explication. Tu connais owncloud ? Ca doit être proche.
Ahhhh ce bon vieux toto ça faisait longtemps que je ne l'avais pas vu.

Oui, je connais Owncloud, c'est quasi identique dans le principe mais Owncloud peut gérer plus de “plugins” comme un agenda, un annuaire LDAP, etc… . J'ai été pas mal refroidis car t'après des amis qu'ils l'ont déployés il était pleins de “bugs”, “lourd” et gourmand en ressources. Après une récente visite et lu quelques blogs (dont celui de François MOCQ : http://www.framboise314.fr) il me parais adapté pour un Raspberry Pi 2. Je pense qu'un jour je déploierai les deux pour tester.
Ah oui, ce bon vieux “toto”, j'ai même en réserve “tata” “tutu” “titi”… Pourtant dans mon métier je l'utilise assez souvent (ça me change de “test”, “essais”, etc…)

Merci, et si besoin d'aide, n'hésitez pas…

Bonjour Thibaut et bravo pour ce tuto ! Ma question : est-il possible d'installer PHP 5.3.xxx sur l'os ? Est-ce simple ? compliqué ? En fait j'ai mis au point un logiciel de GED qui fonctionne avec un boîtier RFID et des badges ayant différents droits. L'idéal serait de pouvoir connecter le logiciel depuis internet sur un serveur perso (comme ton tuto) seulement l'interface entre mon logiciel et le serveur est PHP sans oublier un programme linux d'indexation de PDF (XPDF). Avec mes remerciements anticipés pour ta réponse. Alexandre.

Ces tutoriels devraient vous plaire

vignette Connecter un  écran LCD en I2C
Connecter un écran LCD en I2C
vignette Construire son Bartop Arcade de A à Z
Construire son Bartop Arcade de A à Z
vignette Fabriquer une lampe à lave
Fabriquer une lampe à lave
avaatar Thibaut M.

Thibaut M.

Suivre

Vues: 6399
Mis en favoris: 4

Découvrez d'autres tutoriels de

Thibaut M.

Découvrez tous les tutoriels partagés sur Oui Are Makers

Powered by Oui Are Makers