Pour continuer sur l'auto-hébergement, le service suivant concerne le streaming audio. Je possède sur mon serveur toute ma bibliothèque audio. Je cherchais depuis longtemps un service web pouvant s'installer sur un serveur et permettant de diffuser depuis mon serveur toute ma musique.
Après quelques recherches, je suis tombé sur Subsonic qui est un service auto-hébergeable et qui dispose de beaucoup de fonctionnalités :
- La lecture en streaming (via un petit lecteur en flash) de fichiers audios.
- Le support de formats audio libres comme le Ogg Vorbis. Dans les faits, le ogg est converti à la volée en mp3 par ffmpeg (ou maintenant avconv) pour la lecture sur le lecteur flash. Pour info, j'utilise l'application k3b pour convertir mes CD audios en ogg.
- La possibilité d'ajouter des flux de Podcasts qui seront automatiquement téléchargés dans le dossier configuré.
- L'ajout de flux de web-radios.
- La gestion de plusieurs utilisateurs et playlists associées.
- La gestion des jaquettes, paroles des chansons, lien vers la fiche Wikipédia de l'artiste ou de l'album.
Subsonic est un logiciel libre sous license GPL3, mais payant pour débloquer des fonctionnalités avancées. Du fait de sa license GPL3, les forks sont autorisés, et il existe une version entièrement débloquée (sans le système de license) disponible sur ce dépôt GitHub.
L'installation se fait très facilement en suivant les instructions sur le site officiel. Pour rendre le service disponible depuis l'extérieur, j'ai redirigé un sous domaine vers le port de l'application subsonic en utilisant la fonctionnalité de Proxy par Apache. Voici la configuration (Subsonic est en écoute sur le port 4040) :
<VirtualHost *:80>
ServerName music.monsite.com
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyErrorOverride On
ProxyPass / http://localhost:4040/
ProxyPassReverse / http://localhost:4040/
<Location />
Order allow,deny
Allow from all
</Location>
</VirtualHost>
Adieu les lecteurs audio sur les machines locales (et la prise de tête pour trouver un protocole de diffusion multi-plateforme), les services centralisés type Deezer ou Spotify ! Je peux enfin écouter MA musique partout où je le souhaite grâce à cette aplication très complète !
Pour continuer la série sur mes manières de me séparer des services centralisés que j'utilisais auparavant, après avoir changé de navigateur, on continue avec un des services qu'on utilise le plus : le moteur de recherche. Le moteur de recherche est un service très important.
Pourquoi vouloir me séparer de Google pour mes recherches ?
- Google est un service hyper-centralisé, à tel point que pour de nombreuses personnes Google est Internet.
- Google récolte sans complexe toutes nos données de navigation pour les vendre à des annonceurs qui affichent des pubs ultra-ciblées entre autres.
- Google trie les résultats de recherche et effectue une sélection des résultats qu'il présente (selon nos précédentes recherches, cookies, notre profil, les volontés des gouvernements ou ayants-droit, etc.). Google n'est donc pas du tout un moteur de recherche neutre.
Différentes alternatives existent, l'une d'elle qui est de plus en plus connue s'appelle DuckDuckGo. C'est un moteur de recherche qui se veut neutre, et respectueux de la vie privée. Tout ceci est expliqué (par DuckDuckGo) sur ce site : http://donttrack.us/.
Pour avoir essayé ce moteur il y a 2 ou 3 ans, je n'avais pas trouvé les résultats pertinents du tout. Aujourd'hui après plusieurs semaines d'utilisation j'ai réussi à retrouver le confort de la recherche et la pertinence des résultats que je pouvais avoir sur Google. Voici les différentes adaptations que j'ai faites :
- Installation du plug-in DuckDuckGo pour Firefox
- Personnalisation des préférences de DuckDuckGo (sur la page de recherche, aller dans les Paramètres et choisir la Région et la langue préférée pour les résultats).
- Utilisation massive des !bang. Cette liste de mots clefs permet d'effectuer des recherches directement sur d'autres moteurs de recherche, par exemple printf !cpp ira directement chercher le mot printf sur le site cplusplus.com. Le gain de temps est très vite appréciable ! De plus, ce point est très intéressant car le fait de pouvoir lancer des recherches directement sur d'autres site que le moteur de recherche en lui-même va dans le sens de la décentralisation que je recherche.
A vous d'essayer !
Premier article d'une série consacrée à l'auto-hébergement. J'ai indiqué dans mon article précédent que je souhaitais petit à petit reprendre le contrôle de mes données, et cela passe notamment par trouver des alternatives libres et "auto-hébergeables" des services qui stockent mes données personnelles sur leurs serveurs.
Je dispose d'un petit serveur basse consommation allumé en permanence chez moi, et qui me sert principalement de NAS sur le réseau local, et héberge quelques services et sites en externe.
J'ai décidé de commencer par changer de navigateur. Auparavant j'étais sur Google Chrome, puis Chromium, avec pour principale raison la synchronisation automatique des données (onglets, favoris et plugins) sur toutes les machines que j'utilise. De fait, Google possède des informations sur tous mes centres d'intérêt, ce qui est pour lui des données intéressantes à revendre, par exemple à des régies publicitaires pour mieux me cibler.
Firefox possède également une solution de synchronisation des données (qui n'existait pas au moment ou j'ai changé de navigateur), appelée Mozilla Sync. Par défaut, la fonction vous propose d'héberger vos données à synchroniser sur le serveur Sync de Mozilla, ce qui ne résout pas le problème initial.
Mais là oà ça devient intéressant, c'est que la partie serveur de Sync est libre, et qu'on peut l'installer sur son propre serveur ! Ainsi, mes données restent bien au chaud chez moi (les données sont cryptées lors de la synchronisation, rien ne circule en clair).
Pour l'installation, je vous laisse aller voir directement les instructions d'installation sur le wiki de Mozilla.
Le seul problème que j'ai eu à l'installation, qui est très bête, mais ça ne m'a pas sauté aux yeux directement. Dans le cas où la connexion au service ne fonctionne pas, et que le log indique :
IOError: [Errno 13] Permission denied: '/tmp/sync-error.log'
Il faut supprimer le fichier /tmp/sync-error.log qui n'a pas eu les bons droits lors de sa première création.
Au passage, voici la configuration Apache, si ça peut en aider certains (les sources sont installées dans /opt/mozilla/server-full) :
<Directory /opt/mozilla/server-full>
Order allow,deny
Options -Indexes +ExecCGI
Allow from all
</Directory>
<VirtualHost *:80>
ServerName sync.monsite.com
DocumentRoot /opt/mozilla/server-full
WSGIProcessGroup sync
WSGIDaemonProcess sync user=sync group=sync processes=2 threads=25
WSGIPassAuthorization On
WSGIScriptAlias / /opt/mozilla/server-full/sync.wsgi
CustomLog /var/log/apache2/ff-sync-access.log combined
ErrorLog /var/log/apache2/ff-sync-error.log
</VirtualHost>
Comme indiqué sur le wiki de Mozilla, ne pas oublier, une fois que vous avez créé vos comptes d'interdire la création de nouveaux comptes dans la configuration, pour éviter d'éventuels robots spammeurs. Dans le fichier etc/sync.conf, décommenter la ligne :
allow_new_users = false
Puis redémarrer le serveur Apache comme à chaque modification de ce fichier.
Enfin, afin de garantir que mes données ne sont pas perdues, j'ai terminé l'installation en ajoutant à mon script de backup les données de la base stockant les données du serveur Sync (au pire, les données restent en local sur mes différents ordinateurs).
Cela commence à faire un petit moment que je n'ai rien publié sur mon site, et
ce pour diverses raisons (déménagement, boulot, activités annexes,...). Bref,
toujours est-il qu'après cette petite pause j'ai pas mal de choses à partager.
Pour les fidèles du blog, vous pourrez commencer par remarquer que le site a
changé de tête, car j'ai quitté le traditionnel Wordpress pour essayer un
générateur de site statique Pelican écrit en
Python. Au final, ça ne change pas grand-chose pour le visiteur du site (à
part qu'il se charge beaucoup, beaucoup plus vite), mais ça change énormément
pour moi pour la rédaction des articles et la facilité de publication et de
maintenance (puisqu'il y en a pratiquement pas!). Finit les mises à jour
Wordpress qui cassent tout à chaque fois ! ;-)
Je pense que je reviendrai à ce sujet dans quelques temps, après avoir pu me
faire un peu plus d'expérience avec cet outil.
Dorénavant également, il n'est plus possible de poster des commentaires sur le
site, et les commentaires qui existaient ont été supprimés. Ceci est lié au
fait que le site est maintenant statique (comprendre uniquement des fichiers
.html). J'aurais pu installer Disqus qui permet de gérer des commentaires
dans ce genre de cas, mais j'ai choisi de ne pas utiliser cet outil externe
(dont je ne possède pas les données), mais de revenir au bon vieux mail pour
échanger avec moi (adresse à la fin de cet article).
Enfin, j'essaye de plus en plus de mettre en place des services en
auto-hébergement chez moi pour tenter de remplacer tous les services
centralisés que j'utilise (Google, Dropbox, Deezer, et encore bien
d'autres). L'idée a pas mal germée depuis la fermeture de Google Reader, et
depuis que j'ai vu la fameuse
conférence Internet ou Minitel 2.0
de Benjamin BAYART, et que je vous conseille de voir.
Une autre série d'articles à venir viendra donc expliquer en détails quelles
solutions j'ai mis en œuvre pour remplacer ces services.
Nous avons précédemment vu comment installer un serveur audio sur le Raspberry Pi, et comment y ajouter des flux de radio internet.
Dans cet article, nous allons voir comment effectuer des commandes,
sans passer par une connexion ssh, mais en utilisant une application
smartphone connecté sur le réseau local.
Dans un premier temps, il faut configurer mpd sur le Raspi pour
autoriser des commandes à distance. Dans le fichier /etc/mpd.conf,
modifier la variable bind_to_address et la modifier (le paramètre
par défaut étant "localhost") :
Puis redémarrer mpd :
sudo /etc/init.d/mpd restart
On peut donc maintenant commander mpd à distance.
Ensuite il faut rechercher une application sur votre smartphone, en
tapant "mpd" comme mot clef. Il existe de nombreuses applications
permettant de contrôler mpd à distance. Attention, ces applications ne
vont pas rediriger le flux audio vers votre téléphone. Ce ne sont que
des télécommandes.
Sur iPhone, j'ai choisi MPoD. J'ai regardé pour Android, il existe
tout un tas d'applications similaires.
Voyons maintenant comment configurer MPoD pour Iphone. Je pense que
c'est similaire avec une autre application.
Une fois l'application lancée, il faut aller dans le menu "Players"
pour configurer le serveur mpd :
Ensuite, ajouter un nouveau lecteur :
Configurer le nom du lecteur, ainsi que l'adresse IP. Le reste des
paramètres est à laisser par défaut, à moins que vous n'ayez changé des
paramètres par défaut sur le serveur mpd :
Enfin, si tout est normal, le serveur est ajouté, et l'icône réseau
est allumée à côté du nom (sinon, elle sera grisée) :
Enfin, quittez le menu en appuyant sur "Done", et vous devriez voir la
liste de lecture avec les différentes stations de radio ajoutées :
A partir de là, il est possible de changer de station, changer le
volume, éditer la playlist, etc. En revanche, la plupart des stations de
radio en streaming ne renseignent pas les champs "Titre" et "Artiste",
et par conséquent la liste de lecture n'est pas très user friendly...
A ce stade, vous disposez donc d'un Raspberry Pi configuré pour sortir
des flux de stations radio internet. Vous pouvez tout à fait en rester
là, mettre le Raspi derrière votre chaîne ou enceintes, et profiter de
toutes les radios disponibles sur internet !
Dans la suite, je souhaite intégrer le Raspi dans un boîtier maison
avec enceintes, pour disposer d'une radio internet autonome, avec des
boutons et un écran pour changer les stations, le volume et visualiser
le nom des stations.
Bien évidemment, mpd est aussi capable d'aller chercher des
fichiers audio autres que des flux radio sur votre réseau, et on peut
donc tout à fait transformer le Raspi en Media Center audio ! ;-)