[Tuto] Installation de Huginn + MariaDB en Docker

EVO

Administreur
Membre du personnel
25 Novembre 2019
8 251
1 581
278
/var/run/docker.sock
Bonjour,
Voici un petit tuto, pour ceux qui souhaiterai installer Huginn en Docker.

3tMQXRG.png

Huginn, c'est quoi ? :giggle:
Huginn est un système pour les agents de construction qui effectuent des tâches automatisées pour vous en ligne. Ils peuvent lire le Web, surveiller les événements et prendre des mesures en votre nom.

Retrouvez plus d'informations sur Huginn ici : Github Officiel


Disclamer :
Le but de ce tuto sera de rendre cette installation facile et accessible a tous, bien que loin d’être un expert de docker/docker compose, n’hésiter pas à répondre à ce sujet avec vos interrogations, .. Pour ceux qui sont plus a l'aise avec ce genre d'installation, n'hésiter pas a proposer des améliorations, ou des conseils, ...

Pour un support sur Huginn ne concernant pas une installation via ce tutoriel, merci de poster votre question dans Applications.


Pré-requis :
Avoir Docker et Docker Compose installé sur sa machin, voir [Tuto] Installation de Docker, Docker-compose et Portainer sur Debian 11
Ce connecter en SSH à votre Serveur/NAS, si vous ne savez pas le faire, vous trouverez ici un tuto explicatif : [Tuto] Acceder à son NAS en lignes de commande.

A modifier selon votre installation :
Toute mon installation, va ce faire dans un dossier "huginn" inclu dans mon dossier "docker"
Je vais donc installer Huginn dans docker/huginn
Les PUID/PGID de mon compte utilisateur sont : PUID=9999 PGID=111 **

** Pour connaitre le PUID/GUID de l'utilisateur : [Tuto] Connaitre le PUID / PGID d'un utilisateur.

Sommaire :
1/ Créer les dossiers nécessaires
2/ Le fichier "docker-compose.yml"
3/ Création et démarrage du conteneur
4/ Accès à Huginn
5/ Notifier via Gotify


Aller go :)




1/ Créer les dossiers nécessaires
Sur le NAS nous allons devoir créer un dossier huginncontenant un dossier config ce dernier contiendra tous les fichiers de configuration nécessaire au fonctionnement du conteneur Huginn.

En SSH, avec la commande cd nous allons accéder au dossier ou vous souhaitez installer les fichiers de configuration du conteneur. Dans mon cas c'est /home/tuto/docker, j’exécute donc la commande suivante pour accéder au dossier docker :

cd /home/tuto/docker

Vous pouvez aussi créer le dossier huginn, contenant un dossier config avec cette commande : mkdir -p huginn/config

Ensuite, avec la commande cd huginn, rendez-vous dans le dossier principal de Huginn que nous venons de créer.

Note : A partir de maintenant, toutes les commandes du tutoriel partirons du principe que vous les exécuter depuis le dossier /huginn





2/ Le fichier "docker-compose.yml"

Nous allons maintenant créer le fichier docker-compose.yml, c'est lui qui contiendra la configuration de nos conteneurs.

Pour le créer nous exécutons la commande suivante : nano docker-compose.yml

L'éditeur s'ouvre, dedans nous allons copier/coller le code suivant :
Code:
version: "2"

services:
  huginn:
    image: huginn/huginn
    container_name: huginn
    ports:
      - 3600:3000
    environment:
      - DATABASE_NAME=huginn
      - DATABASE_USERNAME=huginn
      - DATABASE_PASSWORD=XXXXXXXXX
      - DATABASE_PORT=3306
      - DATABASE_HOST=huginn_mariadb
      - DATABASE_ADAPTER=mysql2
      - DO_NOT_CREATE_DATABASE=true
    depends_on:
      - huginn_mariadb
    restart: unless-stopped
  huginn_mariadb:
    image: linuxserver/mariadb
    container_name: huginn_mariadb
    hostname: huginn_mariadb
    environment:
      - PUID=9999
      - PGID=111
      - MYSQL_ROOT_PASSWORD=YYYYYYYY
      - TZ=Europe/Paris
      - MYSQL_DATABASE=huginn
      - MYSQL_USER=huginn
      - MYSQL_PASSWORD=XXXXXXXXX
    volumes:
      - ./config:/config
    restart: unless-stopped

