Hướng dẫn tự build email server với mã nguồn mở mailcow .

Hướng dẫn tự build email server với mã nguồn mở mailcow .

A. Giới thiệu

1. Yêu cầu cấu hình

Vui lòng đảm bảo rằng hệ thống của bạn có ít nhất các tài nguyên sau:

Resource Minimal Requirement
CPU 1 GHz
RAM Minimum 6 GiB + 1 GiB swap (default config)
Disk 20 GiB (without emails)
Architecture x86_64, ARM64

Not supported

OpenVZ, Virtuozzo and LXC

2. Hệ điều hành hỗ trợ

OS Compatibility
Alpine since 3.17 ⚠️
Debian 11, 12
Ubuntu 20.04 - 24.04
Alma Linux 8, 9
Rocky Linux 9

3. Docker là gì ?

Docker là một nền tảng mã nguồn mở được thiết kế để tự động hóa việc triển khai, đóng gói và chạy các ứng dụng trong containers (ngăn chứa). Container là một môi trường nhẹ, độc lập, và có thể tái sử dụng, giúp các ứng dụng chạy nhất quán trên nhiều hệ thống, từ máy tính cá nhân đến máy chủ trong trung tâm dữ liệu.

4. Mailcow là gì ?

Mailcow là một giải pháp email tự lưu trữ mã nguồn mở, được thiết kế để cung cấp một nền tảng mạnh mẽ và dễ dàng quản lý cho việc triển khai dịch vụ email. Nó sử dụng các công nghệ phổ biến như Docker để đóng gói và quản lý các thành phần khác nhau trong hệ thống. Mailcow phù hợp cho cá nhân, tổ chức nhỏ và thậm chí là các doanh nghiệp muốn kiểm soát hoàn toàn hệ thống email của mình.

B. Hướng dẫn cài đặt Mailcow

1. Thiết lập cơ bản.

Thiết lập hostname

				
					hostnamectl set-hostname mail.domain.com
				
			

Điều chỉnh múi giờ theo quốc gia

				
					timedatectl set-timezone Asia/Ho_Chi_Minh

				
			

2. Update và cài đặt các gói cần thiết.

				
					sudo apt update && sudo apt upgrade -y
				
			

Cài đặt wget và screen 

				
					apt install wget screen curl -y
				
			

Cài đặt Docker
Cài đặt phiên bản Docker mới nhất.
Nếu bạn đã cài đặt Docker, vui lòng bỏ qua bước này.

				
					curl -sSL "https://get.docker.com/" | bash
				
			

3. Cài đặt Mailcow

Clone mã nguồn Mailcow từ github

				
					cd /opt
git clone https://github.com/mailcow/mailcow-dockerized

				
			

Khởi tạo Mailcow

				
					cd /opt/mailcow-dockerized
./generate_config.sh
				
			

Sau khi chạy file generate_config.sh, nhập thông tin :

				
					root@mail:/opt/mailcow-dockerized# ./generate_config.sh
Found Docker Compose Plugin (native).
Setting the DOCKER_COMPOSE_VERSION Variable to native
Notice: You'll have to update this Compose Version via your Package Manager manually!
Press enter to confirm the detected value '[value]' where applicable or enter a custom value.
Mail server hostname (FQDN) - this is not your mail domain, but your mail servers hostname: mail.gocit.vn
Timezone [America/New_York]: Asia/Ho_Chi_Minh
Which branch of mailcow do you want to use?

Available Branches:
- master branch (stable updates) | default, recommended [1]
- nightly branch (unstable updates, testing) | not-production ready [2]
Choose the Branch with it's number [1/2] 1
Fetching origin
Already on 'master'
Your branch is up to date with 'origin/master'.
Generating snake-oil certificate...
Generating a RSA private key
............................................................++++
.........................................................................................++++
writing new private key to 'data/assets/ssl-example/key.pem'
-----
Copying snake-oil certificate...
Detecting if your IP is listed on Spamhaus Bad ASN List...
Check completed! Your IP is clean
				
			

Khởi động Mailcow

				
					docker compose pull
docker compose up -d
				
			

Nếu domain mail.domain.com đã trỏ về IP của server mailcow có thể tiến hành cài ssl miễn phí cho domain .

				
					 cd /opt/mailcow-dockerized
 touch data/assets/ssl/force_renew
 docker-compose restart acme-mailcow
 
				
			

Kiểm tra log install ssl sau khi restart acme-mailcow

				
					acme-mailcow-1  | ValueError: Challenge did not pass for mail.gocit.vn: {'identifier': {'type': 'dns', 'value': 'mail.domain.com'}, 'status': 'invalid', 'expires': '2025-01-01T07:56:36Z', 'challenges': [{'type': 'http-01', 'url': 'https://acme-v02.api.letsencrypt.org/acme/chall/2132822145/451196278155/fX572w', 'status': 'invalid', 'validated': '2024-12-25T07:56:42Z', 'error': {'type': 'urn:ietf:params:acme:error:dns', 'detail': 'DNS problem: NXDOMAIN looking up A for mail.domain.com - check that a DNS record exists for this domain; DNS problem: NXDOMAIN looking up AAAA for mail.gocit.vn - check that a DNS record exists for this domain', 'status': 400}, 'token': 'rOmaPeuLLX122121231323E1zcsSYYhTHVkvPnCohECQ'}]}
				
			

Nếu gặp lỗi trên. Tắt IPv6 bằng cách thêm # trước các dòng có IPv6 trong file hosts và thử lại

				
					127.0.0.1       localhost
127.0.0.1 mail.domain.com

# The following lines are desirable for IPv6 capable hosts
#::1     localhost ip6-locialhost ip6-loopback
#ff02::1 ip6-allnodes
#ff02::2 ip6-allrouters
				
			

Sau khi đã thực hiện xong tiến hành truy cập mailcow UI bằng link https://mail.domain.com/ hoặc https://ip

mailcow2

Đăng nhập với thông tin mặc định:

User: admin
Password: moohoo

mailcow2

Đổi mật khẩu ngay sau khi đăng nhập bằng password mặc định để bảo mật. Chọn System ==> Configuration ==> Edit

mailcow3

Như vậy là chúng  đã hoàn thành việc cài đặt mailcow

C. Kết luận

Mailcow là một giải pháp quản lý email toàn diện, mạnh mẽ, và dễ sử dụng, phù hợp cho cả cá nhân và doanh nghiệp. Với hướng dẫn cài đặt trên, bạn đã có thể thiết lập một hệ thống email server bảo mật, hiệu quả và tùy chỉnh cao.

Bằng cách sử dụng Docker, Mailcow đảm bảo sự linh hoạt và dễ dàng trong việc triển khai, quản lý cũng như nâng cấp. Đồng thời, các tính năng nổi bật như quản lý tài khoản email, tích hợp DKIM, SPF, DMARC, cùng giao diện người dùng thân thiện giúp giảm bớt gánh nặng quản trị.

Nếu bạn gặp khó khăn hoặc có câu hỏi trong quá trình cài đặt, đừng ngần ngại tham khảo tài liệu chính thức của Mailcow hoặc tham gia vào cộng đồng hỗ trợ. Chúc bạn thành công trong việc xây dựng hệ thống email server của riêng mình!

D. Tài liệu tham khảo

Chúc các bạn thành công !

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *