{"id":35658,"date":"2026-01-08T01:23:25","date_gmt":"2026-01-07T18:23:25","guid":{"rendered":"https:\/\/dps.media\/huong-dan-cai-dat-mailcow-phien-ban-cuoi\/"},"modified":"2026-01-08T01:23:25","modified_gmt":"2026-01-07T18:23:25","slug":"huong-dan-cai-dat-mailcow-phien-ban-cuoi","status":"publish","type":"post","link":"https:\/\/dps.media\/en\/huong-dan-cai-dat-mailcow-phien-ban-cuoi\/","title":{"rendered":"Mailcow Installation Guide (Final Version)"},"content":{"rendered":"<p>H\u01b0\u1edbng d\u1eabn n\u00e0y \u0111\u01b0\u1ee3c t\u1ed1i \u01b0u h\u00f3a \u0111\u1ec3 c\u00e0i \u0111\u1eb7t Mailcow: Dockerized tr\u00ean VPS ch\u1ea1y Nginx Proxy Manager (NPM) v\u00e0 Portainer. N\u00f3 bao g\u1ed3m c\u00e1c s\u1eeda l\u1ed7i cho c\u00e1c v\u1ea5n \u0111\u1ec1 ph\u1ed5 bi\u1ebfn nh\u01b0 V\u00f2ng l\u1eb7p Chuy\u1ec3n h\u01b0\u1edbng (Redirect Loops) v\u00e0 L\u1ed7i Gateway Timeout 504.<\/p>\n<p><figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_arch.jpg\" alt=\"Mailcow Architecture\" class=\"wp-image-35655\" title=\"\" srcset=\"https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_arch.jpg 1024w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_arch-300x300.jpg 300w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_arch-150x150.jpg 150w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_arch-768x768.jpg 768w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_arch-12x12.jpg 12w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_arch-754x754.jpg 754w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_arch-356x356.jpg 356w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_arch-200x200.jpg 200w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_arch-70x70.jpg 70w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption><\/figcaption><\/figure>\n<\/p>\n<h2>1. Y\u00eau c\u1ea7u Ti\u00ean quy\u1ebft<\/h2>\n<ul>\n<li>VPS c\u00e0i s\u1eb5n Docker &#038; Docker Compose.<\/li>\n<li>Domain name: <code>mail.khaisanfood.vn<\/code> (tr\u1ecf v\u1ec1 IP VPS).<\/li>\n<li>Nginx Proxy Manager \u0111ang ch\u1ea1y trong m\u1ed9t Docker container.<\/li>\n<\/ul>\n<h3>DNS record<\/h3>\n<table class=\"wp-block-table\">\n<thead>\n<tr>\n<th>Type<\/th>\n<th>Name<\/th>\n<th>Value<\/th>\n<th>Proxy Status<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>A<\/td>\n<td>mail<\/td>\n<td>IP VPS c\u1ee7a b\u1ea1n<\/td>\n<td>DNS Only<\/td>\n<\/tr>\n<tr>\n<td>CNAME<\/td>\n<td>autodiscover<\/td>\n<td>mail.khaisanfood.vn<\/td>\n<td>DNS Only<\/td>\n<\/tr>\n<tr>\n<td>CNAME<\/td>\n<td>autoconfig<\/td>\n<td>mail.khaisanfood.vn<\/td>\n<td>DNS Only<\/td>\n<\/tr>\n<tr>\n<td>MX<\/td>\n<td>@<\/td>\n<td>mail.khaisanfood.vn<\/td>\n<td>Priority 10<\/td>\n<\/tr>\n<tr>\n<td>TXT<\/td>\n<td>@<\/td>\n<td>v=spf1 mx ~all<\/td>\n<td>\u2013<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>2. C\u00e1c b\u01b0\u1edbc C\u00e0i \u0111\u1eb7t<\/h2>\n<h3>B\u01b0\u1edbc 1: Clone Mailcow<\/h3>\n<pre><code>cd \/opt\ngit clone https:\/\/github.com\/mailcow\/mailcow-dockerized\ncd mailcow-dockerized<\/code><\/pre>\n<h3>B\u01b0\u1edbc 2: T\u1ea1o C\u1ea5u h\u00ecnh<\/h3>\n<pre><code>.\/generate_config.sh\nHostname: mail.khaisanfood.vn\nTimezone: Asia\/Ho<em>Chi<\/em>Minh\nClamAV: Y (n\u1ebfu RAM > 4GB) ho\u1eb7c N.<\/code><\/pre>\n<h3>B\u01b0\u1edbc 3: C\u1ea5u h\u00ecnh mailcow.conf (Quan tr\u1ecdng)<\/h3>\n<p>Ch\u1ec9nh s\u1eeda c\u1ea5u h\u00ecnh \u0111\u1ec3 tr\u00e1nh xung \u0111\u1ed9t v\u00e0 v\u00f2ng l\u1eb7p.<\/p>\n<pre><code>nano mailcow.conf<\/code><\/pre>\n<p>Thay \u0111\u1ed5i c\u00e1c bi\u1ebfn sau:<\/p>\n<ul>\n<li><strong>Ng\u0103n ch\u1eb7n V\u00f2ng l\u1eb7p Chuy\u1ec3n h\u01b0\u1edbng:<\/strong><br \/>\n<code>HTTP_REDIRECT=n<\/code><br \/>\n(Ch\u00fang ta \u0111\u1ec3 Nginx Proxy Manager x\u1eed l\u00fd HTTPS, v\u00ec v\u1eady h\u00e3y t\u1eaft chuy\u1ec3n h\u01b0\u1edbng n\u1ed9i b\u1ed9 c\u1ee7a Mailcow).<\/li>\n<li><strong>Bind v\u00e0o T\u1ea5t c\u1ea3 Giao di\u1ec7n (\u0111\u1ec3 NPM c\u00f3 th\u1ec3 nh\u00ecn th\u1ea5y):<\/strong>\n<p><code>HTTP_BIND=0.0.0.0<\/code><\/p>\n<p><code>HTTPS_BIND=0.0.0.0<\/code><\/li>\n<\/p>\n<li><strong>Thay \u0111\u1ed5i Port (\u0111\u1ec3 tr\u00e1nh xung \u0111\u1ed9t 80\/443):<\/strong>\n<p><code>HTTP_PORT=8080<\/code><\/p>\n<p><code>HTTPS_PORT=8443<\/code><\/li>\n<\/p>\n<li><strong>Tr\u00e1nh Xung \u0111\u1ed9t IP (S\u1eeda l\u1ed7i &#8220;Pool overlaps&#8221;):<\/strong>\n<p><code>IPV4_NETWORK=192.168.201<\/code><\/li>\n<p>\n<\/ul>\n<\/p>\n<p><figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_terminal.jpg\" alt=\"Mailcow Installation Terminal\" class=\"wp-image-35656\" title=\"\" srcset=\"https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_terminal.jpg 1024w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_terminal-300x300.jpg 300w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_terminal-150x150.jpg 150w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_terminal-768x768.jpg 768w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_terminal-12x12.jpg 12w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_terminal-754x754.jpg 754w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_terminal-356x356.jpg 356w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_terminal-200x200.jpg 200w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_terminal-70x70.jpg 70w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption><\/figcaption><\/figure>\n<\/p>\n<h3>B\u01b0\u1edbc 4: Thi\u1ebft l\u1eadp T\u01b0\u1eddng l\u1eeda (S\u1eeda l\u1ed7i 504)<\/h3>\n<p>\u0110\u1ea3m b\u1ea3o c\u00e1c Docker container c\u00f3 th\u1ec3 giao ti\u1ebfp v\u1edbi nhau.<\/p>\n<pre><code>ufw allow from 172.16.0.0\/12 to any<\/code><\/pre>\n<h3>B\u01b0\u1edbc 5: Kh\u1edfi \u0111\u1ed9ng Mailcow<\/h3>\n<pre><code>docker compose pull\ndocker compose up -d<\/code><\/pre>\n<h2>3. C\u1ea5u h\u00ecnh Nginx Proxy Manager<\/h2>\n<p>Truy c\u1eadp Nginx Proxy Manager v\u00e0 th\u00eam Proxy Host m\u1edbi.<\/p>\n<h3>Details Tab<\/h3>\n<ul>\n<li>Domain Names: <code>mail.khaisanfood.vn<\/code><\/li>\n<li>Scheme: <code>http<\/code> (Quan tr\u1ecdng! K\u1ebft n\u1ed1i qua HTTP)<\/li>\n<li>Forward Hostname \/ IP: <code>172.17.0.1<\/code><br \/>\n(\u0110\u00e2y l\u00e0 IP Gateway chu\u1ea9n c\u1ee7a Docker. Ki\u1ec3m tra <code>ip addr show docker0<\/code> \u0111\u1ec3 x\u00e1c nh\u1eadn).<\/li>\n<li>Forward Port: <code>8080<\/code><\/li>\n<li>Cache Assets: Disabled<\/li>\n<li>Block Common Exploits: Enabled<\/li>\n<\/ul>\n<h3>SSL Tab<\/h3>\n<ul>\n<li>SSL Certificate: Y\u00eau c\u1ea7u ch\u1ee9ng ch\u1ec9 Let&#8217;s Encrypt m\u1edbi.<\/li>\n<li>Force SSL: Enabled.<\/li>\n<li>HTTP\/2 Support: Enabled.<\/li>\n<\/ul>\n<p>Nh\u1ea5n Save. B\u00e2y gi\u1edd b\u1ea1n c\u00f3 th\u1ec3 truy c\u1eadp <code>https:\/\/mail.khaisanfood.vn<\/code>.<\/p>\n<p><figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"1024\" src=\"https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_security.jpg\" alt=\"SSL Security\" class=\"wp-image-35657\" title=\"\" srcset=\"https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_security.jpg 1024w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_security-300x300.jpg 300w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_security-150x150.jpg 150w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_security-768x768.jpg 768w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_security-12x12.jpg 12w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_security-754x754.jpg 754w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_security-356x356.jpg 356w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_security-200x200.jpg 200w, https:\/\/dps.media\/wp-content\/uploads\/2026\/01\/mailcow_security-70x70.jpg 70w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption><\/figcaption><\/figure>\n<\/p>\n<h2>4. Sau khi C\u00e0i \u0111\u1eb7t<\/h2>\n<h3>\u0110\u1ed3ng b\u1ed9 Ch\u1ee9ng ch\u1ec9 SSL (Cho Email Clients)<\/h3>\n<p>NPM x\u1eed l\u00fd SSL web, nh\u01b0ng Mailcow c\u1ea7n ch\u1ee9ng ch\u1ec9 cho SMTP\/IMAP. B\u1ea1n c\u1ea7n copy ch\u00fang t\u1eeb Docker volume c\u1ee7a NPM tr\u00ean host.<\/p>\n<p>T\u00ecm ID Ch\u1ee9ng ch\u1ec9 NPM c\u1ee7a b\u1ea1n: Ki\u1ec3m tra dashboard NPM ho\u1eb7c t\u00ecm trong th\u01b0 m\u1ee5c. V\u00ed d\u1ee5 Host Path: <code>\/var\/lib\/docker\/volumes\/nginx-proxy-manager<em>npm<\/em>letsencrypt\/_data\/live\/npm-21<\/code> (id 21 s\u1ebd kh\u00e1c nhau cho m\u1ed7i t\u00ean mi\u1ec1n).<\/p>\n<p>L\u1ec7nh \u0110\u1ed3ng b\u1ed9:<\/p>\n<pre><code># C\u1eadp nh\u1eadt \u0111\u01b0\u1eddng d\u1eabn n\u00e0y kh\u1edbp v\u1edbi Host Path c\u1ee7a b\u1ea1n t\u00ecm th\u1ea5y \u1edf tr\u00ean\nNPM<em>CERT<\/em>PATH=\"\/var\/lib\/docker\/volumes\/nginx-proxy-manager<em>npm<\/em>letsencrypt\/_data\/live\/npm-21\"\ncp \"$NPM<em>CERT<\/em>PATH\/fullchain.pem\" \/opt\/mailcow-dockerized\/data\/assets\/ssl\/cert.pem\ncp \"$NPM<em>CERT<\/em>PATH\/privkey.pem\" \/opt\/mailcow-dockerized\/data\/assets\/ssl\/key.pem\ncd \/opt\/mailcow-dockerized\ndocker compose restart postfix-mailcow dovecot-mailcow nginx-mailcow<\/code><\/pre>\n<h3>Reset M\u1eadt kh\u1ea9u Admin<\/h3>\n<p>If <code>admin \/ moohoo<\/code> kh\u00f4ng ho\u1ea1t \u0111\u1ed9ng:<\/p>\n<pre><code>cd \/opt\/mailcow-dockerized\/helper-scripts\nbash mailcow-reset-admin.sh<\/code><\/pre>\n<h3>DNS \/ DKIM<\/h3>\n<p>\u0110\u0103ng nh\u1eadp v\u00e0o Mailcow UI -> Configuration -> Mail Setup -> DNS \u0111\u1ec3 l\u1ea5y b\u1ea3n ghi DKIM v\u00e0 th\u00eam n\u00f3 v\u00e0o nh\u00e0 cung c\u1ea5p DNS c\u1ee7a b\u1ea1n.<\/p>\n<h2>5. Th\u00eam T\u00ean mi\u1ec1n B\u1ed5 sung (Multi-Domain Setup)<\/h2>\n<p>B\u1ea1n c\u00f3 th\u1ec3 host nhi\u1ec1u t\u00ean mi\u1ec1n email (v\u00ed d\u1ee5: <code>@dpsmedia.vn<\/code>) tr\u00ean c\u00f9ng m\u1ed9t server n\u00e0y.<\/p>\n<h3>A. Th\u00eam Domain trong Mailcow<\/h3>\n<ul>\n<li>\u0110\u0103ng nh\u1eadp Mailcow UI v\u1edbi quy\u1ec1n Admin.<\/li>\n<li>V\u00e0o Configuration -> Mail Setup -> Domains.<\/li>\n<li>Nh\u1ea5n Add Domain.<\/li>\n<li>Domain: <code>dpsmedia.vn<\/code> (ho\u1eb7c t\u00ean mi\u1ec1n m\u1edbi c\u1ee7a b\u1ea1n).<\/li>\n<li>Nh\u1ea5n Add Domain v\u00e0 kh\u1edfi \u0111\u1ed9ng l\u1ea1i SOGo.<\/li>\n<\/ul>\n<h3>B. DNS cho Domain M\u1edbi (dpsmedia.vn)<\/h3>\n<p>V\u00e0o nh\u00e0 cung c\u1ea5p DNS cho <code>dpsmedia.vn<\/code> v\u00e0 th\u00eam c\u00e1c b\u1ea3n ghi n\u00e0y. Quan tr\u1ecdng: Tr\u1ecf ch\u00fang v\u1ec1 URL server mail hi\u1ec7n t\u1ea1i c\u1ee7a b\u1ea1n (<code>mail.khaisanfood.vn<\/code>).<\/p>\n<table class=\"wp-block-table\">\n<thead>\n<tr>\n<th>Type<\/th>\n<th>Name<\/th>\n<th>Value<\/th>\n<th>Status<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>MX<\/td>\n<td>@<\/td>\n<td>mail.khaisanfood.vn<\/td>\n<td>Priority 10<\/td>\n<\/tr>\n<tr>\n<td>TXT<\/td>\n<td>@<\/td>\n<td>v=spf1 mx include:mail.khaisanfood.vn ~all<\/td>\n<td>\u2013<\/td>\n<\/tr>\n<tr>\n<td>CNAME<\/td>\n<td>autodiscover<\/td>\n<td>mail.khaisanfood.vn<\/td>\n<td>DNS Only<\/td>\n<\/tr>\n<tr>\n<td>CNAME<\/td>\n<td>autoconfig<\/td>\n<td>mail.khaisanfood.vn<\/td>\n<td>DNS Only<\/td>\n<\/tr>\n<tr>\n<td>TXT<\/td>\n<td>dkim._domainkey<\/td>\n<td>(Copy value from Mailcow UI -> DNS)<\/td>\n<td>\u2013<\/td>\n<\/tr>\n<tr>\n<td>TXT<\/td>\n<td>_dmarc<\/td>\n<td>v=DMARC1; p=none;<\/td>\n<td>\u2013<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>(B\u1ea1n KH\u00d4NG c\u1ea7n \u0111\u1ecba ch\u1ec9 IP m\u1edbi. M\u1ecdi th\u1ee9 \u0111\u1ec1u \u0111i qua c\u00e1c IP ch\u00ednh).<\/p>\n<h3>C. (T\u00f9y ch\u1ecdn) Truy c\u1eadp Mailcow UI qua mail.dpsmedia.vn<\/h3>\n<p>N\u1ebfu b\u1ea1n mu\u1ed1n truy c\u1eadp Admin UI qua <code>https:\/\/mail.dpsmedia.vn<\/code>:<\/p>\n<p>Ch\u1ec9nh s\u1eeda Config:<\/p>\n<pre><code>nano mailcow.conf\nADDITIONAL<em>SERVER<\/em>NAMES=mail.dpsmedia.vn\ndocker compose up -d<\/code><\/pre>\n<p>Nginx Proxy Manager: Copy y h\u1ec7t c\u00e0i \u0111\u1eb7t c\u1ee7a <code>mail.khaisanfood.vn<\/code>.<\/p>\n<h3>D. Ch\u1ee9ng ch\u1ec9 SSL cho Domain B\u1ed5 sung<\/h3>\n<p><strong>Option 1:<\/strong> (Khuy\u00ean d\u00f9ng) S\u1eed d\u1ee5ng <code>mail.khaisanfood.vn<\/code> cho Incoming\/Outgoing Server.<\/p>\n<p><strong>Option 2:<\/strong> (N\u00e2ng cao) B\u1eadt <code>ENABLE<em>SSL<\/em>SNI=y<\/code> trong config, t\u1ea1o th\u01b0 m\u1ee5c SSL ri\u00eang v\u00e0 \u0111\u1ed3ng b\u1ed9 ch\u1ee9ng ch\u1ec9 m\u1edbi v\u00e0o \u0111\u00f3.<\/p>\n<h2>6. S\u1eeda l\u1ed7i G\u1eedi Email (Gmail Block)<\/h2>\n<p>N\u1ebfu g\u1eb7p l\u1ed7i <code>550-5.7.1<\/code>, ngh\u0129a l\u00e0 IP c\u1ee7a b\u1ea1n c\u00f3 uy t\u00edn th\u1ea5p.<\/p>\n<h3>A. Thi\u1ebft l\u1eadp Reverse DNS (PTR) &#8211; B\u1eaft bu\u1ed9c<\/h3>\n<p>V\u00e0o Dashboard c\u1ee7a nh\u00e0 cung c\u1ea5p VPS, \u0111\u1eb7t PTR Record cho IP c\u1ee7a b\u1ea1n th\u00e0nh <code>mail.khaisanfood.vn<\/code>.<\/p>\n<h3>B. S\u1eed d\u1ee5ng SMTP Relay<\/h3>\n<p>N\u1ebfu IP b\u1ecb blacklist, h\u00e3y d\u00f9ng Amazon SES, SendGrid, ho\u1eb7c Mailgun l\u00e0m Relay.<\/p>\n<h2>7. H\u01b0\u1edbng d\u1eabn G\u1ee1 c\u00e0i \u0111\u1eb7t<\/h2>\n<p>C\u1ea3nh b\u00e1o: Vi\u1ec7c n\u00e0y s\u1ebd x\u00f3a TO\u00c0N B\u1ed8 d\u1eef li\u1ec7u email.<\/p>\n<pre><code>cd \/opt\/mailcow-dockerized\ndocker compose down -v\ncd \/opt\nrm -rf mailcow-dockerized<\/code><\/pre>\n<p>X\u00f3a Proxy Host trong NPM.<\/p>\n<style>\r\n.lwrp.link-whisper-related-posts{\r\n            \r\n            margin-top: 40px;\nmargin-bottom: 30px;\r\n        }\r\n        .lwrp .lwrp-title{\r\n            \r\n            \r\n        }.lwrp .lwrp-description{\r\n            \r\n            \r\n\r\n        }\r\n        .lwrp .lwrp-list-container{\r\n        }\r\n        .lwrp .lwrp-list-multi-container{\r\n            display: flex;\r\n        }\r\n        .lwrp .lwrp-list-double{\r\n            width: 48%;\r\n        }\r\n        .lwrp .lwrp-list-triple{\r\n            width: 32%;\r\n        }\r\n        .lwrp .lwrp-list-row-container{\r\n            display: flex;\r\n            justify-content: space-between;\r\n        }\r\n        .lwrp .lwrp-list-row-container .lwrp-list-item{\r\n            width: calc(33% - 20px);\r\n        }\r\n        .lwrp .lwrp-list-item:not(.lwrp-no-posts-message-item){\r\n            \r\n            max-width: 150px;\r\n        }\r\n        .lwrp .lwrp-list-item img{\r\n            max-width: 100%;\r\n            height: auto;\r\n            object-fit: cover;\r\n            aspect-ratio: 1 \/ 1;\r\n        }\r\n        .lwrp .lwrp-list-item.lwrp-empty-list-item{\r\n            background: initial !important;\r\n        }\r\n        .lwrp .lwrp-list-item .lwrp-list-link .lwrp-list-link-title-text,\r\n        .lwrp .lwrp-list-item .lwrp-list-no-posts-message{\r\n            \r\n            \r\n            \r\n            \r\n        }@media screen and (max-width: 480px) {\r\n            .lwrp.link-whisper-related-posts{\r\n                \r\n                \r\n            }\r\n            .lwrp .lwrp-title{\r\n                \r\n                \r\n            }.lwrp .lwrp-description{\r\n                \r\n                \r\n            }\r\n            .lwrp .lwrp-list-multi-container{\r\n                flex-direction: column;\r\n            }\r\n            .lwrp .lwrp-list-multi-container ul.lwrp-list{\r\n                margin-top: 0px;\r\n                margin-bottom: 0px;\r\n                padding-top: 0px;\r\n                padding-bottom: 0px;\r\n            }\r\n            .lwrp .lwrp-list-double,\r\n            .lwrp .lwrp-list-triple{\r\n                width: 100%;\r\n            }\r\n            .lwrp .lwrp-list-row-container{\r\n                justify-content: initial;\r\n                flex-direction: column;\r\n            }\r\n            .lwrp .lwrp-list-row-container .lwrp-list-item{\r\n                width: 100%;\r\n            }\r\n            .lwrp .lwrp-list-item:not(.lwrp-no-posts-message-item){\r\n                \r\n                max-width: initial;\r\n            }\r\n            .lwrp .lwrp-list-item .lwrp-list-link .lwrp-list-link-title-text,\r\n            .lwrp .lwrp-list-item .lwrp-list-no-posts-message{\r\n                \r\n                \r\n                \r\n                \r\n            };\r\n        }<\/style>\r\n<div id=\"link-whisper-related-posts-widget\" class=\"link-whisper-related-posts lwrp\">\r\n            <div class=\"lwrp-title\">Related Posts<\/div>    \r\n        <div class=\"lwrp-list-container\">\r\n                                <div class=\"lwrp-list lwrp-list-row-container lwrp-list-double-row\">\r\n                <div class=\"lwrp-list-item\"><a href=\"https:\/\/dps.media\/en\/different-types-of-files-and-when-they-should-be-used\/\" class=\"lwrp-list-link\"><span class=\"lwrp-list-link-title-text\">Different types of files and when to use them?<\/span><\/a><\/div><div class=\"lwrp-list-item\"><a href=\"https:\/\/dps.media\/en\/guide-to-decorating-shopee-page-with-canva-as-easy-as-eating-candy\/\" class=\"lwrp-list-link\"><span class=\"lwrp-list-link-title-text\">Shopee Decoration Guide with Canva \u201cAs Easy As Eating Candy\u201d<\/span><\/a><\/div><div class=\"lwrp-list-item\"><a href=\"https:\/\/dps.media\/en\/how-to-do-local-marketing-to-attract-local-customers\/\" class=\"lwrp-list-link\"><span class=\"lwrp-list-link-title-text\">Local Marketing: How to attract customers in the area?<\/span><\/a><\/div>                <\/div>\r\n                            <div class=\"lwrp-list lwrp-list-row-container lwrp-list-double-row\">\r\n                <div class=\"lwrp-list-item\"><a href=\"https:\/\/dps.media\/en\/how-to-build-a-return-delivery-process-for-small-shops\/\" class=\"lwrp-list-link\"><span class=\"lwrp-list-link-title-text\">How to build a delivery and return process for small shops<\/span><\/a><\/div><div class=\"lwrp-list-item\"><a href=\"https:\/\/dps.media\/en\/personal-portfolio-for-people-working-in-design-services-using-google-sites\/\" class=\"lwrp-list-link\"><span class=\"lwrp-list-link-title-text\">Personal Portfolio for Service Designers Using Google Sites<\/span><\/a><\/div><div class=\"lwrp-list-item\"><a href=\"https:\/\/dps.media\/en\/shopee-booth-design-standard-seo\/\" class=\"lwrp-list-link\"><span class=\"lwrp-list-link-title-text\">Shopee Store Design SEO Tips to Help Increase Outstanding Revenue<\/span><\/a><\/div>                <\/div>\r\n                <\/div>\r\n<\/div>","protected":false},"excerpt":{"rendered":"<p>H\u01b0\u1edbng d\u1eabn n\u00e0y \u0111\u01b0\u1ee3c t\u1ed1i \u01b0u h\u00f3a \u0111\u1ec3 c\u00e0i \u0111\u1eb7t Mailcow: Dockerized tr\u00ean VPS ch\u1ea1y Nginx Proxy Manager (NPM) v\u00e0 Portainer. N\u00f3 bao g\u1ed3m c\u00e1c s\u1eeda l\u1ed7i cho c\u00e1c v\u1ea5n \u0111\u1ec1 ph\u1ed5 bi\u1ebfn nh\u01b0 V\u00f2ng l\u1eb7p Chuy\u1ec3n h\u01b0\u1edbng (Redirect Loops) v\u00e0 L\u1ed7i Gateway Timeout 504. 1. Y\u00eau c\u1ea7u Ti\u00ean quy\u1ebft VPS c\u00e0i s\u1eb5n Docker &#038; [&hellip;]<\/p>","protected":false},"author":1,"featured_media":35655,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1758,1793,1794],"tags":[],"class_list":["post-35658","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-devops","category-guides","category-mailcow"],"acf":[],"rankmath_keywords":{"primary":"","secondary":[""]},"yoast_keywords":{"primary":"","secondary":[]},"yoast_focuskw":"","rankmath_focuskw":"","seo_keywords":{"primary":"","secondary":[""]},"_links":{"self":[{"href":"https:\/\/dps.media\/en\/wp-json\/wp\/v2\/posts\/35658","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dps.media\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dps.media\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dps.media\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dps.media\/en\/wp-json\/wp\/v2\/comments?post=35658"}],"version-history":[{"count":0,"href":"https:\/\/dps.media\/en\/wp-json\/wp\/v2\/posts\/35658\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/dps.media\/en\/wp-json\/wp\/v2\/media\/35655"}],"wp:attachment":[{"href":"https:\/\/dps.media\/en\/wp-json\/wp\/v2\/media?parent=35658"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dps.media\/en\/wp-json\/wp\/v2\/categories?post=35658"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dps.media\/en\/wp-json\/wp\/v2\/tags?post=35658"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}