Comment installer Mailpile sur Ubuntu 14.04

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!