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.Ứ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):
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:
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
và /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_certificate
và ssl_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:
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:
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
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.
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.
Thêm account mới bằng nút + Thêm account .
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ư và 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:
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:
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ẻ!
Các tin liên quan
Cách cài đặt CouchDB và Futon trên Ubuntu 14.042015-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