arm

Notification Drone avec Gotify

Gotify est un serveur de notification en Go. Il permet de lui envoyer via une API du json avec une simple requête curl ou depuis du code. Il propose une interface web pour créer des applications qui génère une token nécessaire à l’envoi des messages mais surtout une application android. Ainsi on pourra recevoir sur son téléphone des alertes et notifications envoyées par ses scripts et programmes. Drone L’idée est ici de l’utiliser pour l’ajouter dans un pipeline Drone afin d’être notifié du statut d’un déploiement.

Miniflux un serveur RSS

Suite à fathom, un autre un autre service me manquait, un serveur de RSS proposant une API pour un client mobile. En opensource il en existe plusieurs comme tt-rss ou freshrss mais comme toujours l’usinerie PHP/SGBD me rebute. C’est alors (encore :) que j’ai découvert miniflux un serveur en Go (anciennement en PHP). Malheureusement il demande comme les autres un SGBD ; comme je ne peux y échapper voici mes différentes étapes d’installation avec PostgreSQL sur ma stack docker swarm / glusterfs.

Stats Web Avec Fathom

Je recherchais depuis quelques temps un outils permettant de calculer et stocker les stats des visites sur mon site. Le plus connu en libre est semble t-il piwik devenu matomo mais la lourdeur de PHP/mysql me rebutait. J’ai tendance à privilégier autant que possible des services en Go, léger et rapide, avec une base sqlite. Ca tombe bien puisque j’ai découvert fathom qui répond exactement à ce “cahier des charges”.

Glusterfs Docker

Cet article présente l’installation du file system distribué glusterfs sur des serveurs ARM64 chez scaleway. L’objectif est d’y stocker les volumes docker pour qu’ils soient synchronisé entre tous les serveurs, ainsi si le swarm déplace un conteneur sur une autre machine physique, il retrouvera ses données. Cette solution est plus robuste que celle que j’utilisais avec syncthing. L’idéal serait de créer une partition XFS sur un disque dédié, cependant les ARM64v8 premier prix ne peuvent attacher plus de 50Go, le volume principal étant de 50go il faudrait passer à la gamme ARM64-4G.

Build Push Deploy

Sous ce titre, l’idée est de présenter un workflow de construction d’une image docker, sa publication et son déploiement depuis un simple git push grâce à Drone. Pour cela je vais utiliser un vieux projet en php toujours en vie : phpsysinfo Contexte Lorsqu’on souhaite utiliser Docker plusieurs étapes sont nécessaires avant d’arriver à la publication finale. Ecrire un Dockerfile Construire une image La publier sur un registre (le plus souvent le hub docker) Ecrire un docker-compose pour l’instancier sur son serveur.

Drone 1

Cet article présente succintement la nouvelle version de Drone 1 et les changements de configuration. Pour rappel Drone est un outil d’intégration et de déploiement continu. Tout d’abord l’interface web a bien évoluée, elle est très clair et agréable. Un pipeline peut maintenant être relancé depuis l’interface et le lien view source permet de pointer vers le commit qui l’a déclenché. la syntaxe du fichier pipeline .drone.yml a changé, elle se présente maintenant sous cette forme :

Librespot

librespot est un client opensource pour spotify. Après une compilation assez longue sur mon raspberry pi 3 (librespot est codé en Rust), il suffit de lui indiquer son login/pass spotify en paramètre pour que le raspberry soit visible depuis n’importe quel client spotify. Ainsi on peut depuis son smartphone lancer sa musique dans une autre pièce. ./target/release/librespot --name rasp -u user_spotify -p "pass" ici l’appareil est nommé “rasp”.

déploiement continu avec drone sur ARM64

Cet article est une mise à jour du déploiement continu avec drone. Cette fois-ci l’idée est d’utiliser des serveurs en ARM64 disponible chez sacleway. J’utilise toujours une infra docker swarm comme présenté dans cet article auto-hébergement hybride mais à cause de certaines spécifités de l’ARM64 je vais repartir de zéro. Scaleway J’utilise des serveurs baremetal ARM64-2GB car pour le même prix qu’un VPS on a ici un quad core physique ce qui est bien plus efficace qu’une VM à mon sens.