Plan (hide)
- 1. Comment utiliser un Raspberry Pi pour faire un NAS
- 2. Le matériel nécessaire
- 3. Installation d'une version légère
- 3.1 Mise en route
- 3.2 Configuration
- 3.3 Préparation d'un stockage
- 4. Un nuage dans la mer
- 5. Utiliser
seafile
- 6. Sauvegarder sa configuration
- 7. Protéger ses données et ses échanges
- 8. Sources
![](https://litis.univ-lehavre.fr/~dolivier/PagePerso/uploads/Divers/NAS/framboises.jpg)
1. Comment utiliser un Raspberry Pi pour faire un NAS
C'est sans doute la xx millième page du web qui aborde ce sujet. Cette dernière n'a pas pour objectif de révolutionner le domaine, mais d'accompagner un atelier dans le cadre de la faironnerie ABC. Avant d'aller plus loin précisons qu'un NAS est un serveur de stockage en réseau à destination de clients hétérogènes.
2. Le matériel nécessaire
- Un raspberry Pi modèle B+ : 4 ports USB 2.0, un port Ethernet 10/100 ou mieux encore le modèle Pi 2.
- Une alimentation au format micro-USB délivrant 5V/700mA au moins. Un ancien chargeur de téléphone peut faire l'affaire. Néanmoins si vous avez le choix prenez une alimentation délivrant 2A.
- Une micro SD classe 10 8 Go. Le 10 correspond au débit minimal par seconde (Classe 10 = 1O Mb/s).
- Un boitier, je vous renvoie à l'atelier ou nous avons présenté comment l'imprimer.
- Un hub usb alimenté si vous voulez mettre un disque dur auto-alimenté ou d'autres périphériques un peu gourmands.
- Un DD usb alimenté ou auto-alimenté derrière le hub.
- Un PC sous linux ou éventuellement sous windows avec un client
ssh
. Ce qui est développé ci-dessous utilise Linux. - Un cable réseau pour votre raspberry.
- Une box.
Je n'ai pas d'action chez les revendeurs dont j'ai mis les liens, mais cela permet de fixer le budget. Les prix peuvent avoir changé.
Matériel | Prix (€) |
Raspberry Pi B+ | 32 |
Alimentation | 5 |
micro SD 8 Go | 6 |
DD (1 To) | 70 |
hub USB | 12,90 |
Total | 125,90 |
3. Installation d'une version légère
Je vous propose d'utiliser une raspbian-ua-netinst qui offre une version Raspian ayant subi un régime mais ayant les éléments essentiels pour vous connecter. Vous devez formater votre carte SD en FAT 32 pour commencer. La première chose à faire est d'identifier le device :
% lsblk -f NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 ext2 ManjaroBoot │ 31b1f744-8689-42a8-a135-d7cc856b2580 /boot └─sda2 LVM2_mem gHWyPA-Q30h-cIbo-JUKz-eyKO-SFoX-llfydB ├─ManjaroVG-ManjaroRoot │ ext4 ManjaroRoot │ 5eb340dc-b8a1-44ba-934d-99b67a6f63ee / ├─ManjaroVG-ManjaroHome │ ext4 ManjaroHome │ 220f9149-2002-46df-a206-7d6e47b8569e /home └─ManjaroVG-ManjaroSwap swap ManjaroSwap 66e814a1-e989-4ac1-b347-725e25942555 [SWAP] sdb └─sdb1 ntfs My Passport F474B7AA74B76DCC sr0 udf AB_STEP1_MONTE_IMAGEDVD 2014-10-21-07-17-13-00 mmcblk0 ├─mmcblk0p1 vfat boot 936C-7154 └─mmcblk0p2 ext4 c1398422-7a7c-4863-8a8f-45a1db26b4f2
Il s'agit de mmcblk0
. La commande dmesg
peut également faire l'affaire. Ensuite le couteau suisse pour gérer les partitions fdisk
:
% sudo fdisk /dev/mmcblk0 Bienvenue dans fdisk (util-linux 2.26.1). Les modifications resteront en mémoire jusqu'à écriture. Soyez prudent avant d'utiliser la commande d'écriture.
On demande l'affichage des partitions présentes et on les supprime s'il en existe.
Commande (m pour l'aide) : p Disque /dev/mmcblk0 : 7,4 GiB, 7969177600 octets, 15564800 secteurs Unités : secteur de 1 × 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 512 octets taille d'E/S (minimale / optimale) : 512 octets / 512 octets Type d'étiquette de disque : dos Identifiant de disque : 0x000c45c9 Périphérique Amorçage Début Fin Secteurs Taille Id Type /dev/mmcblk0p1 8192 122879 114688 56M c W95 FAT32 (LBA) /dev/mmcblk0p2 122880 15564799 15441920 7,4G 83 Linux
C'est mon cas.
Commande (m pour l'aide) : d Numéro de partition (1,2, 2 par défaut) : 1 La partition 1 a été supprimée. Commande (m pour l'aide) : d Partition 2 sélectionnée La partition 2 a été supprimée. Commande (m pour l'aide) : p Disque /dev/mmcblk0 : 7,4 GiB, 7969177600 octets, 15564800 secteurs Unités : secteur de 1 × 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 512 octets taille d'E/S (minimale / optimale) : 512 octets / 512 octets Type d'étiquette de disque : dos Identifiant de disque : 0x000c45c9
On crée une nouvelle partition primaire sur la micro SD carte.
Commande (m pour l'aide) : n Type de partition p primaire (0 primaire, 0 étendue, 4 libre) e étendue (conteneur pour partitions logiques) Sélectionnez (p par défaut) : p Numéro de partition (1-4, 1 par défaut) : 1 Premier secteur (2048-15564799, 2048 par défaut) : Dernier secteur, +secteurs ou +taille{K,M,G,T,P} (2048-15564799, 15564799 par défaut) : Une nouvelle partition 1 de type « Linux » et de taille 7,4 GiB a été créée. On modifie le type de partition. Commande (m pour l'aide) : t Partition 1 sélectionnée Type de partition (taper L pour afficher tous les types) : c Type de partition « Linux » modifié en « W95 FAT32 (LBA) ».
On écrit sur la carte SD.
Commande (m pour l'aide) : w La table de partitions a été altérée. Appel d'ioctl() pour relire la table de partitions. Synchronisation des disques.
On note le nom de la partition
% sudo fdisk /dev/mmcblk0 Commande (m pour l'aide) : p Disque /dev/mmcblk0 : 7,4 GiB, 7969177600 octets, 15564800 secteurs Unités : secteur de 1 × 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 512 octets taille d'E/S (minimale / optimale) : 512 octets / 512 octets Type d'étiquette de disque : dos Identifiant de disque : 0x000c45c9 Périphérique Amorçage Début Fin Secteurs Taille Id Type /dev/mmcblk0p1 2048 15564799 15562752 7,4G c W95 FAT32 (LBA)
Il s'agit de mmcblk0p1
. Il reste a formater.
% sudo mkfs.vfat /dev/mmcblk0p1
gparted
peu également remplir le même office.
Téléchargez la dernière release de raspbian-ua-netinst (raspbian-ua-netinst-<latest-version-number>.img.xz
) et ensuite copiez le fichier téléchargé à la racine de la carte SD.
% sudo -i # xzcat /home/damien/Téléchargements/raspbian-ua-netinst-v1.0.6.img.xz > /dev/mmcblk0
3.1 Mise en route
![](https://litis.univ-lehavre.fr/~dolivier/PagePerso/uploads/Divers/NAS/AplapoNAS.png)
Connectez votre raspberry au réseau par un cable ethernet et attendez que le système s'installe. Chez moi avec un réseau desservi par pigeon voyageur cela a pris un certain temps. Un petit nmap
vous renseignera sur l'adresse ip de votre raspberry. Si vous ne connaissez pas l'adresse de votre réseau local ifconfig
ou route
vous permettront de trouver.
# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default gateway 0.0.0.0 UG 600 0 0 wlo1 192.168.0.0 * 255.255.255.0 U 600 0 0 wlo1
ensuite
# nmap -T4 -sP 192.168.0.0/24 Starting Nmap 6.47 ( http://nmap.org ) at 2015-04-26 18:54 CEST Nmap scan report for 192.168.0.12 Host is up (0.033s latency). MAC Address: XX:YY:ZZ:KK:LL:MM (Samsung Electro Mechanics co.) Nmap scan report for 192.168.0.14 Host is up (0.0066s latency). MAC Address: XX:YY:ZZ:KK:LL:MM (Hon Hai Precision Ind. Co.) Nmap scan report for 192.168.0.16 Host is up (0.015s latency). MAC Address: XX:YY:ZZ:KK:LL:MM (HTC) Nmap scan report for 192.168.0.25 Host is up (0.0047s latency). MAC Address: A8:32:EA:FF:67:5E (Raspberry Pi Foundation) Nmap scan report for 192.168.0.254 Host is up (0.027s latency). MAC Address: XX:YY:ZZ:KK:LL:MM (Freebox SA) Nmap scan report for 192.168.0.11 Host is up. Nmap done: 256 IP addresses (6 hosts up) scanned in 3.43 seconds
À l'aide de nmap
on a scanné toutes les adresses comprises entre 192.168.0.0 et 192.168.0.255. Une fois l'adresse connue on peut vérifier les ports ouverts.
# nmap -F 192.168.0.25 Starting Nmap 6.47 ( http://nmap.org ) at 2015-06-02 21:24 CEST Nmap scan report for 192.168.0.25 Host is up (0.040s latency). All 1000 scanned ports on 192.168.0.25 are closed
Aucun port n'est encore ouvert. Il faut attendre la fin de la configuration.
Il suffira alors de se connecter par ssh
. On a l'adresse 192.168.0.25, le login root
et le mot de passe par défaut est raspbian.
# nmap 192.168.0.25 Starting Nmap 6.47 ( http://nmap.org ) at 2015-06-02 21:32 CEST Nmap scan report for 192.168.0.25 Host is up (0.035s latency). Not shown: 999 closed ports PORT STATE SERVICE 22/tcp open ssh
Le port ssh
est ouvert. On repasse en utilisateur normal ctrl D
sur la machine hote.
% ssh root@192.168.0.25 root@192.168.0.25's password: Linux pi 3.18.0-trunk-rpi #1 PREEMPT Debian 3.18.5-1~exp1+rpi16 (2015-03-28) armv6l The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Sun Apr 26 20:00:20 2015 from 192.168.0.11
3.2 Configuration
Vous êtes maintenant sur le raspberry. Modifiez le mot de passe :
# passwd
Ne l'oubliez pas comme moi .....
Configurez l'encodage et le fuseau horaire (fr_FR.UTF-8
, Paris).
# dpkg-reconfigure locales # dpkg-reconfigure tzdata
Pour améliorer la gestion mémoire :
# apt-get install raspi-copies-and-fills
Créez un fichier de swap
# dd if=/dev/zero of=/swap bs=1M count=512 && mkswap /swap
On l'ajoute à la table des partitions
# echo "/swap none swap sw 0 0" > /etc/fstab
C'est une bonne idée de créer un utilisateur pi
par exemple.
# adduser pi
Ajoutez votre utilisateur pi
aux groupes audio,sudo,ssh,video
# usermod -aG audio,sudo,ssh,video pi
On installe un éditeur texte nano
et sudo
, cela peut servir.
# apt-get update && apt-get install nano sudo
On redémarre
# reboot
3.3 Préparation d'un stockage
Les performances du raspberry sont ce qu'elles sont .... et le format reconnu par windows NTFS
et souvent par défaut sur les disques USB externes. Cela consomme du CPU pour les lectures/écritures c'est pourquoi il faut lui préférer du ext3
ou ext4
.
Connectez vous sur votre raspberry avec le compte pi
.
% ssh pi@192.168.0.25
On insère la clef ou on branche le DD et on repére le device avec la commande dmesg
.
% dmesg [ 3202.771558] usb-storage 1-1.2:1.0: USB Mass Storage device detected [ 3202.795547] scsi host6: usb-storage 1-1.2:1.0 [ 3203.808663] scsi 6:0:0:0: Direct-Access USB 2.0 Flash Disk 5.00 PQ: 0 ANSI: 2 [ 3203.832854] sd 6:0:0:0: Attached scsi generic sg0 type 0 [ 3203.845583] sd 6:0:0:0: [sda] 4096000 512-byte logical blocks: (2.09 GB/1.95 GiB) [ 3203.868905] sd 6:0:0:0: [sda] Write Protect is off [ 3203.891459] sd 6:0:0:0: [sda] Mode Sense: 0b 00 00 08 [ 3203.892146] sd 6:0:0:0: [sda] No Caching mode page found [ 3203.919455] sd 6:0:0:0: [sda] Assuming drive cache: write through [ 3203.938575] sda: unknown partition table [ 3203.955486] sd 6:0:0:0: [sda] Attached SCSI removable disk
On supprime les partitions existantes si nécessaire. Je vous renvoie a ce qui a été fait précédemment avec la carte SD.
% sudo fdisk /dev/sda Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): Using default value 1 First sector (2048-4095999, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-4095999, default 4095999): Using default value 4095999 Command (m for help): p Disk /dev/sda: 2097 MB, 2097152000 bytes 65 heads, 62 sectors/track, 1016 cylinders, total 4096000 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x062828d0 Device Boot Start End Blocks Id System /dev/sda1 2048 4095999 2046976 83 Linux Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks.
On le formate en ext4
ensuite :
% sudo mkfs.ext4 /dev/sda1 -L cloud
Enlevez et remettez la clé ou le disque. On va ensuite monter le support. Pour cela on crée un répertoire dans media
.
% sudo mkdir /media/ddnuage
Vous pouvez tester manuellement si cela fonctionne :
% sudo mount -t ext4 /dev/sda1 /media/ddnuage
Modifier le propriétaire
% sudo chown pi.pi /media/ddnuage
Pour le démonter
% sudo umount /media/ddnuage
Dans ce cas il est plus intéressant d'avoir un montage permanent, on va donc l'ajouter dans la fstab
. On va utiliser l'UUID
de façon a être certain que c'est le bon périphérique de stockage.
% sudo blkid /dev/mmcblk0p1: SEC_TYPE="msdos" UUID="CD04-2948" TYPE="vfat" /dev/mmcblk0p2: UUID="ae33a032-bba7-4c24-b437-d62ef5f8fc21" TYPE="ext4" /dev/sdb1: LABEL="Iomega HDD" UUID="D27431CF7431B6D7" TYPE="ntfs" /dev/sda1: LABEL="cloud" UUID="954ef6f5-1f24-4c4d-87ff-9594e3f9aeec" TYPE="ext4"
On ajoute alors la ligne suivante dans /etc/fstab
% sudo nano /etc/fstab
Sous l'éditeur nano
vous ajoutez à la fin
# Le disque servant de stockage au cloud UUID=954ef6f5-1f24-4c4d-87ff-9594e3f9aeec /media/ddnuage ext4 defaults 0 0
Vous pouvez tester le montage maintenant.
% sudo mount /media/ddnuage % sudo umount /media/ddnuage
Il n'est plus nécessaire de préciser le device et le support de stockage sera monté automatiquement à chaque redémarrage. Avant de passer à l'étape suivante cela peut être utile.
% sudo reboot
4. Un nuage dans la mer
On va maintenant installer seafile une alternative à Dropbox
ou google drive
avec un contrôle sur vos fichiers. Il existe bien sur owncloud mais cette solution est plus lourde et les clients parfois payant.
On commence par se connecter sur le raspberry avec le compte créé.
% ssh pi@192.168.0.25
A tout hasard mettez à jour
% sudo apt-get update && apt-get upgrade -y
On installe quelques paquets utiles avec les dépendances.
% sudo apt-get install python-setuptools python-imaging sqlite3
On crée un répertoire ad hoc.
% mkdir monnuage; cd monnuage
Il faut ensuite télécharger la version serveur de seafile pour raspberry.
% wget https://github.com/haiwen/seafile-rpi/releases/download/v4.1.2/seafile-server_4.1.2_pi.tar.gz
Pensez à adapter le numéro de version si nécessaire.
% mkdir installation % tar zxvf seafile-server_4.1.2_pi.tar.gz % mv seafile-server* installation/
4.1 Configuration
Avant d'aller plus loin vous pouvez jeter un œil sur la documentation cela peut être utile. Il peut être utile de fixer l'adresse ip de votre raspberry la gestion des baux permanents dhcp sur la box permet en général cela. Notez l'adresse choisie. Pour commencer il suffit de lancer le script de configuration et de suivre les informations.
% cd ~/installation/seafile-server-4.1.2/ % ./setup-seafile.sh This is your config information: server name: neptune server ip/domain: 192.168.0.25 server port: 10001 seafile data dir: /media/ddnuage/seafile-data seafile port: 12001 fileserver port: 8082
Vous lancez ensuite le serveur Seafile pour la gestion des fichiers
% ./seafile.sh start
Et ensuite le point d'accès.qui permettra les connexions.
./seahub.sh start
Vous devez alors créer un compte administrateur. Il ne reste plus qu'à vous connecter http://192.168.0.25:8000
![](https://litis.univ-lehavre.fr/~dolivier/PagePerso/uploads/Divers/NAS/seafile.png)
4.2 Démarrer seafile
comme un service
Ce qui suit est présenté presque totalement dans le manuel. La première chose à faire est de créer un fichier /etc/init.d/seafile-server
- #!/bin/sh
- ### BEGIN INIT INFO
- # Provides: seafile-server
- # Required-Start: $local_fs $remote_fs $network
- # Required-Stop: $local_fs
- # Default-Start: 2 3 4 5
- # Default-Stop: 0 1 6
- # Short-Description: Starts Seafile Server
- # Description: Starts Seafile Server
- ### END INIT INFO
- # Change the value of "user" to your linux user name
- # Si vous avez choisi un autre nom d'utilisateur il faut changer
- user=pi
- # Change the value of "script_path" to your path of seafile installation
- # usually the home directory of $user
- # Si vous n'avez pas la même arborescence pensez à changer
- seafile_dir=/home/pi/monnuage/installation
- script_path=${seafile_dir}/seafile-server-latest
- seafile_init_log=${seafile_dir}/logs/seafile.init.log
- seahub_init_log=${seafile_dir}/logs/seahub.init.log
- # Change the value of fastcgi to true if fastcgi is to be used
- fastcgi=false
- # Set the port of fastcgi, default is 8000. Change it if you need different.
- fastcgi_port=8000
- #
- # Write a polite log message with date and time
- #
- echo -e "\n \n About to perform $1 for seafile at `date -Iseconds` \n " >> ${seafile_init_log}
- echo -e "\n \n About to perform $1 for seahub at `date -Iseconds` \n " >> ${seahub_init_log}
- case "$1" in
- start)
- sudo -u ${user} ${script_path}/seafile.sh ${1} >> ${seafile_init_log}
- if [ $fastcgi = true ];
- then
- sudo -u ${user} ${script_path}/seahub.sh ${1}-fastcgi ${fastcgi_port} >> ${seahub_init_log}
- else
- sudo -u ${user} ${script_path}/seahub.sh ${1} >> ${seahub_init_log}
- fi
- ;;
- restart)
- sudo -u ${user} ${script_path}/seafile.sh ${1} >> ${seafile_init_log}
- if [ $fastcgi = true ];
- then
- sudo -u ${user} ${script_path}/seahub.sh ${1}-fastcgi ${fastcgi_port} >> ${seahub_init_log}
- else
- sudo -u ${user} ${script_path}/seahub.sh ${1} >> ${seahub_init_log}
- fi
- ;;
- stop)
- sudo -u ${user} ${script_path}/seahub.sh ${1} >> ${seahub_init_log}
- sudo -u ${user} ${script_path}/seafile.sh ${1} >> ${seafile_init_log}
- ;;
- *)
- echo "Usage: /etc/init.d/seafile-server {start|stop|restart}"
- exit 1
- ;;
- esac
Vous pouvez récupérer le fichier sur votre pc connecté en ssh
à votre raspberry et ensuite le transférer.
% scp seafile-server pi@192.168.0.25:
Ensuite à partir du raspberry
% cd % sudo mv seafile-server /etc/init.d/
Vérifier que le répertoire pour les fichiers de log existe sinon il suffit de le créer.
% ls /home/pi/monnuage/installation/logs
ou
% mkdir /home/pi/monnuage/installation/logs
Rendre le fichier seafile-server
executable
% sudo chmod +x /etc/init.d/seafile-server
Ajouter seafile-server
to rc.d
% sudo update-rc.d seafile-server defaults
C'est l'heure de vérité.
% sudo reboot
et il reste à tester.
Arreter demarrer le serveur seafile
% sudo /etc/init.d/seafile-server stop % sudo /etc/init.d/seafile-server start
Ces commandes pourront être utilisée à chaque fois que vous faites une modification.
4.3 Pour aller plus loin
Il s'agit d'amélioration qui permette d'envoyer des mails, de rendre visible le NAS hors du réseau local, si cela ne vous concerne pas vous pouvez passer.
Rendre visible le NAS avec une ip fixe
Si vous avez une ip fixe (dégroupé ou abonnement spécifique), il est possible de rendre visible à l'extérieur de votre réseau le NAS. Il faut alors faire de la redirection de port, c'est généralement possible avec votre box.
![](https://litis.univ-lehavre.fr/~dolivier/PagePerso/uploads/Divers/NAS/redirection.png)
Il faut maintenant modifier votre fichier de configuration ccnet.conf
.
% cd % cd monnuage/installation/ccnet % sudo nano ccnet.conf
Mettre l'adresse fixe ip à la place des XY.....
SERVICE_URL = http://XYZ.LMN.0PQ.RST:8000
Il est possible de faire mieux encore lorsque vous avez une adresse fixe en utilisant un nom de domaine dont vous êtes propriétaire enfin je devrai dire locataire. Mon fournisseur d'accès permet(free
) cela. J'ai la possibilite de lien une adresse symbolique du type [mamachine].hd.free.fr
à l'adresse ip. Les redirections mises en place joueront alors leur rôle pour atteindre les bonnes machines et les bons services de votre réseau local.
% ping oudanedesk.hd.free.fr
Plutôt qu'utiliser l'adresse ip vous pouvez maintenant utiliser oudanedesk.hd.free.fr:8000
.
Rendre visible le NAS sans une ip fixe
La procédure décrite ici est sans garantie, comme les autres, mais en plus elle n'a pas été testée sérieusement ! Il existe différents services gratuits pour résoudre une adresse ip changeante. NoIp est considéré comme la référence, mais le renouvellement d'abonnement semble pénible. FreeDNS me semble être une alternative intéressante, cela offre le service de base gratuit.
Inscription et création du domaine
Inscrivez vous sur le site FreeDNS. Vous allez recevoir un courriel pour confirmer votre demande et activer votre compte. Il faut ensuite créer le sous-domaine.
![](https://litis.univ-lehavre.fr/~dolivier/PagePerso/uploads/Divers/NAS/FreeDNS.png)
- Type : choisir le type de service, sélectionnez A ;
- Subdomain : le nom de votre sous-domaine sous-que vous souhaitez ;
- Domaine : choisir votre domaine dans les propositions gratuites ;
- Destination : correspond à l'ip de la box avec laquelle vous travaillez (ne modifier que si vous travaillez avec une ip différente de celle que vous comptez utiliser) ;
- TTL et wildcard sont des options payantes.
Il vous reste à valider et ensuite rendez-vous sur la page de Dynamic DNS. Sur la page correspondante cliquez sur direct url
. Noter dans la barre l'url correspondante. Cela ressemble à :
http://freedns.afraid.org/dynamic/update.php?RVJQVlRjdGdHJJJpshjhsjkzOjE0NTQ3Nzc0
Ce qui est utile c'est RVJQVlRjdGdHJJJpshjhsjkzOjE0NTQ3Nzc0
Sur votre raspberry il faut installer inadyn. Il existe un package que l'on peut utiliser.
% sudo apt-get install inadyn
Ensuite on configure inadyn
% sudo nano /etc/inadyn.conf --username <your_username> --password <your_password> --update_period 60000 --forced_update_period 320000 --alias oudanedesk.mooo.com,RVJQVlRjdGdHJJJpshjhsjkzOjE0NTQ3Nzc0 --background --dyndns_system default@freedns.afraid.org --syslog
On va maintenant automatiser le démarrage. Pour cela il va falloir écrire un petit script mais avant on récupère killall
.
% sudo apt-get install psmisc % sudo nano /etc/init.d/inadyn
# /etc/init.d/inadyn
### BEGIN INIT INFO
# Provides: inadyn
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
### END INIT INFO
# Si vous souhaitez qu'une commande fonctionne en permanence
# ajoutez la sous cette ligne
# Execution d'un certain nombre de fonctions specifiques
# a la demande du système
case "$1" in
start)
echo "Starting inadyn"
/usr/sbin/inadyn
;;
stop)
echo "Stop inadyn"
killall inadyn
;;
*)
echo "Usage : /etc/init.d/inadyn {start|stop}"
exit 1
;;
esac
exit 0
Il faut rendre le script exécutable
% sudo chmod 755 /etc/init.d/inadyn
Le mettre dans la liste des programme à lancer au démarrage.
% sudo update-rc.d inadyn defaults
Si un jour vous souhaitez le supprimer
% sudo update-rc.d -f inadyn remove
Après un reboot vous pouvez vérifier que cela fonctionne en allant à l'url oudanedesk.mooo.com:8000
% sudo reboot
Sur votre raspberry vous pouvez vérifier que cela fonctionne
% ps -A | grep inadyn
et consulter le fichier de log
% sudo less /var/log/messages | grep INADYN
Gérer les mails de seafile
La première chose peut être de créer un compte gmail spécifique. Supposons que cela soit nuagesur.oudane@gmail.com
nous allons modifier seahub_settings.py
. Une fois connecté sur votre compte pi
% cd monnuage/installation % sudo nano seahub_settings.py
Ajoutez les lignes suivantes :
EMAIL_USE_TLS = True EMAIL_HOST = 'smtp.gmail.com' EMAIL_HOST_USER = 'nuage.suroudane@gmail.com ' EMAIL_HOST_PASSWORD = 'password' EMAIL_PORT = 587 DEFAULT_FROM_EMAIL = EMAIL_HOST_USER SERVER_EMAIL = EMAIL_HOST_USER
5. Utiliser seafile
Dans cette partie je vous propose de voir comment ajouter un utilisateur et également comment utiliser un client de synchronisation. On considère dans ce qui suit que vous utilisez votre NAS aussi à l'intérieur du réseau local qu'à l'extérieur, nous allons donc utiliser l'adresse http:oudanedesk.mooo.com:8000 . Si vous vous contentez de l'utilisez dans le réseau local il suffit d'utiliser l'adresse ip fixée pour votre raspberry 192.168.0.25 par exemple.
5.1 Ajouter un utilisateur
Lors de l'installation vous avez défini un administrateur et son mot de passe il faut alors se connecter sur votre NAS avec ce compte et cliquer sur l’icône (clef) administration en haut à droite.
![](https://litis.univ-lehavre.fr/~dolivier/PagePerso/uploads/Divers/NAS/administration.png)
Vous pouvez alors ajouter un utilisateur vous avez les informations nécessaires qui s'affiche au niveau de l'interface.
5.2 Client de synchronisation
Rendez-vous sur la page de téléchargement des clients et téléchargez celui qui correspond à votre système d'exploitation et votre distribution éventuelle. Sur ma distribution le client est présent dans le dépôt AUR.
% yaourt seafile-client
Si vous êtes sous ubuntu ou debian ou dérivé. En vous positionnant dans le repértoire où vous avez téléchargé votre paquet seafile-XXX.deb
% sudo dpkg -i seafile-XXX.deb
Une fois votre client installé, il faut le configurer. Commencez par créer un répertoire dans votre arborescence personnelle qui va accueillir vos fichiers synchronisés entre vos différentes machines.
% mkdir ~/OudaneDesK
Ensuite lancez l'applet
% seafile-applet &
![](https://litis.univ-lehavre.fr/~dolivier/PagePerso/uploads/Divers/NAS/SeafileClientConfig.png)
![](https://litis.univ-lehavre.fr/~dolivier/PagePerso/uploads/Divers/NAS/AppletSeafile.png)
![](https://litis.univ-lehavre.fr/~dolivier/PagePerso/uploads/Divers/NAS/DossierSynchro.png)
6. Sauvegarder sa configuration
Une fois votre installation complète terminée, il est utile de sauvegarder une image de votre système. En effet les cartes SD sont parfois un peu capricieuse et il est dommage d'être obligé de recommencer une grande partie des manipulations. La commande dd
est votre amie. Si vous voulez en savoir plus vous pouvez aller voir ici.
De même il peut être utile de sauvegarder l'ensemble des fichiers stockés au niveau de seafile
, mais là je n'ai pas encore eu le temps de rédiger des explications elles viendront plus tard.
7. Protéger ses données et ses échanges
TODO
8. Sources
Des sources m'ont aidé pour rédiger cela
- Installer une mini Raspbian sur votre Raspberry Pi par réseau http://www.pihomeserver.fr/2014/09/30/raspberry-pi-home-server-installer-raspbian-reseau/
- Le manuel de seafile, très bien fait je trouve http://manual.seafile.com
- HOWTO Configure Freedns (afraid.org) service with Inadyn (Lucid) http://ubuntuforums.org/showthread.php?t=1758930
L'image pré-installée sur les raspberry lors de l'atelier.