Si vous aimez organiser votre vie personnelle en utilisant des outils digitaux et que vous aimez les solutions auto-hébergées, vous avez peut-être déjà entendu parlé de Monica. Monica est une application Web open source pour la gestion des relations personnelles. Considérez-le comme un CRM, mais pour votre vie personnelle. Aujourd'hui, je vais vous guider tout au long du processus d'installation de Monica à l'aide de Docker sur Unraid. Je vais également vous faire une explication détaillée du fichier yaml pour docker-compose que l'on va utiliser.
Prérequis
Avant de plonger dans le fichier YAML, couvrons les bases. Pour utiliser Docker Compose sur Unraid, vous devrez installer une application communautaire appelée « Docker Compose Manager ». développée par "primeval_god". Ceci est essentiel pour exécuter le script Docker Compose YAML. Plus d'infos sur le forum Unraid.
Comprendre le fichier YAML Docker Compose
Tout d'abord, voici le fichier yaml docker-compose que j'ai produit sur la base de l'exemple officiel et j'ai aussi regardé comment Marius l'a fait avec les paramètres email :
version: "3.9"
services:
app:
image: monica
depends_on:
- db
ports:
- 8181:80
environment:
- APP_KEY= # Generate with `echo -n 'base64:'; openssl rand -base64 32`
- DB_HOST=db
- DB_USERNAME=monica
- DB_PASSWORD=secret
- APP_ENV=local
- MAIL_MAILER=smtp
- MAIL_HOST=smtp.gmail.com
- MAIL_PORT=587
- MAIL_USERNAME=Your-own-gmail-address
- MAIL_PASSWORD=Your-own-app-password
- MAIL_ENCRYPTION=tls
- MAIL_FROM_ADDRESS=Your-own-gmail-address
- MAIL_FROM_NAME=Monica
volumes:
- /mnt/user/appdata/monica:/var/www/html/storage
restart: always
db:
image: mariadb:11
environment:
- MYSQL_RANDOM_ROOT_PASSWORD=true
- MYSQL_DATABASE=monica
- MYSQL_USER=monica
- MYSQL_PASSWORD=secret
volumes:
- /mnt/user/appdata/monica-db:/var/lib/mysql
restart: always
Décomposons ensemble ce fichier YAML pour docker-compose ! (J'ai décidé d'expliquer comment s'articulait ce fichier car c'était la première fois que j'utilisais docker-compose, j'ai donc du faire cet effort de tout décortiquer).
Version
version: "3.9"
Cette ligne spécifie la version du format de fichier Docker Compose. J'ai utilisé celui de l'exemple officiel.
Services
La section services définit les containers que nous exécuterons.
Service d'application
services:
app:
image: monica
...
image : monica : spécifie l'image Docker à utiliser, dans ce cas, 'monica'.
depends_on: - db : garantit que le service de base de données (db) est démarré avant l'application.
ports : - 8181:80 : mappe le port 80 dans le conteneur au port 8181 sur la machine hôte (Unraid).
Variables d'environnement
APP_KEY : une clé pour le chiffrage de votre application. Générez une clef de 32 caractères.
DB_HOST=db ainsi que les autres variables (user, password) en lien avec la base de données.
MAIL_* : Configuration pour l'envoi d'e-mails via l'application.
Volumes
/mnt/user/appdata/monica:/var/www/html/storage : mappe un répertoire sur votre hôte (Unraid) à un répertoire dans le conteneur pour un stockage persistant. Par défaut, les conteneurs Unraid stockeront les données dans /mnt/user/appdata/name_of_your_container
Politique de restart
restart : toujours : garantit que le conteneur redémarre toujours à moins qu'il ne soit arrêté manuellement.
Service de base de données
db:
image: mariadb:11
...
image : mariadb:11 : Spécifie l'image MariaDB à utiliser pour la base de données.
environnement : similaire au service d'application, il est utilisé pour la configuration de la base de données.
volumes : garantit la persistance des données pour la base de données.
Modifiez les valeurs de vos variables
Avant de déployer Monica à l'aide du fichier Docker Compose YAML, il est crucial de personnaliser certaines valeurs pour les adapter à votre configuration :
APP_KEY : il s'agit d'une clé de chiffrement unique pour votre instance.
Identifiants de base de données : DB_USERNAME, DB_PASSWORD et leurs valeurs correspondantes dans le service db doivent être défini pour l'identification à la DB.
Configuration de la messagerie : ajustez les variables MAIL_* avec vos paramètres de messagerie. Cela inclut les détails de votre fournisseur de messagerie et les informations d'identification pour l'envoi d'e-mails depuis Monica. Concernant l'email j'utilise un mot de passe d'application pour mon adresse Gmail.
Volumes : les chemins dans la section volumes doivent être ajustés en fonction de où vous souhaitez stocker les données de Monica.
Ajustement des ports : il est essentiel de s'assurer que le port défini dans la section ports (par exemple, 8181:80) n'entre pas en conflit avec d'autres services sur votre serveur Unraid. Remplacez 8181 par n'importe quel port disponible sur votre hôte.
Faire ces ajustements est la clé d'une installation Monica réussie et personnalisée sur votre serveur Unraid.
Installer Monica sur Unraid
Installer Docker Compose Manager sur Unraid
Vous le trouverez dans les applications communautaires :
Accédez à l'onglet "Docker" dans le menu de Unraid puis, tout en bas, après la liste de vos containers existants vous trouverz ceci : "Compose"
Créez la stack à l'aide du fichier YAML
Cliquez sur "ADD NEW STACK" et choisissez le nom de votre stack, par exemple "Monica"
Vous devriez recevoir un message de réussite après avoir cliqué sur OK
Modifions maintenant la stack :
Cliquez sur "EDIT STACK"
Choisissez « COMPOSE FILE » ;
Copiez le contenu de votre fichier YAML et remplacez tout ici. Puis cliquez sur "ENREGISTRER LES MODIFICATIONS".
Ensuite vous aurez la fenêtre suivante :
Remplacer Icon par certaines URL d'icônes, par exemple j'ai utilisé celles-ci :
Icône de l'application :
Icône db :
Et écrivez simplement l'URL de votre interface utilisateur Web pour l'application, elle ressemblera donc à quelque chose comme :
http://votre_unraid_IP:votrePort/
Laissez vide pour le shell.
Et appuyez sur OK . Une fois terminé, cliquez sur « COMPOSE UP » ; pour exécuter docker-compose et tout installer :
Cela ouvrira une fenêtre qui affichera la progression
Et vous avez terminé !
FÉLICITATIONS ! Vous avez réussi à self-hoster Monica et vous avez appris à créer votre fichier yaml docker-compose ainsi qu'à l'utiliser !
Vous pouvez désormais accéder à Monica en allant sur http://your_unraid_IP:yourPort/ !
En suivant ces étapes, vous devriez avoir une instance fonctionnelle de Monica sur votre serveur Unraid, personnalisée selon vos préférences. C'est un excellent exemple de la flexibilité qu'offre Docker et un projet parfait pour plonger dans Docker Compose !
Enjoy ! 😎
AlexIn Tech
Update du 04.02.2024 : Les reminders par email ne s'envoient pas, comment résoudre ce problème ?
J'ai comme vous rencontré ce problème, et après quelques jours de recherche j'ai maintenant une solution que je vous partage dans l'article suivant :