Thứ sáu, 21/08/2015 | 00:00 GMT+7

Cách cài đặt Mailpile trên Ubuntu 14.04

Trong hướng dẫn này, ta sẽ cài đặt Mailpile , một ứng dụng webmail nhanh, an toàn và đẹp mắt, trên Ubuntu 14.04.

Màn hình  chạy  ban đầu của Mailpile

Ứng dụng webmail như Mailpile là một cách tốt đảm bảo bạn có thể truy cập email của bạn từ mọi nơi mà không gặp rắc rối khi cấu hình ứng dụng email tiêu chuẩn. Mailpile chỉ là một ứng dụng thư, nghĩa là nó chỉ quản lý các account thư hiện có.

Đến cuối hướng dẫn này, bạn sẽ có một Server đầy đủ chức năng đang chạy Mailpile với Nginx làm Reverse Proxy .

Vui lòng ghi nhớ trong suốt hướng dẫn này Mailpile vẫn đang trong giai đoạn thử nghiệm , nghĩa là bạn có thể gặp phải lỗi và các khó khăn khác trong quá trình sử dụng. Nó không lưu thông tin của bạn giữa các phiên. (Nghĩa là, bạn sẽ phải nhập lại chi tiết account của bạn mỗi khi khởi động lại dịch vụ Mailpile.)

Nó cũng thiếu một cách dễ dàng để chạy như một dịch vụ. Theo mặc định, nó chỉ chạy như một tập lệnh tương tác trong phiên SSH của bạn. Ta đã bao gồm một tập lệnh Upstart sử dụng Screen để chạy nó trong nền, vì vậy bạn có thể để ứng dụng webmail hoạt động bao lâu tùy thích. Tuy nhiên, điều này không được khuyến khích cho production .

Yêu cầu

Trước khi bắt đầu, ta cần một số điều sau:

  • Một server chạy Ubuntu 14.04 . Ta khuyến nghị ít nhất 512 MB RAM để cài đặt Mailpile chỉ xử lý một vài hộp thư. Nếu bạn mong đợi nhiều hơn một vài user , bạn có thể cần tăng kích thước
  • User có quyền truy cập root. Xem hướng dẫn này để biết hướng dẫn về cách cài đặt user có quyền truy cập sudo trên Ubuntu 14.04
  • Chứng chỉ SSL để giữ an toàn cho thư của bạn. Bạn có thể mua một cái từ Namecheap hoặc cơ quan cấp certificate khác. Nếu không muốn chi tiêu, bạn cũng có thể tự tạo để sử dụng với Nginx hoặc lấy một cái từ StartSSL
  • Một domain
  • Nếu bạn đã sẵn sàng một domain , hãy tạo một bản ghi A để trỏ đến Server (ví dụ: mailpile. Example.com ). Để biết hướng dẫn về cài đặt bản ghi DNS với DigitalOcean, hãy xem hướng dẫn này về DNS

Ghi lại certificate SSL và các vị trí chính của bạn. Nếu bạn đã làm theo hướng dẫn tạo certificate để sử dụng với Nginx, chúng sẽ được đặt tại:

  • /etc/nginx/ssl/nginx.crt
  • /etc/nginx/ssl/nginx.key

Đó là nó! Nếu bạn đã chuẩn bị xong mọi thứ, hãy chuyển sang bước đầu tiên.

Bước 1 - Download Mailpile

Trong phần này, ta sẽ chuẩn bị môi trường làm việc để cài đặt Mailpile.

Đầu tiên ta cần đăng nhập vào Server của bạn . Nếu bạn chưa sử dụng SSH trước đây, hãy xem hướng dẫn này về SSH . Đảm bảo rằng bạn đang đăng nhập vào một user có quyền truy cập sudo.

Đầu tiên ta cần cài đặt Git. Ta sẽ sử dụng Git để sao chép nguồn Mailpile từ GitHub.

Cập nhật danh sách gói của Ubuntu:

  • sudo apt-get update

Cài đặt Git:

  • sudo apt-get install git

Bây giờ Git đã được cài đặt, hãy thay đổi folder của ta thành một nơi nào đó mà ta có thể làm việc. Trong trường hợp này, ta sẽ sử dụng folder /var :

  • cd /var

Clone Mailpile:

  • sudo git clone https://github.com/mailpile/Mailpile.git

Ta cần lệnh sudo để cho phép Git tạo một folder bên trong /var , đây là một folder hệ thống.

Ta gần như đã sẵn sàng để chạy Mailpile. Tiếp tục đến Bước 2 để bắt đầu giải quyết một số yêu cầu khác.

