vendredi 4 février 2011

Créer son propre serveur WEB, fichier et streaming pour pas cher à partir de EEEpc

Ca faisait longtemps que je n'avais rien publié sur ce blog, mais là j'ai trouvé que c'était tellement pratique que j'ai souhaité le partager.

Ca faisait longtemps que je me disais qu'il me faudrait un serveur à la maison, qui me permettrait:
  • De faire des sauvegardes régulières de mes fichiers importants
  • Qui me permettrait d'accéder à mes films et musique sans fil
  • Qui servirait de serveur de fichier permettant un partage facile entre mes divers PC et mon smartphone Android
  • De faire tourner un petit serveur web, permettant de travailler à plusieurs sur une forge logicielle comme Indefero par exemple.
Alors avant de revendre mon EEE pc 701 sur ebay pour 100€ je me suis dit qu'il serait parfait dans ce genre d'utilisation.

En effet:
  • Il est assez puissant pour faire tout ça sans broncher,
  • Il consomme très peu (22W a plein régime mais surement beaucoup moins en utilisation normale). C'est important car il est destiné à rester en marche 24h/24 et 7j/7!
  • Il possède un batterie, ce qui évite d'avoir recours à un onduleur en cas de coupure de courant (même si l'autonomie est moindre, ca permet d'éviter des reboot lors de petites coupures de courant).
  • Les serveur NAS ne font que du stockage de fichier (même si je pense qu'ils le font mieux car il gèrent le RAID) et ne sont vraiment pas donnés.
Donc venons-en à la mise en pratique:

Tout d'abord choisir un systeme d'exploitation (libre forcément):
  • J'ai testé Freenas, c'est bien, ca marche fort et c'est super léger, il semblerait qu'on puisse y ajouter un serveur web, mais ça impose de formater les disque car il ne gère pas les écritures sur des disques en FAT32 par exemple. Mon but est de stocker, et je veux pouvoir débrancher un disque pour l'emmener avec moi et partager mes fichiers, donc on oublie.
  • J'ai aussi essayé Slitaz, c'est une ubuntu ultra légère, qui semble bien faire pour ce genre d'application, mais j'ai terriblement galéré pour configurer Samba, le partage de fichier (car il y a des PC windows dans la maison, ceux de ma femme je vous rassure...). J'ai donc abandonné.
  • Finallement, j'ai choisi Xubuntu, qui tout en restant aussi conviviale qu'Ubuntu reste tout de même un peu plus légère.
Les puristes me diront que c'est l'artillerie lourde pour faire un serveur, qui normalement n'a pas besoin d'interface graphique, mais j'aime pas trop la ligne de commande et j'aimerais un petit VNC pour controler mon serveur à distance.

De plus sur ce genre de distribution je sais parfaitement installer tous les outils dont j'ai besoin.

Voici la liste:

  • Un serveur LAMP pour mes sites web
  • SAMBA pour le partage de disques à travers le reseau
  • Vino pour prendre le controle du bureau du serveur à distance
  • Subsonic pour streamer la musique (ca marche aussi pour les film à ce qu'il parait). Ce logiciel est tout simplement magique, il y a meme une appli Android pour ecouter la musique partout dans la maison (en wifi) depuis son mobile, ou même ailleurs en 3G!
  • EEE-control pour réduire le EEEpc au silence (son ventilateur produit un bruit très chiant et ce soft permet de le modérer très franchement.
Du coté matériel:
  • Le EEEpc
  • Des disques dur 2.5" (j'aime bien l'alim par l'usb, pas besoin d'alim supplémentaire)

La suite bientôt....

Installation:

Xubuntu
-----------
  • Configurer la fenetre d'accueil pour se connecter automatiquement (afin de lancer le serveur VNC à distance).
  • Configurer le reseau Wifi pour qu'il ne demande plus le mot de passe pour les connections Wifi (également pour pouvoir se connecter par VNC sans devoir aller sur l'ordi taper le mot d epasse).
Pour cela, Clic droit sur l'icone de reseau dans le panneau supérieur puis Modification des connexions.
Choisir le reseau wifi, cliquer sur modifier puis cocher la case tout en bas "Disponible pour tous les utilisateurs".
  • Figer d'adresse locale de notre futur serveur sur la box. Chaque fois qu'un nouvelle ordinateur est connecté sur le reseau, une adresse locale lui est donnée (du type 192.168.1.5 par exemple). Afin d'éviter que notre serveur change d'adresse et devienne donc injoignable il faut figer son adresse locale en la réservant dans la box adsl. Chez moi, alicebox, voici à quoi ca ressemble. Il faut se rendre dans la configuration de la box (192.168.1.1 dans la barre adresse du navigateur).

Mon EEEpc possede l'adresse 192.168.1.7 (pour la connaitre taper ifconfig dans la console et regarder pour wlan0 si on est en wifi ou eth0 en cablé)
Je vais donc recopier son adresse MAC en (1) dans un nouveau bail DHCP avec l'adresse IP que je souhaite (je garderais 192.168.1.7) en faisant une nouvelle entrée.

A partir de maintenant, l'adresse 192.168.1.7 est reservé et sera toujours attribuée à mon server EEEpc quand son adresse MAC sera reconnue par le reseau.

Installer Samba
Installer vino et le configurer pour qu'il se lance au démarrage

Installer Subsonic
---------------------
Commencer par lire les instructions pour l'installation Debian / Ubuntu ici: http://www.subsonic.org/pages/installation.jsp#debian

Il faut d'abord installer Java: sudo apt-get install openjdk-6-jre

Ensuite, lancer le téléchargement et ouvrir le fichier pour lancer automatiquement l'instalation avec Gdebi.

Une fois installé, un petit redémarrage (pas forcément nécessaire, mais chez moi il a permis de lancer le serveur Subsonic) et il reste à se rendre sur la page web d'administration en entrant localhost:4040 (marchait pas chez moi, j'ai du entrer 192.168.1.7:4040) et se connecter avec les identifiant admin provisoire admin/admin. La suite consiste à passer en français (settings>général), changer le mot de passe admin, ajouter des disques (Settings>Dossier de musique).

Il ne reste plus qu'a installer l'application Android sur votre mobile depuis le market et à profiter de votre musique partout sur votre reseau Wifi.

(Configuration pour un accès exterieur à faire).



Reste à faire:
Trouver un moyen d'arreter automatiquement les disques lorsqu'ils ne sont pas utilisés.
Gérer les heures de mise en route et arret du serveur (avec possibilité de forcer la mise en route si besoin depuis Wake on lan