Comment installer Carbonio CE - Votre propre Google Workspace 100% libre en 10 étapes
Marre de laisser Google fouiller dans vos mails comme un chat de gouttière dans une poubelle ? Envie de claquer la porte au nez de Microsoft 365 tout en gardant des outils collaboratifs cools ? Alors c’est l’heure d’installer Carbonio CE, votre serveur de mail badass et open source qui fait tout ce que les géants du web font, mais chez vous et sans vous stalker!
Que vous soyez un admin sys qui veut reprendre le contrôle de ses données, un geek qui veut héberger la messagerie de son asso, ou juste quelqu’un qui en a ras-le-bol de se faire espionner par Big Brother, alors ce tuto est pour vous ! En moins d’une heure, vous aurez ainsi votre propre Google Workspace-killer qui vous appartiendra à 100%, sans abonnement mensuel ni monétisation de vos données.
Mais avant de plonger dans le terminal, je vais d’abord vous lister les avantage à adopter cette solution :
- Indépendance numérique : Adieu Google/Microsoft qui lisent vos mails pour vous vendre des trucs
- Solution complète : Mail, calendrier, contacts, chat, visio, édition de docs, stockage de fichiers… tout ça dans un seul produit open source
- Autonomie totale : Vous possédez vos données et vous contrôlez tout de A à Z
- Économies : Fini les abonnements mensuels qui vous saignent pour des services collaboratifs
Donc si vous étiez en train de vous demander “Mais POURQUOI je paie 6 €/mois et par utilisateur à Google alors que je pourrais auto-héberger tout ça ?”
Et bien la réponse est simple : Parce que vous n’aviez pas encore trouvé ce tuto ! mdr !
Prérequis - Ce qu’il vous faut pour démarrer
Avant de transformer votre serveur en machine de guerre anti-GAFAM, assurez-vous donc d’avoir:
- Un serveur Ubuntu 20.04 ou 22.04 (marche aussi sous RedHat mais mon tuto n’ira pas)
- Au moins 8 Go de RAM, sinon, ça va ramer
- Au moins 50 Go d’espace disque parce que les pièces jointes dans les mails, ça prend de la place…
- Un nom de domaine configuré pour pointer vers votre serveur (genre mail.votredomaine.fr)
- Et un accès root au serveur
1. Préparer votre système
Commençons par configurer correctement le nom d’hôte de votre serveur. Remplacez exemple.fr
par votre nom de domaine et xx.xx.xx.xx
par l’adresse IP publique de votre serveur:
# Définir le nom d'hôte
sudo hostnamectl set-hostname mail.votredomaine.fr
# Modifier le fichier hosts
sudo echo -e "127.0.0.1 localhost\nxx.xx.xx.xx mail.votredomaine.fr mail" > /etc/hosts
Cette étape est cruciale, car sans un nom d’hôte correct, votre serveur sera plus confus qu’un aspirateur robot devant un escalier. Votre nom de domaine doit également être configuré sur l’IP de votre serveur avec également un enregistrement MX.
Avant de passer à la suite, sachez que Zextras propose un script qui est censé tout installer facilement mais je n’ai jamais réussi à le faire fonctionner correctement, donc je suis parti sur une bonne vieille install manuelle.
2. Installer et configurer PostgreSQL
Carbonio utilise PostgreSQL donc installons cette merveille, mais attention, si vous êtes root sur la machine, n’utilisez pas de sudo :
Pour Ubuntu 22.04
# Ajouter le dépôt PostgreSQL
sudo sh -c 'echo "deb https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
sudo wget -O- "https://www.postgresql.org/media/keys/ACCC4CF8.asc" | sudo gpg --dearmor | sudo tee /usr/share/keyrings/postgres.gpg > /dev/null
sudo chmod 644 /usr/share/keyrings/postgres.gpg
sudo sed -i 's/deb/deb [signed-by=\/usr\/share\/keyrings\/postgres.gpg] /' /etc/apt/sources.list.d/pgdg.list
# Installer PostgreSQL
sudo apt update
sudo apt install postgresql-16
Oui, cette commande est plus longue que la liste d’excuses de votre FAI quand votre fibre plante, mais elle en vaut la peine!
Configurer PostgreSQL
# Créer un mot de passe pour l'administrateur de la base de données
sudo read -s -p "Entrez un mot de passe pour la base de données: " DB_ADM_PWD
# Créer un rôle Carbonio dans PostgreSQL
sudo su - postgres -c "psql --command=\"CREATE ROLE carbonio_adm WITH LOGIN SUPERUSER encrypted password '$DB_ADM_PWD';\""
# Créer la base de données
sudo su - postgres -c "psql --command=\"CREATE DATABASE carbonio_adm owner carbonio_adm;\""
# Configurer PostgreSQL pour accepter les connexions
sudo su - postgres -c "psql --command=\"ALTER SYSTEM SET listen_addresses TO '*';\""
sudo su - postgres -c "psql --command=\"ALTER SYSTEM SET max_connections = 500;\""
sudo su - postgres -c "psql --command=\"ALTER SYSTEM SET shared_buffers = 5000;\""
sudo echo "host all all 0.0.0.0/0 md5" >> /etc/postgresql/16/main/pg_hba.conf
sudo systemctl restart postgresql
Notez que vous pouvez remplacer 0.0.0.0/0
par l’adresse de votre réseau local pour limiter les accès.
3. Configurer le dépôt Carbonio
On va maintenant dire à Ubuntu où trouver les paquets Carbonio :
# Créer le fichier de dépôt
sudo echo "deb [arch=amd64 signed-by=/usr/share/keyrings/zextras.gpg] https://repo.zextras.io/release/ubuntu jammy main" > /etc/apt/sources.list.d/zextras.list
# Télécharger et installer la clé GPG
sudo wget -O- "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x5dc7680bc4378c471a7fa80f52fd40243e584a21" | gpg --dearmor | sudo tee /usr/share/keyrings/zextras.gpg > /dev/null
sudo chmod 644 /usr/share/keyrings/zextras.gpg
4. Installer les paquets Carbonio
Maintenant, installons Carbonio :
# Mettre à jour les dépôts
sudo apt update && sudo apt upgrade -y
# Installer tous les paquets nécessaires (accrochez-vous, c'est la liste de courses la plus épique que vous verrez aujourd'hui)
sudo apt install service-discover-server \
carbonio-directory-server carbonio-proxy carbonio-webui \
carbonio-files-ui carbonio-mta carbonio-mailbox-db \
carbonio-appserver carbonio-user-management \
carbonio-files-ce carbonio-files-public-folder-ui \
carbonio-files-db carbonio-tasks-ce carbonio-tasks-db \
carbonio-tasks-ui carbonio-storages-ce carbonio-preview-ce \
carbonio-docs-connector-ce carbonio-docs-connector-db \
carbonio-docs-editor carbonio-prometheus \
carbonio-message-broker carbonio-message-dispatcher \
carbonio-message-dispatcher-db carbonio-ws-collaboration-ce \
carbonio-ws-collaboration-db carbonio-ws-collaboration-ui \
carbonio-videoserver-ce carbonio-catalog
Cette commande installe tellement de composants que je vous invite à aller vous chercher un café !
5. Configurer Carbonio
Maintenant que tous les morceaux sont là, on va les assembler.
Bootstrap initial - Le premier battement de cœur
sudo carbonio-bootstrap
Appuyez sur y
pour appliquer la configuration, puis sur Entrée
pour continuer.
Configurer Carbonio Mesh - Le système nerveux central
Carbonio Mesh permet la communication entre les composants, un peu comme la Force qui relie tous les Jedi :
sudo service-discover setup-wizard
Suivez les instructions et:
- Entrez l’adresse IP et le masque de réseau de votre serveur
- Créez un mot de passe fort pour le service Mesh (16 caractères minimum, avec minuscules, majuscules, chiffres et caractères spéciaux)
Important : Conservez absolument ce mot de passe !!!
6. Configurer les bases de données
Maintenant on va configurer les bases de données comme ceci :
# Configuration de la base de données Carbonio Files
sudo PGPASSWORD=$DB_ADM_PWD carbonio-files-db-bootstrap carbonio_adm 127.0.0.1
# Configuration de la base de données Carbonio Tasks
sudo PGPASSWORD=$DB_ADM_PWD carbonio-tasks-db-bootstrap carbonio_adm 127.0.0.1
# Configuration de la base de données Carbonio Collaboration
sudo PGPASSWORD=$DB_ADM_PWD carbonio-ws-collaboration-db-bootstrap carbonio_adm 127.0.0.1
# Configuration de la base de données du dispatcher de messages
sudo PGPASSWORD=$DB_ADM_PWD carbonio-message-dispatcher-db-bootstrap carbonio_adm 127.0.0.1
sudo PGPASSWORD=$DB_ADM_PWD carbonio-message-dispatcher-migration carbonio_adm 127.78.0.10 20000
Oui, c’est beaucoup de bases de données mais c’est ultra organisé.
A cette étape, appliquez ensuite obligatoirement les configurations en attente comme ceci :
sudo pending-setups -a
7. Redémarrer les services - Le grand reset
# Redémarrer les services en tant qu'utilisateur zextras
sudo su - zextras -c "zmcontrol stop"
sudo su - zextras -c "zmcontrol start"
C’est comme redémarrer un Windows, ça résoudra 80% des problèmes magiquement.
8. Activer les fonctionnalités de messagerie instantanée
Les emails, c’est cool mais c’est une technologie un peu has been maintenant. C’est pourquoi on va en plus activer la messagerie instantanée !
# Activer le chat pour tous les utilisateurs
sudo su - zextras -c "carbonio prov mc default carbonioFeatureWscEnabled TRUE"
# Redémarrer les services associés
sudo systemctl restart carbonio-message-broker
sudo systemctl restart carbonio-message-dispatcher
sudo systemctl restart carbonio-ws-collaboration
sudo systemctl restart carbonio-videoserver
Maintenant vous pouvez chatter comme sur Slack ou Teams, mais sans envoyer vos conversations boulot à des entreprises américaines qui veulent vous vendre des trucs.
9. Configurer le pare-feu
On va maintenant ouvrir les ports nécessaires dans votre pare-feu :
sudo apt install ufw
sudo ufw allow 22/tcp
# SSH
sudo ufw allow 80/tcp
# HTTP
sudo ufw allow 443/tcp
# HTTPS
sudo ufw allow 25/tcp
# SMTP
sudo ufw allow 587/tcp
# SMTP Submission
sudo ufw allow 143/tcp
# IMAP
sudo ufw allow 993/tcp
# IMAPS
sudo ufw allow 110/tcp
# POP3
sudo ufw allow 995/tcp
# POP3S
sudo ufw allow 6071/tcp
# Le port de l'admin
sudo ufw enable
10. Accéder à l’interface Web - Enfin le moment de vérité
Une fois l’installation terminée, vous pouvez accéder à:
- Interface utilisateur:
https://mail.votredomaine.fr
(le beau webmail pour vos utilisateurs) - Interface d’administration:
https://mail.votredomaine.fr:6071
Lors de la première connexion à l’interface d’administration, utilisez:
- Nom d’utilisateur :
[email protected]
(remplacez par votre domaine) - Mot de passe : celui que le script vous a fourni lors de l’installation.
Si vous ne l’avez pas noté, vous pouvez lister les comptes admin comme ceci :
sudo su - zextras -c "zmprov -l gaaa"
Et changer le mot de passe du compte admoin de votre choix comme ceci :
sudo su - zextras -c "zmprov sp [[email protected]](mailto:[email protected]) '<mot de passe>'"
Conseils post-installation
Je vous donne quand même quelques conseils de trucs à faire après l’install :
- Changez immédiatement le mot de passe administrateur depuis l’interface d’administration
- Configurez un certificat SSL valide pour une connexion sécurisée (Let’s Encrypt est votre ami)
- Créez des comptes utilisateurs pour commencer à utiliser le système
- Configurez les paramètres DKIM pour améliorer la délivrabilité des emails (sinon vos mails finiront dans les spams plus souvent que l’héritage d’un vieil oncle africain)
Voilà, j’espère que j’aurais réussi à vous accompagner jusque là ! Encore merci à Zextras pour sa confiance et amusez-vous bien avec votre nouveau serveur de messagerie.