Bước 2 - Cấu hình yêu cầu của Mailpile

Trong phần này, ta sẽ cài đặt và cấu hình các yêu cầu của Mailpile.

Đầu tiên, hãy cài đặt pip. pip là một trình quản lý gói Python với một vài thủ thuật sau:

  • sudo apt-get -y install python-pip

pip sẽ cho phép ta cài đặt các yêu cầu của Mailpile dễ dàng hơn. Bạn sẽ thấy cách thực hiện sau một phút, nhưng trước tiên, ta cần cài đặt thêm một số thứ.

Tiếp theo ta cần cài đặt lxml. lxml là một yêu cầu Mailpile thường được cài đặt bằng pip, nhưng ta đã phát hiện ra rằng nó có thể khiến quá trình cài đặt không thành công mà không rõ lý do. Do đó, ta sẽ cài đặt nó bằng apt-get:

  • sudo apt-get install python-lxml

Chỉ cần cài đặt thủ công một vài gói nữa, bao gồm GnuPG và OpenSSL. Những điều này sẽ tạo ra một môi trường an toàn hơn cho thư của ta . Một số trong số này có thể sẽ được cài đặt theo mặc định, nhưng ta sẽ đảm bảo chỉ trong trường hợp:

  • sudo apt-get install gnupg openssl libssl-dev

Bây giờ thay đổi vào folder của Mailpile:

  • cd /var/Mailpile

Hiện ta đã sẵn sàng khai thác khả năng của pip để cài đặt phần còn lại của các yêu cầu của ta .

Mailpile bao gồm một file gọi là requirements.txt , mà về cơ bản là một danh sách các yêu cầu này. pip có khả năng đọc qua danh sách này và tự động cài đặt từng cái một trong số chúng. Vì vậy, hãy làm chính xác điều đó:

  • sudo pip install -r /var/Mailpile/requirements.txt

Bạn đã hoàn tất. Tất cả các yêu cầu đã được cài đặt và Mailpile đã sẵn sàng để sử dụng. Nhưng trước khi thực hiện, ta cần thực hiện thêm một số bước để thắt chặt an ninh của bạn .

Bước 3 - Cấu hình Reverse Proxy với Nginx

Trong phần này, ta sẽ cấu hình Nginx làm Reverse Proxy cho Mailpile. Điều này sẽ làm cho Mailpile an toàn hơn, cho phép ta sử dụng certificate SSL và giúp truy cập ứng dụng webmail dễ dàng hơn.

Với Nginx, thay vì truy cập Mailpile bằng cách truy cập https:// example.com :33411 , bạn có thể sử dụng https://mailpile. example.com . Bắt đầu nào!

Trước tiên, ta cần cài đặt Nginx vì đó là những gì sẽ thực hiện hầu hết công việc. Vì vậy, hãy tải Nginx trước bất kỳ điều gì khác:

  • sudo apt-get install nginx

Bây giờ Nginx đã được cài đặt, ta có thể cài đặt Reverse Proxy . Hãy chỉnh sửa cấu hình của Nginx để yêu cầu nó định tuyến domain phụ của ta đến Mailpile.

Ta muốn xóa file cấu hình Nginx ban đầu vì nó chứa nhiều thứ mà ta không cần. Nhưng trước hết, hãy tạo một bản backup . Đầu tiên tạo folder :

  • sudo mkdir /home/backup

Bây giờ tạo bản backup :

  • sudo cp -b /etc/nginx/sites-enabled/default /home/backup

Bây giờ ta có thể tự do xóa file mà không gây hậu quả:

  • sudo rm /etc/nginx/sites-available/default

Hãy đảm bảo nó thực sự biến mất:

  • ls /etc/nginx/sites-available/

Nếu bạn vừa cài đặt Nginx, lệnh sẽ không trả lại gì.

Bây giờ hãy tạo một file mới:

  • sudo nano /etc/nginx/sites-available/default

Bây giờ là lúc để cấu hình Reverse Proxy . Hãy bắt đầu với phần đầu tiên. Thêm phần sau vào đầu file ( ta sẽ giải thích những gì nó làm trong giây lát):