Vous devez modifier :
- PUID=9999, à modifier avec le PUID de votre utilisateur.
- PGID=111, à modifier avec le PUID de votre utilisateur.
- DATABASE_PASSWORD et MYSQL_PASSWORD, ici sont égal à XXXXXXXXX, il faut choisir un mot de passe de votre choix et l'indiquer aux deux endroits.
- MYSQL_ROOT_PASSWORD, il faut ici remplacer YYYYYYYY par un mot de passe fort de votre choix.

Une fois le fichier correctement rempli, vous pouvez quitter l'éditeur avec Ctrl+X et confirmer les modifications.




3/ Création et démarrage du conteneur
Rappel : Nous sommes toujours en SSH, dans notre dossier huginn

Pour créer le conteneur et le démarrer exécuter la commande suivante : docker compose up -d

Note : Si vous exécuter une veille version de docker-compose ( version 1 ) , la commande sera : docker-compose up -d

Note 2 : Les commandes docker doivent s’exécuter avec les droits root


Si la commande vous retourne "done" ou "Running", c'est que le conteneur est bien lancé !




4/ Accès a Huginn
L’accès a l'interface ce fera par le port 3600, il faudra donc dans votre navigateur, renseigner http://adresse_ip_du_nas:3600
Exemple, si l'ip locale de votre NAS est 192.168.1.10, alors l'adresse sera http://192.168.1.10:3600
CxBaout.png

J8WF84J.png


L'identifiant par défaut de connexion est :
User : admin
Pass : password





5/ Notifier via Gotify
Oups ! En cours :)

2022-05-17 - Création du tutoriel
 
Dernière édition:
  • J'aime
Réactions: FX Cachem
Bonjour Evotk,

je cherche à sécuriser mes stacks notamment en utilisant les "secrets" mais je n'y parvient pas avec la base de donnée.
Dans la doc de mariadb, il est mentionné qu'on peux utiliser les variables avec _FILE mais impossible de me connecter :

dans l'environnement :
- MYSQL_ROOT_PASSWORD_FILE=/run/secrets/ROOT_ACCESS_PASSWORD

dans secrets :
- ROOT_ACCESS_PASSWORD

et je définit les secrets
ROOT_ACCESS_PASSWORD:
file: /volume/secrets/ROOT_ACCESS_PASSWORD.txt

j'ai tenté avec un ficher sans extension mais ça revient au même.

Auriez-vous la bonne méthode pour définir les secrets ?
 
Désolé, mais je n'utilise pas non plus les secrets docker...
 
C'est dans ma liste de chose à faire aussi 😅
Je vais regarder ca cette semaine, je vais le faire pour MariaDB et je reviendrais sur ce sujet..
 
  • J'aime
Réactions: EVO et MilesTEG
@moacc95 / @MilesTEG1 / @EVOTk

Les fichiers secrets fonctionnent chez moi. Il faut répéter le fichier secret dans les containeurs qui font appels à 'mariaDB'.
J'ai un containeur 'mariaDB' seul et des containeurs avec un lien extérieurs à 'mariaDB'.

Je prend comme exemple mon containeur 'phpMyAdmin' et mon containeur 'mariaDB' :

Cela donne pour mariaDB :

Code:
---
version: "2"
services:
  mariadb:
    image: linuxserver/mariadb
    container_name: mariadb
    environment:
      - PUID=1003
      - PGID=100
      - MYSQL_ROOT_PASSWORD_FILE=/run/secrets/mysql-password
      - TZ=Europe/Paris
    secrets:
      - mysql-password    
    volumes:
      - /srv/disk1/docker/config/mariadb:/config
    restart: unless-stopped
    pids_limit: 100
    mem_limit: 250m
    cpus: 0.5
    cpu_shares: 512
secrets:
  mysql-password:
    file: /srv/disk1/docker/secrets/secrets_mysql-password.txt

Cela donne pour phpmyAdmin :

Code:
version: "3"
services:
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: phpmyadmin
    restart: unless-stopped
    ports:
      - 192.168.1.8:8208:80
    external_links:
      - mariadb  
    environment:
      - TZ=Europe/Paris
      - PMA_HOST=mariadb
      - PMA_PORT=3306
      - PMA_ARBITRARY=1
      - PMA_PASSWORD_FILE=/srv/disk1/docker/secrets/secrets_mysql-password.txt
    pids_limit: 100
    mem_limit: 250m
    cpus: 0.5
    cpu_shares: 512
    cap_drop:
       - ALL
    cap_add:
      - SETGID
      - SETUID
networks:
    default:
        external:
            name: mariadb_default


Et en image, pas de problème pour accéder aux BD avec phpMyAdmin :

phpmyadmin.png
 
Dernière édition: