GERBEN'S BLOG

Autohébergement et Raspberry Pi

Suite à l’installation de mon petit serveur, voici un petit retour sur la “stack” utilisée.

PS: Au fait, bonne année :)

Le système

Pour mon Pi, je ne suis pas parti sur le système Raspbian traditionnel. Celui-ci fonctionne très bien, mais je préfère généralement me tourner vers Arch Linux pour les serveurs.

Arch Linux :

  • a l’avantage d’être une distribution légère,
  • n’installe que le strict nécessaire,
  • est parfaite pour être utilisée en ligne de commande
  • se met à jour facilement, pas de saut de version avec réinstallation du système à effectuer

De plus de nombreux packages sont mis à disposition via le dépôt communautaire AUR. Ce dépôt ne fournit pas de package précompilés mais des sources facilement installables.

D’ailleurs pour vous simplifier l’utilisation des packages d’AUR, je vous recommande l’utilisation de yaourt qui remplace pacman le package manager par défaut en tirant directement les paquets manquants depuis AUR.

Yaourt

Pour installer yaourt, ajoutez le dépôt suivant à votre fichier /etc/pacman.conf :

[archlinuxfr]
SigLevel = Never
Server = https://repo.archlinux.fr/$arch

Puis mettez à jour la base des packages :

pacman -Sy

et installez yaourt :

pacman -S yaourt

Yaourt s’utilise strictement comme pacman. Pour mettre à jour votre système :

yaourt -Syu

Pour installer le package vim, par exemple :

yaourt -S vim

Le serveur web

Pour servir les pages, je ne souhaite pas utiliser le serveur embarqué dans hugo afin d’avoir des fonctionnalités avancées (https dans l’avenir …). J’ai donc décidé d’installer NGINX.

Simple :

yaourt -S nginx

Activez le service avec systemctl :

systemctl enable nginx
systemctl start nginx

et les pages à servir doivent être déposées dans /usr/share/nginx/html.

Le CMS : Hugo

Hugo est un générateur de site static développé en go. Il a l’avantage d’être très rapide et peu gourmand en ressources, bref, parfait pour un Pi.

J’ai choisi d’installer hugo depuis ses sources pour pouvoir contribuer au développement de l’outil (ah, si j’avais plus de temps :) ). Il va donc falloir commencer par installer go, git et mercurial :

yaourt -S go git mercurial

Pour définir l’emplacement des sources et binaires go (mon arborescence go sera ici $HOME/go; ne pas oublier de créer le répertoire), définissez les variables suivantes dans votre .bashrc :

export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

L’installation et la compilation d’hugo et de ses dépendances seront alors gérés directement par go :

go get -v github.com/spf13/hugo

Et si tout se passe bien, miracle : hugo est installé !

Vous n’avez plus qu’à suivre le getting started pour créer votre premier site et déployer vos pages dans /usr/share/nginx/html. Enjoy !