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ợ
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
Đăng nhập với thông tin mặc định:
User: admin
Password: moohoo
Đổ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
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 !

