{"id":1690,"date":"2017-06-28T16:44:45","date_gmt":"2017-06-28T11:14:45","guid":{"rendered":"https:\/\/pheonixsolutions.com\/blog\/?p=1690"},"modified":"2026-09-05T09:59:05","modified_gmt":"2026-09-05T04:29:05","slug":"postfix-postfixadmin-dovecot-squirrelmail","status":"publish","type":"post","link":"https:\/\/pheonixsolutions.com\/blog\/postfix-postfixadmin-dovecot-squirrelmail\/","title":{"rendered":"How to Install and Configure a Secure Postfix and Dovecot Mail Server on Linux"},"content":{"rendered":"<h2>Introduction<\/h2>\n<p class=\"isSelectedEnd\">Email remains one of the most important communication channels for businesses and organizations. Running your own mail server provides complete control over email delivery, user management, security policies, and data privacy.<\/p>\n<p class=\"isSelectedEnd\">Two of the most widely used open-source components for building a mail platform are:<\/p>\n<ul data-spread=\"false\">\n<li><strong>Postfix<\/strong> \u2013 A fast, secure, and reliable Mail Transfer Agent (MTA) responsible for sending and receiving email.<\/li>\n<li><strong>Dovecot<\/strong> \u2013 A powerful IMAP and POP3 server that provides mailbox access and user authentication.<\/li>\n<\/ul>\n<p class=\"isSelectedEnd\">Together, Postfix and Dovecot create a complete email hosting solution capable of serving multiple domains and users securely.<\/p>\n<p class=\"isSelectedEnd\">This guide walks through the installation and configuration of Postfix and Dovecot on a modern Linux server running Oracle Linux 9, Rocky Linux 9, AlmaLinux 9, or RHEL 9.<\/p>\n<div contenteditable=\"false\">\n<hr \/>\n<\/div>\n<h2>Prerequisites<\/h2>\n<p class=\"isSelectedEnd\">Before starting, ensure the following requirements are met:<\/p>\n<ul data-spread=\"false\">\n<li>Root or sudo access to the server<\/li>\n<li>A registered domain name<\/li>\n<li>Proper DNS records configured:\n<ul data-spread=\"false\">\n<li>A record<\/li>\n<li>MX record<\/li>\n<li>PTR (Reverse DNS) record<\/li>\n<\/ul>\n<\/li>\n<li>A public IP address<\/li>\n<li>Firewall access<\/li>\n<li>Internet connectivity<\/li>\n<\/ul>\n<p class=\"isSelectedEnd\">Recommended hostname:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">mail.example.com<\/code><\/pre>\n<div contenteditable=\"false\">\n<hr \/>\n<\/div>\n<h2>Mail Flow Overview<\/h2>\n<p class=\"isSelectedEnd\">The architecture used in this guide is:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">Internet\n   \u2502\n   \u25bc\nPostfix (SMTP)\n   \u2502\n   \u25bc\nMaildir Storage\n   \u2502\n   \u25bc\nDovecot (IMAP\/POP3)\n   \u2502\n   \u25bc\nMail Clients<\/code><\/pre>\n<div contenteditable=\"false\">\n<hr \/>\n<\/div>\n<h2>Step 1 \u2013 Install Postfix and Dovecot<\/h2>\n<p class=\"isSelectedEnd\">Update the operating system:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">sudo dnf update -y<\/code><\/pre>\n<p class=\"isSelectedEnd\">Install Postfix and Dovecot:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">sudo dnf install postfix dovecot -y<\/code><\/pre>\n<p class=\"isSelectedEnd\">Enable services:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">sudo systemctl enable postfix\nsudo systemctl enable dovecot<\/code><\/pre>\n<p class=\"isSelectedEnd\">Start Postfix:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">sudo systemctl start postfix<\/code><\/pre>\n<p class=\"isSelectedEnd\">Verify:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">sudo systemctl status postfix<\/code><\/pre>\n<div contenteditable=\"false\">\n<hr \/>\n<\/div>\n<h2>Step 2 \u2013 Create a Dedicated Mail User<\/h2>\n<p class=\"isSelectedEnd\">Create a system account to own mailbox files:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">sudo useradd -r -s \/sbin\/nologin vmail<\/code><\/pre>\n<p class=\"isSelectedEnd\">Verify the UID and GID:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">id vmail<\/code><\/pre>\n<p class=\"isSelectedEnd\">Example:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">uid=5000(vmail) gid=5000(vmail)<\/code><\/pre>\n<p class=\"isSelectedEnd\">Record these values for later use.<\/p>\n<div contenteditable=\"false\">\n<hr \/>\n<\/div>\n<h2>Step 3 \u2013 Create Mail Storage Directories<\/h2>\n<p class=\"isSelectedEnd\">Create the virtual mailbox structure:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">sudo mkdir -p \/var\/mail\/vhosts<\/code><\/pre>\n<p class=\"isSelectedEnd\">Assign ownership:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">sudo chown -R vmail:vmail \/var\/mail\/vhosts<\/code><\/pre>\n<div contenteditable=\"false\">\n<hr \/>\n<\/div>\n<h2>Step 4 \u2013 Configure Postfix<\/h2>\n<p class=\"isSelectedEnd\">Backup the existing configuration:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">sudo cp \/etc\/postfix\/main.cf \/etc\/postfix\/main.cf.bak<\/code><\/pre>\n<p class=\"isSelectedEnd\">Edit:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">sudo vi \/etc\/postfix\/main.cf<\/code><\/pre>\n<p class=\"isSelectedEnd\">Add or modify:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">myhostname = mail.example.com\nmydomain = example.com\nmyorigin = $mydomain\n\ninet_interfaces = all\ninet_protocols = ipv4\n\nmynetworks = 127.0.0.0\/8\n\nhome_mailbox = Maildir\/\n\nvirtual_mailbox_domains = \/etc\/postfix\/virtual_domains\nvirtual_mailbox_base = \/var\/mail\/vhosts\nvirtual_mailbox_maps = hash:\/etc\/postfix\/vmailbox\n\nvirtual_uid_maps = static:5000\nvirtual_gid_maps = static:5000\n\nvirtual_alias_maps = hash:\/etc\/postfix\/virtual<\/code><\/pre>\n<p class=\"isSelectedEnd\">Replace the UID and GID values with those assigned to the <code dir=\"ltr\">vmail<\/code> user.<\/p>\n<div contenteditable=\"false\">\n<hr \/>\n<\/div>\n<h2>Step 5 \u2013 Configure Virtual Domains<\/h2>\n<p class=\"isSelectedEnd\">Create the domain list:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">sudo vi \/etc\/postfix\/virtual_domains<\/code><\/pre>\n<p class=\"isSelectedEnd\">Example:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">example.com\nexample.net<\/code><\/pre>\n<div contenteditable=\"false\">\n<hr \/>\n<\/div>\n<h2>Step 6 \u2013 Configure Mailboxes<\/h2>\n<p class=\"isSelectedEnd\">Create mailbox mappings:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">sudo vi \/etc\/postfix\/vmailbox<\/code><\/pre>\n<p class=\"isSelectedEnd\">Example:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">info@example.com example.com\/info\/\nadmin@example.com example.com\/admin\/<\/code><\/pre>\n<p class=\"isSelectedEnd\">For a catch-all mailbox:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">@example.com example.com\/catchall\/<\/code><\/pre>\n<div contenteditable=\"false\">\n<hr \/>\n<\/div>\n<h2>Step 7 \u2013 Generate Postfix Lookup Databases<\/h2>\n<p class=\"isSelectedEnd\">Generate Postfix hash tables:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">sudo postmap \/etc\/postfix\/vmailbox\nsudo postmap \/etc\/postfix\/virtual<\/code><\/pre>\n<p class=\"isSelectedEnd\">Whenever these files are updated, rerun the commands above.<\/p>\n<div contenteditable=\"false\">\n<hr \/>\n<\/div>\n<h2>Step 8 \u2013 Configure Dovecot<\/h2>\n<p class=\"isSelectedEnd\">Edit:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">sudo vi \/etc\/dovecot\/dovecot.conf<\/code><\/pre>\n<p class=\"isSelectedEnd\">Configure:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">protocols = imap pop3\nlisten = *<\/code><\/pre>\n<div contenteditable=\"false\">\n<hr \/>\n<\/div>\n<h2>Step 9 \u2013 Configure Mail Storage<\/h2>\n<p class=\"isSelectedEnd\">Edit:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">sudo vi \/etc\/dovecot\/conf.d\/10-mail.conf<\/code><\/pre>\n<p class=\"isSelectedEnd\">Configure:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">mail_location = maildir:\/var\/mail\/vhosts\/%d\/%n\n\nmail_uid = 5000\nmail_gid = 5000<\/code><\/pre>\n<div contenteditable=\"false\">\n<hr \/>\n<\/div>\n<h2>Step 10 \u2013 Configure Authentication<\/h2>\n<p class=\"isSelectedEnd\">Edit:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">sudo vi \/etc\/dovecot\/conf.d\/10-auth.conf<\/code><\/pre>\n<p class=\"isSelectedEnd\">Recommended settings:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">disable_plaintext_auth = yes\nauth_mechanisms = plain login<\/code><\/pre>\n<p class=\"isSelectedEnd\">Enable password-file authentication:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">!include auth-passwdfile.conf.ext<\/code><\/pre>\n<div contenteditable=\"false\">\n<hr \/>\n<\/div>\n<h2>Step 11 \u2013 Create Mail Users<\/h2>\n<p class=\"isSelectedEnd\">Generate a password hash:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">doveadm pw -s SHA512-CRYPT<\/code><\/pre>\n<p class=\"isSelectedEnd\">Create the user database:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">sudo vi \/etc\/dovecot\/users<\/code><\/pre>\n<p class=\"isSelectedEnd\">Example:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">info@example.com:{SHA512-CRYPT}$6$hashedpassword::::::<\/code><\/pre>\n<p class=\"isSelectedEnd\">Set permissions:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">sudo chmod 600 \/etc\/dovecot\/users<\/code><\/pre>\n<div contenteditable=\"false\">\n<hr \/>\n<\/div>\n<h2>Step 12 \u2013 Configure Dovecot Authentication Socket<\/h2>\n<p class=\"isSelectedEnd\">Edit:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">sudo vi \/etc\/dovecot\/conf.d\/10-master.conf<\/code><\/pre>\n<p class=\"isSelectedEnd\">Add:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">service auth {\n\n  unix_listener \/var\/spool\/postfix\/private\/auth {\n      mode = 0660\n      user = postfix\n      group = postfix\n  }\n\n}<\/code><\/pre>\n<p class=\"isSelectedEnd\">This allows Postfix to authenticate users through Dovecot.<\/p>\n<div contenteditable=\"false\">\n<hr \/>\n<\/div>\n<h2>Step 13 \u2013 Configure TLS Encryption<\/h2>\n<p class=\"isSelectedEnd\">Install Certbot:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">sudo dnf install certbot -y<\/code><\/pre>\n<p class=\"isSelectedEnd\">Generate a Let&#8217;s Encrypt certificate:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">sudo certbot certonly --standalone \\\n-d mail.example.com<\/code><\/pre>\n<p class=\"isSelectedEnd\">Certificates are stored in:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">\/etc\/letsencrypt\/live\/mail.example.com\/<\/code><\/pre>\n<div contenteditable=\"false\">\n<hr \/>\n<\/div>\n<h2>Step 14 \u2013 Configure Postfix TLS<\/h2>\n<p class=\"isSelectedEnd\">Edit:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">sudo vi \/etc\/postfix\/main.cf<\/code><\/pre>\n<p class=\"isSelectedEnd\">Add:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">smtpd_tls_security_level = may\n\nsmtpd_tls_cert_file =\n\/etc\/letsencrypt\/live\/mail.example.com\/fullchain.pem\n\nsmtpd_tls_key_file =\n\/etc\/letsencrypt\/live\/mail.example.com\/privkey.pem\n\nsmtpd_sasl_auth_enable = yes\nsmtpd_sasl_type = dovecot\nsmtpd_sasl_path = private\/auth<\/code><\/pre>\n<div contenteditable=\"false\">\n<hr \/>\n<\/div>\n<h2>Step 15 \u2013 Enable Submission and SMTPS<\/h2>\n<p class=\"isSelectedEnd\">Edit:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">sudo vi \/etc\/postfix\/master.cf<\/code><\/pre>\n<p class=\"isSelectedEnd\">Enable:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">submission inet n - n - - smtpd\n\nsmtps inet n - n - - smtpd<\/code><\/pre>\n<p class=\"isSelectedEnd\">Restart Postfix:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">sudo systemctl restart postfix<\/code><\/pre>\n<div contenteditable=\"false\">\n<hr \/>\n<\/div>\n<h2>Step 16 \u2013 Configure Dovecot SSL<\/h2>\n<p class=\"isSelectedEnd\">Edit:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">sudo vi \/etc\/dovecot\/conf.d\/10-ssl.conf<\/code><\/pre>\n<p class=\"isSelectedEnd\">Configure:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">ssl = required\n\nssl_cert =\n&lt;\/etc\/letsencrypt\/live\/mail.example.com\/fullchain.pem\n\nssl_key =\n&lt;\/etc\/letsencrypt\/live\/mail.example.com\/privkey.pem<\/code><\/pre>\n<p class=\"isSelectedEnd\">Restart Dovecot:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">sudo systemctl restart dovecot<\/code><\/pre>\n<div contenteditable=\"false\">\n<hr \/>\n<\/div>\n<h2>Step 17 \u2013 Open Firewall Ports<\/h2>\n<p class=\"isSelectedEnd\">Allow mail-related services:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">sudo firewall-cmd --permanent --add-service=smtp\nsudo firewall-cmd --permanent --add-service=submission\nsudo firewall-cmd --permanent --add-service=imap\nsudo firewall-cmd --permanent --add-service=imaps\nsudo firewall-cmd --permanent --add-service=pop3\nsudo firewall-cmd --permanent --add-service=pop3s\n\nsudo firewall-cmd --reload<\/code><\/pre>\n<div contenteditable=\"false\">\n<hr \/>\n<\/div>\n<h2>Step 18 \u2013 Verify Services<\/h2>\n<p class=\"isSelectedEnd\">Check Postfix:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">sudo postfix check\nsudo systemctl status postfix<\/code><\/pre>\n<p class=\"isSelectedEnd\">Check Dovecot:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">sudo dovecot -n\nsudo systemctl status dovecot<\/code><\/pre>\n<p class=\"isSelectedEnd\">Verify listening ports:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">ss -tulpn<\/code><\/pre>\n<p class=\"isSelectedEnd\">Expected ports:<\/p>\n<table>\n<tbody>\n<tr>\n<th>Service<\/th>\n<th>Port<\/th>\n<\/tr>\n<tr>\n<td>SMTP<\/td>\n<td>25<\/td>\n<\/tr>\n<tr>\n<td>SMTPS<\/td>\n<td>465<\/td>\n<\/tr>\n<tr>\n<td>Submission<\/td>\n<td>587<\/td>\n<\/tr>\n<tr>\n<td>POP3<\/td>\n<td>110<\/td>\n<\/tr>\n<tr>\n<td>POP3S<\/td>\n<td>995<\/td>\n<\/tr>\n<tr>\n<td>IMAP<\/td>\n<td>143<\/td>\n<\/tr>\n<tr>\n<td>IMAPS<\/td>\n<td>993<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div contenteditable=\"false\">\n<hr \/>\n<\/div>\n<h2>Recommended DNS Records<\/h2>\n<p class=\"isSelectedEnd\">To improve deliverability, configure:<\/p>\n<p><strong>SPF<\/strong><\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">TXT  \"v=spf1 mx ip4:YOUR_SERVER_IP -all\"<\/code><\/pre>\n<p><strong>DKIM<\/strong><\/p>\n<p class=\"isSelectedEnd\">Use OpenDKIM to sign outgoing messages.<\/p>\n<p><strong>DMARC<\/strong><\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">TXT \"v=DMARC1; p=quarantine;\"<\/code><\/pre>\n<p class=\"isSelectedEnd\">These records help prevent spoofing and improve inbox placement.<\/p>\n<div contenteditable=\"false\">\n<hr \/>\n<\/div>\n<h2>Testing the Mail Server<\/h2>\n<p class=\"isSelectedEnd\">After configuration:<\/p>\n<ol start=\"1\" data-spread=\"false\">\n<li>Send a test email from Gmail or Outlook.<\/li>\n<li>Verify message delivery.<\/li>\n<li>Configure a mail client using IMAP.<\/li>\n<li>Test SMTP authentication.<\/li>\n<li>Validate TLS encryption.<\/li>\n<\/ol>\n<p class=\"isSelectedEnd\">Useful logs:<\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">\/var\/log\/maillog\njournalctl -u postfix\njournalctl -u dovecot<\/code><\/pre>\n<div contenteditable=\"false\">\n<hr \/>\n<\/div>\n<h2>Troubleshooting<\/h2>\n<p><strong>Verify Postfix<\/strong><\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">postfix check<\/code><\/pre>\n<p><strong>Verify Dovecot<\/strong><\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">dovecot -n<\/code><\/pre>\n<p><strong>Check Listening Ports<\/strong><\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">ss -tulpn<\/code><\/pre>\n<p><strong>Monitor Logs<\/strong><\/p>\n<pre dir=\"ltr\"><code dir=\"ltr\">tail -f \/var\/log\/maillog<\/code><\/pre>\n<div contenteditable=\"false\">\n<hr \/>\n<\/div>\n<h2>Conclusion<\/h2>\n<p class=\"isSelectedEnd\">Postfix and Dovecot provide a reliable and secure foundation for self-hosted email services. By combining Postfix for SMTP delivery and Dovecot for mailbox access, administrators can host email for multiple domains while maintaining complete control over security, privacy, and infrastructure.<\/p>\n<p>For production environments, consider adding OpenDKIM, OpenDMARC, spam filtering, malware scanning, automated backups, monitoring, and high-availability configurations to further strengthen your mail platform.<\/p>\n<div contenteditable=\"false\">\n<hr \/>\n<\/div>\n<h2>Frequently Asked Questions (FAQ)<\/h2>\n<p><strong>1. Why should I use Postfix instead of Sendmail?<\/strong><\/p>\n<p class=\"isSelectedEnd\">Postfix was designed as a secure and high-performance alternative to Sendmail. It offers easier configuration, better security architecture, improved reliability, and lower maintenance overhead, making it the preferred choice for most Linux mail server deployments.<\/p>\n<div contenteditable=\"false\">\n<hr \/>\n<\/div>\n<p><strong>2. What is the role of Dovecot in a mail server?<\/strong><\/p>\n<p class=\"isSelectedEnd\">Postfix handles the sending and receiving of email via SMTP, while Dovecot provides IMAP and POP3 services that allow users to access and manage their mailboxes from email clients such as Outlook, Thunderbird, Apple Mail, and mobile devices.<\/p>\n<div contenteditable=\"false\">\n<hr \/>\n<\/div>\n<p><strong>3. Can I host multiple domains on a single server?<\/strong><\/p>\n<p>Yes. Postfix supports virtual domains, allowing a single server to host email services for multiple domains. Each domain can have its own users, aliases, and mailbox structure.<\/p>\n<div contenteditable=\"false\">\n<hr \/>\n<\/div>\n<h2>Related Articles<\/h2>\n<ol start=\"1\" data-spread=\"true\">\n<li><strong>Remove an Email Account from the cPanel Backend<\/strong><br \/>\n<a href=\"https:\/\/pheonixsolutions.com\/blog\/remove-email-account-at-the-back-end\/\">Remove an Email Account from the cPanel Backend<\/a><\/li>\n<li><strong>Enable or Disable Webmail Applications for cPanel Users<\/strong><br \/>\n<a href=\"https:\/\/pheonixsolutions.com\/blog\/cpanel-enabledisable-specific-webmail-application-per-user\/\">Enable or Disable Webmail Applications for cPanel Users<\/a><\/li>\n<li><strong>Monitor Logged-In Mail Users with a Shell Script<\/strong><br \/>\n<a href=\"https:\/\/pheonixsolutions.com\/blog\/shell-script-logged-in-mail\/\">Monitor Logged-In Mail Users with a Shell Script<\/a><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Email remains one of the most important communication channels for businesses and organizations. Running your own mail server provides [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[1019],"tags":[],"class_list":["post-1690","post","type-post","status-publish","format-standard","hentry","category-cloud-aws","psol-cat-cloud-aws"],"jetpack_publicize_connections":[],"jetpack_shortlink":"https:\/\/wp.me\/phn2x7-rg","jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/1690","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/comments?post=1690"}],"version-history":[{"count":6,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/1690\/revisions"}],"predecessor-version":[{"id":11389,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/1690\/revisions\/11389"}],"wp:attachment":[{"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/media?parent=1690"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/categories?post=1690"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pheonixsolutions.com\/blog\/wp-json\/wp\/v2\/tags?post=1690"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}