/ etc / nginx / sites-available / default
server {     listen 80;     return 301 https://$host$request_uri; } 

Điều này yêu cầu Nginx chuyển hướng các yêu cầu mà nó nhận được đến HTTPS. Nhưng trong thực tế, nó sẽ cố gắng chuyển hướng đến một thứ chưa tồn tại. Hãy tạo một nơi nào đó để nó hoạt động:

/ etc / nginx / sites-available / default
server {      listen 443;     server_name mailpile.example.com;      ssl_certificate           /etc/nginx/ssl/nginx.crt;     ssl_certificate_key       /etc/nginx/ssl/nginx.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; 

Lưu ý: đảm bảo certificate và khóa của bạn được đặt tại /etc/nginx/ssl/nginx.crt/etc/nginx/ssl/nginx.key . Nếu không, hãy cập nhật các đường dẫn bên cạnh ssl_certificatessl_certificate_key để trùng với certificate và các vị trí chính của bạn.

Những gì ta vừa nhập cho biết Nginx hãy lắng nghe trên cổng 443 (các trang web cổng có quyền truy cập SSL, trái ngược với cổng 80), áp dụng certificate SSL của ta và bật SSL. Bây giờ ta cần thực sự cung cấp một cái gì đó đến URL HTTPS mới này mà ta đã chuyển hướng đến và bật SSL. Ta sẽ làm điều đó tiếp theo.

Thêm phần sau vào bên dưới hai khối trước:

/ 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.example.com;     }    } 

Khi bạn đã hoàn tất, file cấu hình đã hoàn thành sẽ trông giống như sau:

