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 !