Guide de déploiement

Héberger Monica CRM sur un VPS : vos contacts chez vous

Déployer sur un VPS Cloud →

Tutoriel

Héberger Monica CRM sur un VPS : vos contacts chez vous

Self-hosting9 min de lecture8 étapes

Votre réseau professionnel est l'un de vos actifs les plus précieux. Pourtant, la plupart des outils qui le gèrent le laissent filer vers des tiers : contacts synchronisés dans le nuage, abonnement CRM propriétaire de votre historique, tableurs qui perdent le contexte humain. Monica CRM répond aux trois : un gestionnaire de relations open source que vous déployez sur votre propre VPS en quelques minutes, avec des données qui restent sur du matériel que vous contrôlez.

Sommaire· Le problème : vos contacts sont éparpillés, et ils fuient1/10
  1. 01Le problème : vos contacts sont éparpillés, et ils fuient
  2. 02Ce que Monica CRM fait, et ce qu'il ne fait pas
  3. 03Monica CRM vs les alternatives open source
  4. 04Architecture : PHP/Laravel, MariaDB, Redis — trois conteneurs, un VPS
  5. 05Déployer Monica CRM sur ServOrbit : étape par étape
  6. 06À qui Monica sur un VPS profite
  7. 07Confidentialité et propriété des données
  8. 08Dépannage : les erreurs les plus fréquentes
  9. 09Se connecter la première fois
  10. 10Mettre à jour Monica vers une nouvelle version

Le problème : vos contacts sont éparpillés, et ils fuient

Demandez-vous où vivent réellement vos données de contact. Votre téléphone se synchronise avec iCloud ou Google. Votre fournisseur de messagerie connaît chaque nom de votre boîte. Votre abonnement CRM consigne chaque note dans une base située dans une juridiction que vous ne choisissez pas. Et aucun de ces outils ne répond à la question la plus humaine : quand avez-vous parlé à cette personne pour la dernière fois, et de quoi ?

Monica CRM a été conçu pour y répondre. Ce n'est pas un outil commercial : ni pipeline, ni scoring, ni prévision de chiffre d'affaires. C'est un gestionnaire de relations personnelles — un journal privé des gens qui comptent, déployé sur un serveur qui vous appartient.

Ce que Monica CRM fait, et ce qu'il ne fait pas

Monica organise vos relations comme le ferait quelqu'un d'attentif. Chaque contact dispose d'une fiche qui rassemble :

- Un journal complet des échanges — chaque note, appel, courriel et rendez-vous que vous avez consigné, dans l'ordre chronologique.
- Des rappels — anniversaires, dates marquantes, échéances personnalisées, invitations récurrentes à reprendre contact.
- Le contexte personnel — nature de la relation (ami, collègue, mentor), métier, entreprise, comptes sociaux, champs libres que vous définissez.
- Les événements de vie — fiançailles, naissance, changement de poste, hospitalisation ; les jalons qui donnent une épaisseur à une relation.
- Les idées de cadeaux — une liste par contact, et la trace de ce que vous avez réellement offert.

Ce que Monica ne fait pas : il ne suit ni affaires ni chiffre d'affaires, ne note pas les prospects et n'offre pas d'agenda partagé d'équipe. Pour un CRM d'entreprise, Twenty — également au catalogue ServOrbit — est plus adapté. Monica s'occupe de la couche humaine.

Monica CRM vs les alternatives open source

Faites défiler le tableau

Monica CRMHumHub ContactsTwenty CRMDuet
Type de données géréesRelations personnelles et professionnelles : notes, rappels, événements de vie, idées de cadeauxRéseau social interne : profils, groupes, espace de travail collaboratifCRM commercial : contacts, deals, pipelines de vente, objets personnalisésContacts personnels minimaliste : fiches, tags, notes — sans gestion d'équipe
LicenceAGPL-3.0AGPL-3.0AGPL-3.0MIT
Prérequis serveur2 vCPU / 4 GB RAM — PHP, MariaDB, Redis4 vCPU / 8 GB RAM — PHP, MariaDB, Elasticsearch recommandé4 vCPU / 8 GB RAM — Node.js, PostgreSQL, Redis1 vCPU / 1 GB RAM — SQLite, Go binaire unique
Cas d'usage principalSuivi de réseau personnel, rappels humains, conformité RGPD des données de contactIntranet et réseau social d'entreprise, partage de connaissanceGestion de la relation client, automatisations commerciales, API GraphQL pour intégrationsCarnet d'adresses léger, usage solo uniquement

Architecture : PHP/Laravel, MariaDB, Redis — trois conteneurs, un VPS

La recette du catalogue ServOrbit déploie Monica sous la forme de trois conteneurs Docker :