/ etc / nginx / sites-available / default
server {     listen 80;     return 301 https://$host$request_uri; }  server {      listen 443;     server_name mailpile.example.com;      ssl_certificate           /etc/nginx/ssl/nginx.crt;     ssl_certificate_key       /etc/nginx/ssl/nginx.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.example.com;     }    } 

Nếu bạn không thay thế trang web mặc định mà thay vào đó tạo một file khối server với một tên khác, bạn cần kích hoạt nó bằng một lệnh như sau:

  • sudo ln -s /etc/nginx/sites-available/mailpile.example.com /etc/nginx/sites-enabled/

Trang web mặc định đã được kích hoạt.

Vui lòng đọc bài viết này về các khối server Nginx nếu bạn muốn tìm hiểu thêm.

Bây giờ khởi động lại Nginx để reload cấu hình:

  • sudo service nginx restart

Đó là nó. Bây giờ Mailpile đã sẵn sàng để được truy cập tại https://mailpile. example.com . Bạn có thể phải chấp nhận cảnh báo SSL nếu bạn sử dụng certificate tự ký.

Ngoài ra, truy cập http://mailpile. example.com sẽ tự động chuyển hướng đến version SSL của trang web.

Ta chưa chạy Mailpile, vì vậy nếu bạn truy cập các URL đó ngay bây giờ, bạn sẽ thấy lỗi 502 Bad Gateway. Lý do phổ biến nhất cho lỗi này là ứng dụng Mailpile không chạy.

Tiếp tục đến Bước 4 để chạy Mailpile.

Bước 4 - Cấu hình và chạy Mailpile

Trong phần này, ta sẽ khởi động Mailpile và cấu hình nó hoạt động với Reverse Proxy của ta .

Đảm bảo rằng ta đang ở đúng folder :

  • cd /var/Mailpile

Để chạy Mailpile, hãy nhập:

  • ./mp

Bạn có thể bắt đầu khám phá Mailpile thông qua dòng lệnh hoặc giao diện web ngay bây giờ.

Một lời cảnh báo: Mailpile sẽ không lưu cài đặt của bạn sau khi dừng. Vì vậy, trước khi bạn dành thời gian cấu hình nó, bạn có thể cần hoàn thành bước tiếp theo tùy chọn để chạy nó như một dịch vụ.

Hộp thư bây giờ sẽ xuất hiện tại https://mailpile. example.com và thậm chí chuyển hướng đến HTTPS bằng certificate SSL của bạn. Xin chúc mừng!

Bạn có thể sử dụng CTRL-C và sau đó gõ quit để thoát khỏi Mailpile.

Tùy chọn - Biến Mailpile thành một dịch vụ với Upstart

Để đảm bảo Mailpile luôn hoạt động và sẵn sàng xử lý thư của bạn, bạn có thể chuyển đổi Mailpile thành một dịch vụ bằng cách sử dụng Upstart. Làm theo hướng dẫn tuyệt vời này để được hướng dẫn.

Vì Mailpile đang trong giai đoạn thử nghiệm nên nó vẫn chưa được daemonized đúng cách. Nó cũng yêu cầu một dòng lệnh tương tác, vì vậy bạn không thể chỉ trực tiếp chạy tập lệnh Python. Kịch bản Upstart Đây là một cách hacky chạy ứng dụng Python như một dịch vụ thông qua màn hình :

  • 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 

Tập lệnh này sẽ khởi động Mailpile và duy trì nó miễn là phiên Màn hình đang chạy. Nó không dừng đúng phiên Màn hình, vì vậy bạn sẽ phải dừng phiên Màn hình theo cách thủ công nếu bạn muốn dừng Mailpile.

Với tập lệnh này, bạn có thể bắt đầu Mailpile với:

  • sudo start mailpile

Điều này sẽ dẫn đến một phiên Màn hình có tên là 12345 .mailpile_init do user root sở hữu.

Tuy nhiên, các lệnh Upstart khác sẽ không hoạt động. Bạn sẽ phải kết thúc phiên Màn hình theo cách thủ công. Ngoài ra, nếu dịch vụ gặp sự cố hoặc bị dừng, bạn sẽ phải bắt đầu lại và đặt lại tất cả các tùy chọn của bạn .

Bước 4 - Bắt đầu với Mailpile

Phần này bao gồm cách sử dụng Mailpile cơ bản từ giao diện webmail, tại https://mailpile. example.com .

Đây là màn hình bạn sẽ thấy khi truy cập Mailpile lần đầu tiên.

Màn hình  chạy  ban đầu của Mailpile

Chọn một ngôn ngữ từ menu thả xuống.

Nhấp vào nút Bắt đầu .

Tạo password mới, sau đó nhập password đó hai lần.

Nhấp vào nút Bắt đầu sử dụng Mailpile .

Màn hình Đăng nhập: vui lòng nhập password bạn vừa tạo.

Màn hình đăng nhập

Thêm account mới bằng nút + Thêm account .

Thêm account  mới

Từ đây, bạn cần nhập thông tin chi tiết cho account thư mà bạn sở hữu. Bạn nên nhập địa chỉ email và password cho account thư cụ thể đó. Sau đó, Mailpile sẽ cố gắng kết nối với account của bạn bằng các thông tin đăng nhập đó, quá trình này có thể mất vài phút.

Bạn cũng có thể nhập thông tin đăng nhập Gửi ThưNhận Thư theo cách thủ công, nếu Mailpile không thể tự tìm ra chúng.

Gmail chặn Mailpile sử dụng thông tin đăng nhập account Gmail của bạn, vì vậy bạn không thể thêm account Gmail vào Mailpile - ít nhất là không dễ dàng.

Sau khi đăng nhập, bạn sẽ thấy màn hình này:

Hộp thư đến

Thử gửi và nhận email kiểm tra cho account bạn đã thêm vào Mailpile đến một account email khác. Nếu điều này thành công, bạn sẽ biết Mailpile đang làm việc với địa chỉ email của bạn.

Các tính năng khác của Mailpile

Mailpile cũng cung cấp nhiều tùy chọn mã hóa:

Tùy chọn mã hóa của Mailpile

Kết luận

Để bắt đầu với Mailpile, hãy xem Câu hỏi thường gặp .

Để có thêm tùy chọn cấu hình, hãy chạy help từ dòng lệnh Mailpile.

Xin chúc mừng, bạn hiện đã có ứng dụng webmail của riêng mình, Mailpile, đang chạy trên Ubuntu 14.04 Server. Nó được trang bị đầy đủ SSL và tự động chuyển hướng đến version HTTPS của trang web . Như vậy, bạn có thể cài đặt account email và quản lý danh bạ, thư, danh mục, v.v. với giao diện đẹp mắt của Mailpile. Chúc vui vẻ!


Tags:

Các tin liên quan

Cách cài đặt CouchDB và Futon trên Ubuntu 14.04
2015-08-10
Cách thiết lập firewall với UFW trên Ubuntu 14.04
2015-08-05
Cách đánh giá độ trễ HTTP theo chuẩn với wrk trên Ubuntu 14.04
2015-07-21
Cách cài đặt và sử dụng Command Line Cheat Sheets trên Ubuntu 14.04
2015-07-21
Cách cài đặt và sử dụng CFEngine Community Edition trên Ubuntu 14.04
2015-07-17
Cách cài đặt và cấu hình Riak2 với Python3 trên Ubuntu 14.04
2015-07-14
Cách cài đặt Solr 5.2.1 trên Ubuntu 14.04
2015-07-14
Cách thiết lập R trên Ubuntu 14.04
2015-07-13
Cách triển khai ứng dụng Rails với Git Hooks trên Ubuntu 14.04
2015-07-09
Cách sử dụng Prometheus để giám sát server Ubuntu 14.04 của bạn
2015-06-30