[Tuto] Installation de Dashy en Docker via docker-compose

EVO

Administreur
Membre du personnel
25 Novembre 2019
8 219
1 576
278
/var/run/docker.sock
[Tuto] Installation de Dashy en Docker via docker-compose


Bonjour,
Un nouveau petit tuto pour vous apprendre à installer Dashy en docker-compose.

Dashy c'est quoi ?
Dashy est un tableau bord de services Web autohébergés ou non. Sur une page, vous centralisez tous vos services Web préférés comme par exemple : OPNsense, WireGuard, DuckDNS, Pi-Hole, Grafana, Transmission, NextCloud, Home Assistant, Plex… mais aussi des liens/raccourcis de vos sites préférés.

Voici un aperçu en image :
68747470733a2f2f692e6962622e636f2f4c3859624e4e632f64617368792d64656d6f322e676966


Des sites de démonstration sont également disponible : Démo 1 - Démo 2 - Démo 3

Plus d'info sur Cachem ou sur le GitHub officiel.

Sommaire :
1/ Création des dossiers
2/ Création du fichier de configuration
3/ Création du docker-compose
4/ Création du réseau bridge
5/ Création du conteneur
6/ Accès à Dashy

C'est parti ! :giggle:

1/ Création des dossiers
Je vais installer Dashy dans mon dossier docker, qui se situe sur /srv/disk1, je vais donc créer dans le dossier docker, un dossier dashy avec la commande suivante :
Code:
sudo mkdir -p /srv/disk1/docker/dashy

2/ Création du fichier de configuration
Maintenant, je vais dans mon dossier Dashy :
Code:
cd /srv/disk1/docker/dashy

Je crée mon fichier de configuration, c'est lui qui va contenir l'organisation des services sur le Dashboard. Pour crée ce fichier conf.yml, j'execute la commande suivante :
Code:
sudo nano conf.yml

Puis, je place ce contenu :
Code:
---
pageInfo:
  title: Dashy
  navLinks:
  - title: Home
    path: /
  - title: About
    path: /about
  - title: Source Code
    path: https://github.com/Lissy93/dashy
appConfig:
  theme: colorful
  fontAwesomeKey: 0821c65656
  enableFontAwesome: true
  layout: "auto"
  iconSize: "medium"
sections:
- name: Getting Started
  items:
  - title: Source
    description: Source code and documentation on GitHub
    icon: fab fa-github
    url: https://github.com/Lissy93/dashy
  - title: Issues
    description: View currently open issues, or raise a new one
    icon: fas fa-bug
    url: https://github.com/Lissy93/dashy/issues
  - title: Demo 1
    description: 'Live Demo #1'
    icon: far fa-rocket
    url: https://dashy-demo-1.netlify.app 
  - title: Demo 2
    description: 'Live Demo #2'
    icon: fad fa-planet-ringed
    url: https://dashy-demo-2.netlify.app

Je quitte le fichier (Ctrl + X) et je valide avec Y + Enter.
Ce fichier contient l'organisation de votre Dashboard, c'est lui qu'il faudra modifier pour rajouter des services sur votre Dashboard. Il sera également possible de le modifier en ligne depuis l'interface mais attention, les modifications faite en ligne depuis l'interface Web ne s'enregistre pour le moment pas dans ce fichier de configuration, donc dans le cas de re-création du conteneur les modification faite peuveut êtres perdu si vous n'avez pas sauvegardé votre configuration !

3/ Création du docker-compose
Maintenant, toujours dans mon dossier Dashy :
Code:
cd /srv/disk1/docker/dashy


Je crée un fichier docker-compose.yml :
Code:
sudo nano docker-compose.yml


Avec le contenu suivant :
Code:
version: "3.8"
services:
  dashy:
    image: lissy93/dashy
    container_name: Dashy
    volumes:
      - /srv/disk1/docker/dashy/conf.yml:/app/public/conf.yml
    ports:
      - 4000:80
    environment:
     - NODE_ENV=production
     - UID=1000
     - GID=1000
    restart: unless-stopped
    healthcheck:
      test: ['CMD', 'node', '/app/services/healthcheck']
      interval: 1m30s
      timeout: 10s
      retries: 3
      start_period: 40s

networks:
  dashy-network:
    external:
      name: dashy-network

Ici, plusieurs choses sont a adapter suivant votre installation :
- UID et GIDsont à modifier suivant les ID de votre utilisateur*
* Pour connaitre le PUID/GUID de l'utilisateur : [Tuto] Connaitre le PUID / PGID d'un utilisateur.

- Sur la ligne "/srv/disk1/docker/dashy/conf.yml:/app/public/conf.yml", /srv/disk1/docker/dashy/conf.yml doit correspondre avec le dossier crée a l'étape 1 du tuto et le fichier de configuration crée a l'étape 2. Ce dossier contient l'organisation de votre Dashboard.

4/ Création du réseau bridge
Dans le compose je place le conteneur Dashy sur un réseau bridge "dashy-network", il faut le crée, pour cela on lance la commande suivante :
Code:
sudo docker network create dashy-network

5/ Création du conteneur
Maintenant, toujours dans mon dossier Dashy :
Code:
cd /srv/disk1/docker/dashy

on execute la commande :
Code:
sudo docker-compose up -d

Une fois fini, la commande renvoi "done", alors le conteneur est bien créé !

6/ Accès à Dashy
Rendez-vous à l'url de votre machine + le port 4000 pour afficher la page de connexion.
Par exemple si l'ip de votre machine est 192.168.1.10 alors l'adresse de Dashy sera : http://192.168.1.10:4000

WfB5Fab.png

Cette page s'affiche, Dashy est alors en train de charger la configuration présente dans le fichier conf.yml, cette étape, qui ne se faire qu'au 1er chargement, peut durer quelques secondes !

:giggle:

2021-06-23 - Ajout de enableFontAwesome: true dans conf.yml pour l'affichage correct des icones.
2021-06-21 - Rajout de la variable NODE_ENV=production pour que le tuto soit à jour avec la derniere version de Dashy
2021-06-17 - Création du tuto
 
Update :)
Rajout de la variable NODE_ENV=production pour que le tuto soit à jour avec la dernière version de Dashy.
 
Update
2021-06-23 - Ajout de enableFontAwesome: true dans conf.yml pour l'affichage correct des icones.
 
Hello, merci pour le tuto et maintenant c'est disponible en ARM.

image: lissy93/dashy:arm32v7

Ton tuto fonctionne au poil sur mon raspberry pi 4.

Bonne soirée!
 
  • J'aime
Réactions: EVO
J'ai voulu installer 'Dashy' en Docker mais c'est fou comme il consomme de la RAM au lancement !!
Je suis allé voir sur GitHub et j'ai vu que tu avais déjà reporté le problème @EVOTk 😅
Je lui ai donné jusqu'à 1Go de RAM, mais le containeur arrive comme même à planter au démarrage, pas assez de RAM alloué.
Du coup je reste avec mon 'Homer' et ces 50Mo au lancement et 2Mo en utilisation :LOL:
J'ai finis par réussir à lui rajouter une petite image dynamique (état de la protection de mon NAS) dans le section message du fichier yml, et avec un auto refresh de l'onglet via un simple plugin Chrome, c'est parfait !!