Pré-configurer Grafana avec Docker-Compose

Grafana est un excellent outil permettant de créer facilement des dashboards de monitoring en se branchant sur différentes sources de données. Ce projet est open-source et disponible sous la forme d’un conteneur docker, ce qui lui permet d’être intégré directement dans d’autres projets de plus grande envergure. C’est par exemple ce que j’ai fait avec Omeglast.

Pour facilité son inclusion dans un projet, il est nécessaire d’avoir une solution pour initialiser Grafana directement avec une configuration propre à notre projet (accès aux sources de données, dashboards initialisés, etc.)

Heureusement, Grafana avec quelques outils supplémentaires dispose de tous les éléments nécessaires.

Continue reading « Pré-configurer Grafana avec Docker-Compose »

Portainer, Nginx et docker-compose

Dans un précédent article, je vous avais présenté une installation rapide de Portainer en passant uniquement par docker. Cette installation est idéale en développement, mais lorsque l’on a besoin d’aller un peu plus loin (sur un serveur de test par exemple) on peut vouloir rajouter un minimum de sécurité : restreindre à certaines IP, restreindre à un domaine particulier, etc.

C’est que je vais vous montrer ici en ajoutant un serveur NGinx en front avec docker-compose.

Continue reading « Portainer, Nginx et docker-compose »

Omglast, 7 dec. 2017

Étant donné que c’est la première fois que je poste sur le projet Omeglast, il me semble nécessaire de commencer par une petite introduction.

Omeglast, donc, est un projet opensource d’objets connectés, big data/data science, monitoring et de domotique… Ce projet a pour objectif d’agréger des données venant de différentes sondes connectés (température, humidité, présence, etc.) à l’intérieur et à l’extérieur de la maison avec des données météorologiques afin de pouvoir comprendre comment la maison réagi par rapport aux changements extérieurs et à l’activité humaine. C’est un moyen de pouvoir mesure une partie de la performance énergétique.

C’est aussi pour moi l’occasion d’expérimenter de nouvelles technologies.

Continue reading « Omglast, 7 dec. 2017 »

Installation rapide de Portainer

Quand on travaille avec docker sur des environnements de dev ou de test, on a rapidement besoin d’un outil pour pouvoir gérer / trier toutes ces images et ces containers qui finissent par trainer dans tous les sens.

Il existe de nombreux outils pour le faire, pour ma part, j’utilise Portainer (Je vous laisse aller faire un tour sur le site et regarder la démo)

Continue reading « Installation rapide de Portainer »

Tagger une image docker avec le nom de la branche git

Un petit tips en passant, il est souvent bien utile de pouvoir utiliser le nom de la branche git en cours pour builder une image docker.

Personnellement, je l’utilise dans deux cas :

  • Lorsque j’ai plusieurs développement en cours (et j’ai donc besoin d’une image correspondant à chaque branches)
  • Lorsque j’ai différentes branches correspondant à différentes version de l’image (version différente de PHP ou de NodeJS par exemple)

Du coup, la première étape est de récupérer le nom de la branche en cours :

git rev-parse --abbrev-ref HEAD

Et il ne reste plus qu’à le stocker le résultat dans une variable.

Autre petit truc, si la branche est master, dans ce cas je rajoute un tag latest à mon image.

Et le tout dans un Makefile :

.PHONY build

IMAGE:=jeckel/image
TAG:=$(shell git rev-parse --abbrev-ref HEAD)

build:
	@docker build -t ${IMAGE}:${TAG} .
	@if [ ${TAG} = "master" ]; then \
		docker tag ${IMAGE}:${TAG} ${IMAGE}:latest; \
	fi

Il ne reste plus qu’à builder l’image :

make build

Note : si vous voulez utiliser plutôt le hash du dernier commit, il suffit d’utiliser la commande suivante :

git rev-parse HEAD

Configurer NGinx en « reverse-proxy » devant NodeJS

Dans de nombreux projets en NodeJS, on utilise un server web (comme express par exemple) qui permet de servir les pages html/javascript/css etc… aussi bien qu’un Apache ou un NGinx.

Aussi bien ? pas tout à fait, en réalité NodeJS sera très bien pour tout ce qui est dynamique, mais ne sera jamais aussi performant pour distribuer des fichiers statiques. D’autre part, de nombreuses fonctionnalités disponible nativement sur un serveur web dédié ne seront pas a re-développer sur une application NodeJS.

Continue reading « Configurer NGinx en « reverse-proxy » devant NodeJS »