1. monicahq/monicahq:apache — l'application PHP/Laravel et son serveur Apache embarqué, exposée sur le port 8080 de l'hôte.
2. mariadb:11 — la base relationnelle qui stocke contacts, échanges et rappels.
3. redis:7-alpine — le cache mémoire pour les sessions et les tâches en file.

MariaDB est la seule base officiellement prise en charge par Monica v4. L'application joue ses migrations toute seule au premier démarrage : il n'y a pas d'étape séparée, et le premier compte inscrit devient administrateur.

Empreinte mémoire au repos : moins de 600 Mo, ce qui laisse de la marge au système et à Docker sur le VPS Start (4 GB).

Déployer Monica CRM sur ServOrbit : étape par étape

  1. Commandez un VPS sous Ubuntu 24.04

    Le VPS Start (2 vCPU, 4 GB) suffit. Le processus PHP de Monica consomme moins de 256 Mo ; MariaDB ajoute 150 à 300 Mo. Ses 4 GB laissent de la marge, même pour un carnet volumineux (plus de 10 000 contacts) ou une petite équipe. Choisissez Ubuntu 24.04 LTS — c'est le système ciblé par le playbook de déploiement.

  2. Déployez depuis le catalogue ServOrbit

    Ouvrez votre espace client ServOrbit, allez dans Marketplace → ERP & Gestion d'Entreprise → Monica CRM, puis cliquez sur Déployer. Le playbook génère automatiquement un docker-compose.yml avec les variables d'environnement essentielles :

    MONICA_APP_KEY=base64:<clé-générée>
    DB_HOST=db
    DB_DATABASE=monica
    DB_USERNAME=monica
    DB_PASSWORD=<mot-de-passe-généré>
    CACHE_DRIVER=redis
    SESSION_DRIVER=redis
    QUEUE_CONNECTION=redis
    REDIS_HOST=redis

    Le playbook récupère les trois images, démarre la pile et attend le healthcheck. L'interface répond en moins d'une minute.

  3. Créez votre compte administrateur immédiatement

    Ouvrez http://<ip-de-votre-vps>:8080 dans un navigateur et inscrivez-vous. Le premier compte créé reçoit automatiquement les droits d'administration. Faites-le dès que l'interface est accessible : l'inscription reste ouverte à tous jusqu'à ce qu'un administrateur la restreigne dans Paramètres → Administration.

  4. Importez vos contacts existants

    Allez dans Réglages → Import et déposez un fichier vCard (‎.vcf) exporté depuis votre téléphone, Google Contacts, Contacts d'Apple ou Outlook. Monica déduplique sur l'adresse de courriel et associe les champs automatiquement. L'import CSV avec correspondance de champs est également pris en charge. Pour un export Google Contacts, choisissez le format vCard 3.0.

  5. Configurez SMTP pour recevoir vos rappels par courriel

    Sans SMTP, les rappels ne sont visibles que dans le tableau de bord. Pour les recevoir dans votre boîte, ajoutez ces variables dans le fichier d'environnement de votre instance (éditable depuis l'espace client ou via SSH) :

    MAIL_MAILER=smtp
    MAIL_HOST=smtp.votre-relais.com
    MAIL_PORT=587
    [email protected]
    MAIL_PASSWORD=votre-mot-de-passe
    MAIL_ENCRYPTION=tls
    [email protected]
    MAIL_FROM_NAME="Monica CRM"

    Relais compatibles : AWS SES, Mailgun, Brevo (ex-Sendinblue), Postmark. Redémarrez le conteneur après modification (docker compose restart app).

  6. Posez vos premiers rappels

    Ouvrez une fiche contact, cliquez sur Ajouter un rappel et choisissez une date, ponctuelle ou récurrente (hebdomadaire, mensuelle, annuelle). Écrivez une note courte : « appeler pour prendre des nouvelles », « envoyer une carte d'anniversaire ». Monica remonte chaque jour les rappels échus sur le tableau de bord et, si SMTP est configuré, les envoie aussi par courriel.

  7. Planifiez les sauvegardes MariaDB

    La base MariaDB est le seul état persistant de Monica. Pour la sauvegarder, deux approches :

    Via Backrest (recommandé) : le catalogue ServOrbit propose Backrest — une interface web pour restic — capable de sauvegarder le volume Docker de MariaDB vers Backblaze B2, Wasabi ou S3, sur une planification, avec déduplication et chiffrement.

    Dump manuel : exécutez depuis l'hôte :
    docker exec monica-db mysqldump -u monica -p<mot-de-passe> monica > monica-$(date +%F).sql

    Sauvegardez aussi le fichier .env et le volume monica_storage (avatars et pièces jointes importées).

