introduction
Dans ce didacticiel, nous installerons https://mailpile.is [Mailpile], un client Webmail rapide, sécurisé et esthétique sur Ubuntu 14.04.
image: https: //assets.digitalocean.com/articles/mailpile/mailpile-home.png [Écran de lancement initial de Mailpile]
Un client de messagerie Web tel que Mailpile est un excellent moyen de vous assurer que vous pouvez accéder à votre messagerie depuis n’importe où, sans avoir à configurer un client de messagerie standard. Mailpile n’est qu’un client de messagerie, c’est-à-dire qu’il ne gère que les comptes de messagerie existants.
À la fin de ce didacticiel, vous disposerez d’un Droplet entièrement fonctionnel exécutant Mailpile avec Nginx en tant que proxy inverse.
Gardez à l’esprit tout au long de ce didacticiel que * Mailpile est toujours en version bêta *, ce qui signifie que vous risquez de rencontrer des bugs et d’autres difficultés en cours de route. Cela ne sauvegarde pas vos informations entre les sessions. (C’est-à-dire que vous devrez ressaisir les détails de votre compte chaque fois que vous redémarrez le service Mailpile.)
Il manque également un moyen facile de fonctionner en tant que service. Par défaut, il ne s’exécute qu’en tant que script interactif dans votre session SSH. Nous avons inclus un script Upstart qui utilise Screen pour l’exécuter en arrière-plan. Vous pouvez donc laisser le client de messagerie Web activé aussi longtemps que vous le souhaitez. Ce n’est pas recommandé pour la production, cependant.
Conditions préalables
Avant de commencer, nous aurons besoin de quelques choses:
-
Une Droplet sous * Ubuntu 14.04 *. Nous recommandons au moins 512 Mo de RAM pour une configuration Mailpile ne gérant que quelques boîtes aux lettres. Si vous attendez plus que quelques utilisateurs, vous pouvez augmenter la taille
-
Un utilisateur avec un accès root. Voir this tutorial pour des instructions sur la configuration d’un utilisateur avec accès sudo sur Ubuntu 14.04
-
Un certificat SSL pour garder votre courrier en toute sécurité. Vous pouvez en acheter un auprès de https://www.namecheap.com [Namecheap] ou d’une autre autorité de certification. Si vous ne voulez pas dépenser d’argent, vous pouvez également https://www.digitalocean.com/community/tutorials/how-to-create-an-ssl-certificate-on-nginx-for-ubuntu-14- 04 [créez le vôtre pour l’utiliser avec Nginx] ou procurez-vous-en un sur StartSSL
-
Un nom de domaine
-
Si vous avez un domaine prêt, créez un enregistrement A pour pointer vers votre Droplet (ex. mailpile.). Pour obtenir des instructions sur la configuration des enregistrements DNS avec DigitalOcean, voir tutoriel sur le DNS
Prenez note de votre certificat SSL et de l’emplacement des clés. Si vous avez suivi le didacticiel pour créer des certificats à utiliser avec Nginx, ils seront situés à l’adresse suivante:
-
/etc/nginx/ssl/nginx.crt
-
/etc/nginx/ssl/nginx.key
C’est ça! Si tout est prêt, passez à la première étape.
Étape 1 - Téléchargement de la pile de courrier
Dans cette section, nous préparerons notre environnement de travail pour l’installation de Mailpile.
Nous devons d’abord nous connecter à notre Droplet. Si vous n’avez jamais utilisé SSH, voir cet tutoriel sur SSH. Assurez-vous de vous connecter à un utilisateur ayant un accès sudo.
Nous devons d’abord installer Git. Nous allons utiliser Git pour cloner la source Mailpile de GitHub.
Mettre à jour les listes de paquets d’Ubuntu:
sudo apt-get update
Installez Git:
sudo apt-get install git
Maintenant que Git est installé, changeons notre répertoire en un endroit où nous pouvons travailler. Dans ce cas, nous utiliserons le répertoire + / var +
:
cd /var
Cloner Mailpile:
sudo git clone https://github.com/mailpile/Mailpile.git
Nous avons besoin de la commande sudo pour permettre à Git de créer un répertoire à l’intérieur de + / var +
, qui est un répertoire système.
Nous sommes presque prêts à lancer Mailpile. Passez à l’étape 2 pour commencer à répondre à d’autres exigences.
Étape 2 - Configuration de la configuration requise pour Mailpile
Dans cette section, les exigences de Mailpile seront installées et configurées.
Commençons par installer pip. pip est un gestionnaire de paquets Python avec quelques astuces:
sudo apt-get -y install python-pip
pip nous permettra d’installer plus facilement les exigences de Mailpile. Vous verrez comment dans une minute, mais nous devons d’abord installer quelques éléments supplémentaires.
Ensuite, nous devons installer LXML. lxml est une exigence de Mailpile qui devrait normalement être installée par pip, mais nous avons constaté que cela provoquait l’échec de l’installation pour des raisons inconnues. Pour cette raison, nous allons l’installer avec apt-get:
sudo apt-get install python-lxml
Juste quelques paquets supplémentaires doivent être installés manuellement, y compris GnuPG et OpenSSL. Celles-ci créeront un environnement plus sécurisé pour notre courrier. Certains d’entre eux seront probablement installés par défaut, mais nous allons nous en assurer au cas où:
sudo apt-get install gnupg openssl libssl-dev
Maintenant changez dans le répertoire de Mailpile:
cd /var/Mailpile
Nous sommes maintenant prêts à exploiter les capacités de pip pour installer le reste de nos besoins.
Mailpile inclut un fichier appelé + Requirements.txt +
, qui est en gros une liste d’exigences. pip a la capacité de parcourir cette liste et d’installer automatiquement chacun d’entre eux. Faisons donc exactement cela:
sudo pip install -r /var/Mailpile/requirements.txt
Vous avez terminé. Toutes les conditions requises ont été installées et Mailpile est prêt à être utilisé. Mais avant cela, nous devons prendre quelques mesures supplémentaires pour renforcer notre sécurité.
Étape 3 - Configuration d’un proxy inverse avec Nginx
Dans cette section, nous allons configurer Nginx en tant que proxy inverse pour Mailpile. Cela sécurisera davantage Mailpile, nous permettra d’utiliser un certificat SSL et facilitera l’accès au client de messagerie Web.
Avec Nginx, au lieu d’accéder à Mailpile en visitant + https: //: 33411 +
, vous pouvez utiliser + https: // mailpile. +
. Commençons!
Tout d’abord, nous aurons besoin de l’installation de Nginx car c’est ce qui fera le gros du travail. Alors prenons Nginx avant tout:
sudo apt-get install nginx
Maintenant que Nginx est installé, nous pouvons configurer le proxy inverse. Modifions la configuration de Nginx pour lui dire de router notre sous-domaine vers Mailpile.
Nous voulons supprimer le fichier de configuration Nginx d’origine car il contient une foule de choses dont nous n’avons pas besoin. Mais d’abord, faisons une sauvegarde. Commencez par créer le répertoire:
sudo mkdir /home/backup
Maintenant, faites la sauvegarde:
sudo cp -b /etc/nginx/sites-enabled/default /home/backup
Maintenant, nous sommes libres de supprimer le fichier sans conséquences:
sudo rm /etc/nginx/sites-available/default
Assurons-nous qu’il a réellement disparu:
ls /etc/nginx/sites-available/
Si vous venez d’installer Nginx, la commande ne devrait rien renvoyer.
Maintenant, créez un nouveau fichier:
sudo nano /etc/nginx/sites-available/
Il est maintenant temps de configurer le proxy inverse. Commençons par la première partie. Ajoutez ce qui suit au début du fichier (nous expliquerons ce qu’il fait dans une seconde):
/ etc / nginx / sites-available / default
server {
listen 80;
return 301 https://$host$request_uri;
}
Cela indique à Nginx de rediriger les demandes qu’il reçoit vers HTTPS. Mais en réalité, il va essayer de rediriger vers quelque chose qui n’existe pas encore. Créons un endroit où aller:
/ etc / nginx / sites-available / default
server {
listen 443;
server_name mailpile.;
ssl_certificate ;
ssl_certificate_key ;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/mailpile.access.log;
Remarque: assurez-vous que votre certificat et votre clé se trouvent dans + / etc / nginx / ssl / nginx.crt +
et + / etc / nginx / ssl / nginx.key +
. Sinon, mettez à jour les chemins situés à côté de + ssl_certificate +
et + + ssl_certificate_key +
pour qu’ils correspondent à votre certificat et à l’emplacement de la clé.
Ce que nous venons d’entrer indique à Nginx d’écouter sur le port 443 (les sites Web de port avec accès SSL, par opposition au port 80), d’appliquer notre certificat SSL et d’activer SSL. Nous devons maintenant servir quelque chose à cette nouvelle URL HTTPS vers laquelle nous avons redirigé et où SSL est activé. Nous le ferons ensuite.
Ajoutez ce qui suit sous les deux blocs précédents:
/ etc / nginx / sites-available / default
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Fix the "It appears that your reverse proxy set up is broken" error.
proxy_pass http://localhost:33411;
proxy_read_timeout 90;
proxy_redirect http://localhost:33411 https://webmail.;
}
}
Lorsque vous avez terminé, le fichier de configuration terminé doit ressembler à ceci:
/ etc / nginx / sites-available / default
server {
listen 80;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name mailpile.;
ssl_certificate ;
ssl_certificate_key ;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/mailpile.access.log;
location / {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Fix the "It appears that your reverse proxy set up is broken" error.
proxy_pass http://localhost:33411;
proxy_read_timeout 90;
proxy_redirect http://localhost:33411 https://webmail.;
}
}
Si vous n’avez pas remplacé le site par défaut, mais créé un fichier de blocage de serveur avec un nom différent, vous devez l’activer avec une commande comme celle-ci:
sudo ln -s /etc/nginx/sites-available/ /etc/nginx/sites-enabled/
Le site par défaut devrait déjà être activé.
Veuillez lire cet article sur les blocs de serveur Nginx si vous souhaitez en savoir plus.
Maintenant, redémarrez Nginx pour recharger la configuration:
sudo service nginx restart
C’est ça. Maintenant, Mailpile est prêt à être atteint à + https: // mailpile. +
. Vous devrez peut-être accepter l’avertissement SSL si vous avez utilisé un certificat auto-signé.
De plus, l’accès à + http: // mailpile. +
Redirigera automatiquement vers la version SSL du site.
Nous n’avons pas encore lancé Mailpile. Par conséquent, si vous consultez ces URL à présent, vous verrez une erreur 502 Bad Gateway. La raison la plus courante de cette erreur est que l’application Mailpile n’est pas en cours d’exécution.
Passez à l’étape 4 pour exécuter Mailpile.
Étape 4 - Configuration et exécution de Mailpile
Dans cette section, nous allons démarrer Mailpile et le configurer pour qu’il fonctionne avec notre proxy inverse.
Assurez-vous que nous sommes dans le bon répertoire:
cd /var/Mailpile
Pour exécuter Mailpile, entrez:
./mp
Vous pouvez commencer à explorer Mailpile via la ligne de commande ou l’interface Web dès maintenant.
Mailpile devrait maintenant être actif à + https: // mailpile. +
, Et même rediriger vers HTTPS à l’aide de votre certificat SSL. Toutes nos félicitations!
Vous pouvez utiliser + CTRL-C +
puis taper + quit +
pour quitter Mailpile.
Facultatif - Transformer Mailpile en service avec Upstart
Pour vous assurer que Mailpile est toujours actif et prêt à gérer votre courrier, vous pouvez convertir Mailpile en un service à l’aide de Upstart. Suivez this ce merveilleux tutoriel pour obtenir des instructions.
Depuis que Mailpile est en version bêta, il n’a pas encore été correctement démonisé. Il nécessite également une ligne de commande interactive, vous ne pouvez donc pas exécuter directement le script Python. Ce script Upstart est un moyen pratique d’utiliser l’application Python en tant que service via https://www.digitalocean.com/community/tutorials/how-to-install-and-use-screen-on-an-ubuntu- serveur cloud [Ecran]:
sudo nano /etc/init/mailpile.conf
/etc/init/mailpile.conf
description "Mailpile Webmail Client"
author "Sharon Campbell"
start on filesystem or runlevel [2345]
stop on shutdown
script
echo $$ > /var/run/mailpile.pid
exec /usr/bin/screen -dmS mailpile_init /var/Mailpile/mp
end script
pre-start script
echo "[`date`] Mailpile Starting" >> /var/log/mailpile.log
end script
pre-stop script
rm /var/run/mailpile.pid
echo "[`date`] Mailpile Stopping" >> /var/log/mailpile.log
end script
Ce script démarrera Mailpile et le conservera aussi longtemps que la session Screen sera en cours. La session Screen ne s’arrête pas correctement. Vous devez donc arrêter la session Screen manuellement si vous souhaitez arrêter Mailpile.
Avec ce script, vous pouvez démarrer Mailpile avec:
sudo start mailpile
Cela entraînera une session Screen appelée * .mailpile_init * appartenant à l’utilisateur * root *.
Cependant, les autres commandes Upstart ne fonctionneront pas. Vous devrez mettre fin à la session Screen manuellement. De plus, si le service se bloque ou est arrêté, vous devrez le redémarrer et réinitialiser toutes vos préférences.
Étape 4 - Démarrer avec Mailpile
Cette section couvre l’utilisation de base de Mailpile depuis l’interface webmail à l’adresse + https: // mailpile. +
.
Voici l’écran que vous verrez lorsque vous visitez Mailpile pour la première fois.
image: https: //assets.digitalocean.com/articles/mailpile/mailpile-home.png [Écran de lancement initial de Mailpile]
Choisissez une langue dans le menu déroulant.
Cliquez sur le bouton * Commencer *.
Créez un nouveau mot de passe, puis entrez-le deux fois.
Cliquez sur le bouton * Commencer à utiliser Mailpile *.
Écran de connexion: veuillez saisir le mot de passe que vous venez de créer.
image: https: //assets.digitalocean.com/articles/mailpile/YH043iM.png [Écran de connexion]
Ajoutez un nouveau compte avec le bouton * + Ajouter un compte *.
image: https: //assets.digitalocean.com/articles/mailpile/9OPj3Or.png [Ajouter un nouveau compte]
À partir de là, vous devrez entrer les détails d’un compte de messagerie que vous possédez. Vous devez entrer l’adresse email et le mot de passe pour ce compte mail spécifique. Mailpile tentera ensuite de se connecter à votre compte avec ces informations d’identification, ce qui peut prendre quelques minutes.
Vous pouvez également entrer manuellement les informations d’identification * Envoi de courrier * et * Réception de courrier *, si Mailpile ne les détecte pas lui-même.
Une fois que vous vous êtes connecté, cet écran s’affichera:
image: https: //assets.digitalocean.com/articles/mailpile/ueJqKlG.png [Boîte de réception Mailpile]
Essayez d’envoyer et de recevoir un courrier électronique test pour le compte que vous avez ajouté à Mailpile vers un autre compte de messagerie. Si cela réussit, vous saurez que Mailpile fonctionne avec votre adresse électronique.
-
Autres fonctionnalités Mailpile *
Mailpile offre également une grande variété d’options de cryptage:
image: https: //assets.digitalocean.com/articles/mailpile/Nh2yptT.png [Options de cryptage de Mailpile]
Conclusion
Pour commencer à utiliser Mailpile, voir FAQ.
Pour plus d’options de configuration, exécutez + help +
à partir de la ligne de commande Mailpile.
Félicitations, vous avez maintenant votre propre client de messagerie Web, Mailpile, fonctionnant sur une droplet Ubuntu 14.04. Il est entièrement équipé de SSL et redirige automatiquement vers la version HTTPS de votre site. Vous pouvez maintenant configurer vos comptes de messagerie et gérer vos contacts, courrier, catégories et plus encore avec la magnifique interface de Mailpile. S’amuser!