À qui Monica sur un VPS profite

  • Indépendants et consultants — vous consignez chaque échange client et retrouvez, six mois plus tard, ce qui avait été dit, sans payer un abonnement CRM.
  • Fondateurs et personnes très en réseau — investisseurs, conseillers, partenaires et candidats : toute l'orbite de relations dont vit une jeune entreprise.
  • Professions soumises au RGPD (droit, santé, finance) — vous ne pouvez pas déposer d'informations client chez un prestataire étranger.
  • Quiconque tient à ses proches — rappels d'anniversaire, suivi des événements de vie et listes de cadeaux font la différence entre celui qui se souvient et celui qui oublie.

Confidentialité et propriété des données

Monica est publié sous licence AGPL-3.0. La version auto-hébergée n'embarque ni télémétrie, ni appel vers l'éditeur, ni service d'analyse. Votre carnet, votre historique d'échanges et vos notes personnelles restent dans l'instance MariaDB qui tourne sur votre VPS.

Les sauvegardes régulières relèvent de l'exploitant. Le catalogue ServOrbit propose Backrest — une interface web pour restic — capable de sauvegarder le volume MariaDB de Monica vers Backblaze B2, Wasabi ou S3, sur une planification, avec déduplication et chiffrement.

Pour activer l'envoi de courriels, posez MAIL_MAILER=smtp dans l'environnement et pointez Monica vers un relais transactionnel (AWS SES, Mailgun, Brevo). Monica enverra alors les rappels et les liens de réinitialisation de mot de passe. Sans SMTP, les deux fonctions restent accessibles depuis le tableau de bord — elles ne sont simplement pas remises dans votre boîte.

Dépannage : les erreurs les plus fréquentes

Erreur 1 : la migration de base de données échoue au premier démarrage

Message observé dans les logs (docker compose logs app) :

Illuminate\Database\QueryException: SQLSTATE[HY000] [2002] Connection refused

Cause : le conteneur app a démarré avant que MariaDB ne soit prête à accepter des connexions. Solution : ajoutez une condition depends_on avec service_healthy dans votre docker-compose.yml, ou attendez 20 à 30 secondes et redémarrez le seul conteneur applicatif : docker compose restart app. Monica rejouera les migrations automatiquement.

Erreur 2 : les rappels par courriel ne partent pas

Message observé dans le tableau de bord Monica (Réglages → Journaux) ou dans les logs du worker :

Swift_TransportException: Connection could not be established with host smtp.example.com [Connection refused #111]

Cause : MAIL_MAILER non défini ou relais SMTP inaccessible depuis le conteneur. Vérifiez que le pare-feu du VPS autorise le port 587 en sortie (ufw allow out 587), et que les variables MAIL_HOST, MAIL_PORT, MAIL_USERNAME et MAIL_PASSWORD sont bien présentes dans l'environnement. Après correction, redémarrez le worker : docker compose restart worker.

Erreur 3 : session expirée en boucle après l'installation

Symptôme : Monica redirige vers la page de connexion à chaque action, même après un login réussi.
Cause : APP_KEY manquante ou invalide — la clé AES-256 qui chiffre les cookies de session. Elle doit être présente sous la forme base64:<chaîne-de-44-caractères>. Si elle est vide ou générée incorrectement, les sessions ne peuvent pas être déchiffrées.
Solution : depuis le conteneur app, générez une clé valide et mettez-la à jour :

docker compose exec app php artisan key:generate --show

Copiez la valeur retournée dans APP_KEY de votre .env, puis redémarrez la pile complète : docker compose down && docker compose up -d.

Se connecter la première fois

  1. Se connecter la première fois

    Ouvrez l'URL et créez votre compte via le formulaire d'inscription : ce premier compte devient l'administrateur de l'instance. Faites-le tout de suite, l'inscription reste ouverte.

Mettre à jour Monica vers une nouvelle version

Monica suit un cycle de versions régulier sur l'image Docker monicahq/monicahq. Pour mettre à jour : tirez la nouvelle image, arrêtez la pile, redémarrez — les migrations se jouent automatiquement au démarrage.

docker compose pull
docker compose down
docker compose up -d
docker compose logs -f app

Vérifiez dans les logs que la ligne Database is up to date ou Migrated successfully apparaît avant d'utiliser l'application. En cas de doute, faites un dump MariaDB avant la mise à jour.

Vos relations, votre serveur

Déployez Monica CRM sur un VPS ServOrbit et gardez chaque contact, chaque échange et chaque rappel sur une infrastructure qui vous appartient — sans abonnement et sans dépendance au nuage.

Besoin d'aide ?

Parcourez notre centre d'aide et notre FAQ, ou contactez notre équipe — rappel, WhatsApp ou e-mail. Support en français, anglais et arabe.

Écrire sur WhatsApps'ouvre dans un nouvel onglet