<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[insights]]></title><description><![CDATA[Code, sleep, eat, rinse, and repeat]]></description><link>https://insightssss.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!599U!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc559b667-d7dc-4074-8b42-f87663ae5321_3488x3488.jpeg</url><title>insights</title><link>https://insightssss.substack.com</link></image><generator>Substack</generator><lastBuildDate>Fri, 03 Jul 2026 01:23:03 GMT</lastBuildDate><atom:link href="https://insightssss.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[insights]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[insightssss@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[insightssss@substack.com]]></itunes:email><itunes:name><![CDATA[insights]]></itunes:name></itunes:owner><itunes:author><![CDATA[insights]]></itunes:author><googleplay:owner><![CDATA[insightssss@substack.com]]></googleplay:owner><googleplay:email><![CDATA[insightssss@substack.com]]></googleplay:email><googleplay:author><![CDATA[insights]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[How to Install WordPress on Cyberpanel ]]></title><description><![CDATA[In this guide, I will walk you through how to install WordPress on Cyberpanel.]]></description><link>https://insightssss.substack.com/p/how-to-install-wordpress-on-cyberpanel</link><guid isPermaLink="false">https://insightssss.substack.com/p/how-to-install-wordpress-on-cyberpanel</guid><dc:creator><![CDATA[insights]]></dc:creator><pubDate>Tue, 12 Aug 2025 21:43:55 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/2d9218ac-2572-4bd3-ba3e-3a3991d09424_930x620.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In this guide, I will walk you through how to install WordPress on Cyberpanel. If you&#8217;ve already set up CyberPanel on a<strong><a href="https://www.anrdoezrs.net/click-100388623-15022370"> VPS</a></strong>, you can go to the next step. Just in case you have not installed CyberPanel on your VPS machine, check out my previous post on <strong><a href="https://j-insights.com/install-cyberpanel-on-contabo/">how to install CyberPanel</a></strong> on a <strong><a href="https://www.anrdoezrs.net/click-100388623-15022370">contabo VPS</a></strong>. You can also check the medium version of the installation <strong><a href="https://medium.com/@insightsuggests/how-to-install-cyberpanel-on-contabo-9024b6040f44">here</a></strong>.</p><p>In this guide, we&#8217;ll walk through how to install WordPress on CyberPanel so you can launch a WordPress site, using CyberPanel&#8217;s one-click installer. By the end, you&#8217;ll have WordPress up and running, with databases, domains, and security configured to keep things smooth and scalable.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://insightssss.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h3>Installing WordPress on CyberPanel</h3><p>I am sure by now you have installed CyberPanel on your <strong><a href="https://www.anrdoezrs.net/click-100388623-15022370">VPS</a></strong>, and if you haven&#8217;t, please check out the article I shared in the first paragraph.</p><p>Also, ensure to map your domain name. This is so that you can access your website with your domain name instead of your VPS IP address. Let&#8217;s take <strong><a href="https://shareasale.com/r.cfm?b=1470528&amp;u=2801079&amp;m=46483&amp;urllink=&amp;afftrack=">Namecheap</a></strong> for instance; to map your domain to a VPS IP on Namecheap:</p><p>Log in to your <strong><a href="https://shareasale.com/r.cfm?b=1470528&amp;u=2801079&amp;m=46483&amp;urllink=&amp;afftrack=">Namecheap</a></strong> account and go to the Domain List. Click &#8216;Manage&#8217; next to the domain you want to configure. Select the &#8216;Advanced DNS&#8217; tab.</p><p>In the &#8216;Host Records&#8217; section, you&#8217;ll find the option to add a new record. Create an A record. In the &#8216;Host&#8217; field, enter &#8216;@&#8217; (which represents your domain) or a subdomain.</p><p>In the &#8216;IP Address&#8217; field, enter the IP address of your VPS. Finally, save the changes. It may take some time for the DNS changes to propagate across the internet.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!d-nQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60972b62-e424-4ade-8aec-9a37dfc16420_1024x554.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!d-nQ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60972b62-e424-4ade-8aec-9a37dfc16420_1024x554.jpeg 424w, https://substackcdn.com/image/fetch/$s_!d-nQ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60972b62-e424-4ade-8aec-9a37dfc16420_1024x554.jpeg 848w, https://substackcdn.com/image/fetch/$s_!d-nQ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60972b62-e424-4ade-8aec-9a37dfc16420_1024x554.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!d-nQ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60972b62-e424-4ade-8aec-9a37dfc16420_1024x554.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!d-nQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60972b62-e424-4ade-8aec-9a37dfc16420_1024x554.jpeg" width="1024" height="554" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/60972b62-e424-4ade-8aec-9a37dfc16420_1024x554.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:554,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Install WordPress on Cyberpanel&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Install WordPress on Cyberpanel" title="Install WordPress on Cyberpanel" srcset="https://substackcdn.com/image/fetch/$s_!d-nQ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60972b62-e424-4ade-8aec-9a37dfc16420_1024x554.jpeg 424w, https://substackcdn.com/image/fetch/$s_!d-nQ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60972b62-e424-4ade-8aec-9a37dfc16420_1024x554.jpeg 848w, https://substackcdn.com/image/fetch/$s_!d-nQ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60972b62-e424-4ade-8aec-9a37dfc16420_1024x554.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!d-nQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F60972b62-e424-4ade-8aec-9a37dfc16420_1024x554.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Once your domain mapping is done, you need to access your CyberPanel dashboard to be able to create a WordPress website.</p><h3>Accessing CyberPanel</h3><ul><li><p>Log in to CyberPanel dashboard: To log in to CyberPanel, go to </p></li></ul><p>https://yourdomainname.com:8090/.</p><ul><li><p> You will see a login page as in below:</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yq5k!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F322ada9a-92da-4817-a880-982268a19b3c_1024x556.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yq5k!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F322ada9a-92da-4817-a880-982268a19b3c_1024x556.jpeg 424w, https://substackcdn.com/image/fetch/$s_!yq5k!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F322ada9a-92da-4817-a880-982268a19b3c_1024x556.jpeg 848w, https://substackcdn.com/image/fetch/$s_!yq5k!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F322ada9a-92da-4817-a880-982268a19b3c_1024x556.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!yq5k!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F322ada9a-92da-4817-a880-982268a19b3c_1024x556.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yq5k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F322ada9a-92da-4817-a880-982268a19b3c_1024x556.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/322ada9a-92da-4817-a880-982268a19b3c_1024x556.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Install WordPress on Cyberpanel&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Install WordPress on Cyberpanel" title="Install WordPress on Cyberpanel" srcset="https://substackcdn.com/image/fetch/$s_!yq5k!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F322ada9a-92da-4817-a880-982268a19b3c_1024x556.jpeg 424w, https://substackcdn.com/image/fetch/$s_!yq5k!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F322ada9a-92da-4817-a880-982268a19b3c_1024x556.jpeg 848w, https://substackcdn.com/image/fetch/$s_!yq5k!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F322ada9a-92da-4817-a880-982268a19b3c_1024x556.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!yq5k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F322ada9a-92da-4817-a880-982268a19b3c_1024x556.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>If for any reason you don&#8217;t know your password, log in to your server via SSH and run the following command:</p><pre><code>sudo cat .litespeed_password</code></pre><p>Then you should have your password displayed on the terminal. Also, note that the username is &#8216;<strong>admin</strong>&#8217;</p><h3>Creating a website on Cyberpanel</h3><ul><li><p>Navigate to Websites &gt; Create Website</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!cRBI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8046af36-8cd5-4a08-ab73-621c4e82d3ee_1024x558.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!cRBI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8046af36-8cd5-4a08-ab73-621c4e82d3ee_1024x558.jpeg 424w, https://substackcdn.com/image/fetch/$s_!cRBI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8046af36-8cd5-4a08-ab73-621c4e82d3ee_1024x558.jpeg 848w, https://substackcdn.com/image/fetch/$s_!cRBI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8046af36-8cd5-4a08-ab73-621c4e82d3ee_1024x558.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!cRBI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8046af36-8cd5-4a08-ab73-621c4e82d3ee_1024x558.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!cRBI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8046af36-8cd5-4a08-ab73-621c4e82d3ee_1024x558.jpeg" width="1024" height="558" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8046af36-8cd5-4a08-ab73-621c4e82d3ee_1024x558.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:558,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Install WordPress on Cyberpanel&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Install WordPress on Cyberpanel" title="Install WordPress on Cyberpanel" srcset="https://substackcdn.com/image/fetch/$s_!cRBI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8046af36-8cd5-4a08-ab73-621c4e82d3ee_1024x558.jpeg 424w, https://substackcdn.com/image/fetch/$s_!cRBI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8046af36-8cd5-4a08-ab73-621c4e82d3ee_1024x558.jpeg 848w, https://substackcdn.com/image/fetch/$s_!cRBI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8046af36-8cd5-4a08-ab73-621c4e82d3ee_1024x558.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!cRBI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8046af36-8cd5-4a08-ab73-621c4e82d3ee_1024x558.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p>Enter domain name</p></li><li><p>Select package as default</p></li><li><p>Select owner as admin</p></li><li><p>Enter your email address</p></li><li><p>Choose PHP version and handler</p></li></ul><p>Now go to websites &gt; list websites &gt; select the domain you added to cyberpanel &gt; Click on manage</p><h3>Installing WordPress</h3><p>Now, scroll down and you will WordPress one-click installer option as seen in the picture below:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9b7z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f9fc976-4c3e-4a4f-a684-b34e4dc8f5af_1024x552.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9b7z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f9fc976-4c3e-4a4f-a684-b34e4dc8f5af_1024x552.jpeg 424w, https://substackcdn.com/image/fetch/$s_!9b7z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f9fc976-4c3e-4a4f-a684-b34e4dc8f5af_1024x552.jpeg 848w, https://substackcdn.com/image/fetch/$s_!9b7z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f9fc976-4c3e-4a4f-a684-b34e4dc8f5af_1024x552.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!9b7z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f9fc976-4c3e-4a4f-a684-b34e4dc8f5af_1024x552.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9b7z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f9fc976-4c3e-4a4f-a684-b34e4dc8f5af_1024x552.jpeg" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2f9fc976-4c3e-4a4f-a684-b34e4dc8f5af_1024x552.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:null,&quot;width&quot;:null,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Install WordPress on Cyberpanel&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Install WordPress on Cyberpanel" title="Install WordPress on Cyberpanel" srcset="https://substackcdn.com/image/fetch/$s_!9b7z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f9fc976-4c3e-4a4f-a684-b34e4dc8f5af_1024x552.jpeg 424w, https://substackcdn.com/image/fetch/$s_!9b7z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f9fc976-4c3e-4a4f-a684-b34e4dc8f5af_1024x552.jpeg 848w, https://substackcdn.com/image/fetch/$s_!9b7z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f9fc976-4c3e-4a4f-a684-b34e4dc8f5af_1024x552.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!9b7z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2f9fc976-4c3e-4a4f-a684-b34e4dc8f5af_1024x552.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><ul><li><p>Choose WordPress &gt; Install WordPress</p></li><li><p>Set WordPress admin username and password</p></li><li><p>Enter your email address and ensure the installation path or directory is left empty. This is so that WordPress can be installed on the root of your domain. Now launch WordPress and wait for a moment for CyberPanel to install WordPress for you. Then visit your domain, and you should see WordPress installed already.</p></li></ul><h3>Post-install basics</h3><ul><li><p>Log in to WordPress: <a href="https://yourdomain.com/wp-admin">https://yourdomain.com/wp-admin</a></p></li><li><p>Run recommended plugins/themes (keep it lean initially)</p></li><li><p>Enable SSL:</p></li><li><p>CyberPanel &gt; SSL &gt; Manage SSL &gt; Cert Manager</p></li><li><p>Permalinks setup: Settings &gt; Permalinks &gt; Post name</p></li></ul><ol><li><p>Ongoing optimization</p></li></ol><ul><li><p>Backups: CyberPanel &gt; Backup/Restore &gt; Schedule backups</p></li><li><p>Caching: CyberPanel &gt; OpenLiteSpeed/LSCache configuration</p></li><li><p>Resource monitoring: CyberPanel dashboard widgets or server stats</p></li><li><p>Security hygiene: update WordPress core/themes/plugins regularly</p></li></ul><p>This is basically how to install WordPress on Cyberpanel and run your WordPress website. I will be in the comment section. If you have any questions, you can ask or open a question in our <strong><a href="https://j-insights.com/community">forum</a></strong>.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://insightssss.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[How to Install Cyberpanel on Contabo.]]></title><description><![CDATA[If you&#8217;re new to server management but want more control over your websites, CyberPanel gives you an easy way to handle domains, databases, SSL, and backups from a single dashboard.]]></description><link>https://insightssss.substack.com/p/how-to-install-cyberpanel-on-contabo</link><guid isPermaLink="false">https://insightssss.substack.com/p/how-to-install-cyberpanel-on-contabo</guid><dc:creator><![CDATA[insights]]></dc:creator><pubDate>Mon, 11 Aug 2025 16:09:33 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/8abee3d6-d178-4e15-b80f-f4aaef4c9eec_930x620.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>If you&#8217;re new to server management but want more control over your websites, CyberPanel gives you an easy way to handle domains, databases, SSL, and backups from a single dashboard. There are a lot of control panels out there, such as <strong><a href="https://www.cpanel.net/">cpanel</a></strong>, <strong><a href="https://vestacp.com/">vestaCP</a></strong>, <strong><a href="https://www.spanel.io/">Spane,l</a></strong> etc. You can check these out if you want, but the reason I love Cyberpanel is that it is free and open source, and it provides you with everything you need to run and manage your website without incurring any cost. This guide walks you through how to install <strong><a href="https://cyberpanel.net/">Cyberpanel</a></strong> on <strong><a href="https://www.anrdoezrs.net/click-100388623-15022370">Contabo</a></strong> VPS and get a website or service up and running quickly.</p><h3>Why run CyberPanel on a VPS?</h3><p>Running CyberPanel on a <strong><a href="https://www.anrdoezrs.net/click-100388623-15022370">VPS</a></strong> is important because it gives you dedicated resources (CPU, RAM, storage), security, and optimization compared to shared hosting. Also, if speed, performance, and SEO are of great importance to you, <strong><a href="https://www.anrdoezrs.net/click-100388623-15022370">VPS</a></strong> is the best way to go. The server resources are for you and you alone. By combining CyberPanel with a high-spec <strong><a href="https://www.anrdoezrs.net/click-100388623-15022370">VPS</a></strong> like <strong><a href="https://www.anrdoezrs.net/click-100388623-15022370">contabo</a></strong>, you gain reliable resource allocation, predictable performance, and scalability as your traffic grows.</p><h3>Why <a href="https://www.anrdoezrs.net/click-100388623-15022370">Contabo</a> for this setup?</h3><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!P10f!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7566871-16dc-4985-89c5-9b2b0ea088a7_1388x615.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!P10f!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7566871-16dc-4985-89c5-9b2b0ea088a7_1388x615.png 424w, https://substackcdn.com/image/fetch/$s_!P10f!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7566871-16dc-4985-89c5-9b2b0ea088a7_1388x615.png 848w, https://substackcdn.com/image/fetch/$s_!P10f!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7566871-16dc-4985-89c5-9b2b0ea088a7_1388x615.png 1272w, https://substackcdn.com/image/fetch/$s_!P10f!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7566871-16dc-4985-89c5-9b2b0ea088a7_1388x615.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!P10f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7566871-16dc-4985-89c5-9b2b0ea088a7_1388x615.png" width="1388" height="615" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f7566871-16dc-4985-89c5-9b2b0ea088a7_1388x615.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:615,&quot;width&quot;:1388,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Install Cyberpanel on Contabo&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Install Cyberpanel on Contabo" title="Install Cyberpanel on Contabo" srcset="https://substackcdn.com/image/fetch/$s_!P10f!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7566871-16dc-4985-89c5-9b2b0ea088a7_1388x615.png 424w, https://substackcdn.com/image/fetch/$s_!P10f!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7566871-16dc-4985-89c5-9b2b0ea088a7_1388x615.png 848w, https://substackcdn.com/image/fetch/$s_!P10f!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7566871-16dc-4985-89c5-9b2b0ea088a7_1388x615.png 1272w, https://substackcdn.com/image/fetch/$s_!P10f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff7566871-16dc-4985-89c5-9b2b0ea088a7_1388x615.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong><a href="https://www.anrdoezrs.net/click-100388623-15022370">Contabo</a></strong> is an excellent choice for running CyberPanel on a VPS. They offer high-end server resources at a very affordable price, making it the best choice for developers, startups, and growing businesses. Now, let&#8217;s go into how to install Cyberpanel on <strong><a href="https://www.anrdoezrs.net/click-100388623-15022370">Contabo</a></strong>:</p><h3>Requirements for Installation.</h3><p>To install CyberPanel on contabo, you need to ensure that you meet the following specifications:</p><ul><li><p>A domain name from <strong><a href="https://shareasale.com/r.cfm?b=1470528&amp;u=2801079&amp;m=46483&amp;urllink=&amp;afftrack=">namecheap</a></strong> or any domain of your choice</p></li><li><p><strong><a href="https://www.anrdoezrs.net/click-100388623-15022370">Contabo</a></strong> VPS Server with fresh installation of <strong>Ubuntu 18.04, Ubuntu 20.04, AlmaLinux 8, AlmaLinux </strong>9<strong>, Ubuntu 22.04</strong>, or <strong>CloudLinux 8</strong>.</p></li><li><p><strong>At least 1024 MB RAM, or higher</strong></p></li><li><p><strong>10GB Disk Space</strong></p></li></ul><p>The good thing is that <strong><a href="https://www.anrdoezrs.net/click-100388623-15022370">contabo</a></strong> offers more than these resources at a cheap price. That said, let's get into the installation proper.</p><h3>Cyberpanel licenses</h3><p>It is very important to understand that there are two types of cyberpanel. We have the <strong>normal CyberPanel</strong> and the <strong>enterprise version</strong>. However, they&#8217;re the same in both versions. The only difference is the web server running each of the versions.</p><ol><li><p><strong>Normal</strong> <strong>CyberPanel</strong> comes with the OpenLiteSpeed web server, and it is completely free to host an unlimited number of domains.</p></li><li><p><strong>CyberPanel</strong> <strong>Enterprise </strong>comes with LiteSpeed Web Server Enterprise, and it is free for one domain. If you want more domains to be hosted, you can get different plans according to your needs on their <a href="https://cyberpanel.net/litespeed-enterprise-get-started">Pricing page</a>.</p></li></ol><h3>Installing Cyberpanel</h3><p>In this tutorial, I will be using Ubuntu 22.04. Installing CyberPanel is simple: follow the steps below.</p><ul><li><p><strong>Step 1</strong>: <strong>Connect to the server command line via SSH client.</strong> (<strong>Termius</strong>, <strong>Putty</strong>, <strong>Bitvise</strong>, etc)<br>Log in as a Root user (Sudo will not work). You can get the Login details from <strong><a href="https://www.anrdoezrs.net/click-100388623-15022370">Contabo</a></strong> or any web host you are using.</p></li><li><p><strong>Step 2</strong>: <strong>Update server Packages.</strong><br>Update your server OS first (This updates all services and provides much better compatibility to run your installation). Run the following command</p></li></ul><pre><code>sudo apt update &amp;&amp; sudo apt upgrade -y</code></pre><p><em>Note: Ensure your server is running on ubuntu OS because the above code and the codes here are for ubuntu OS.</em></p><p><strong>Step 3</strong>: <strong>Run the Installation Script.</strong></p><p>Run the command below to automatically download and run the CyberPanel script. This will prompt you to choose the LiteSpeed version and additional add-ons you wish to install on your server.</p><pre><code>sh &lt;(curl https://cyberpanel.net/install.sh || wget -O - https://cyberpanel.net/install.sh)</code></pre><ul><li><p><strong>Step 4</strong>: <strong>Select the version of LiteSpeed that you would like to use.</strong><br>As said before, CyberPanel has two types, the normal version and the enterprise version. Select to <strong>install CyberPanel with openlitespeed</strong>.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!xIRO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03de397e-618d-42b6-a798-4e5870ed9b95_1024x649.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!xIRO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03de397e-618d-42b6-a798-4e5870ed9b95_1024x649.png 424w, https://substackcdn.com/image/fetch/$s_!xIRO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03de397e-618d-42b6-a798-4e5870ed9b95_1024x649.png 848w, https://substackcdn.com/image/fetch/$s_!xIRO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03de397e-618d-42b6-a798-4e5870ed9b95_1024x649.png 1272w, https://substackcdn.com/image/fetch/$s_!xIRO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03de397e-618d-42b6-a798-4e5870ed9b95_1024x649.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!xIRO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03de397e-618d-42b6-a798-4e5870ed9b95_1024x649.png" width="1024" height="649" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/03de397e-618d-42b6-a798-4e5870ed9b95_1024x649.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:649,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!xIRO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03de397e-618d-42b6-a798-4e5870ed9b95_1024x649.png 424w, https://substackcdn.com/image/fetch/$s_!xIRO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03de397e-618d-42b6-a798-4e5870ed9b95_1024x649.png 848w, https://substackcdn.com/image/fetch/$s_!xIRO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03de397e-618d-42b6-a798-4e5870ed9b95_1024x649.png 1272w, https://substackcdn.com/image/fetch/$s_!xIRO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F03de397e-618d-42b6-a798-4e5870ed9b95_1024x649.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p><strong>&#8211; Remote MySQL (default N):<br></strong>Wait for your Database to be installed on a remote server</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4vFX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6f36feb-253f-460c-977d-f6e1855c46eb_1024x189.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4vFX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6f36feb-253f-460c-977d-f6e1855c46eb_1024x189.png 424w, https://substackcdn.com/image/fetch/$s_!4vFX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6f36feb-253f-460c-977d-f6e1855c46eb_1024x189.png 848w, https://substackcdn.com/image/fetch/$s_!4vFX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6f36feb-253f-460c-977d-f6e1855c46eb_1024x189.png 1272w, https://substackcdn.com/image/fetch/$s_!4vFX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6f36feb-253f-460c-977d-f6e1855c46eb_1024x189.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4vFX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6f36feb-253f-460c-977d-f6e1855c46eb_1024x189.png" width="1024" height="189" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e6f36feb-253f-460c-977d-f6e1855c46eb_1024x189.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:189,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!4vFX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6f36feb-253f-460c-977d-f6e1855c46eb_1024x189.png 424w, https://substackcdn.com/image/fetch/$s_!4vFX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6f36feb-253f-460c-977d-f6e1855c46eb_1024x189.png 848w, https://substackcdn.com/image/fetch/$s_!4vFX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6f36feb-253f-460c-977d-f6e1855c46eb_1024x189.png 1272w, https://substackcdn.com/image/fetch/$s_!4vFX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6f36feb-253f-460c-977d-f6e1855c46eb_1024x189.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p><strong>CyberPanel Version (default Latest Version):<br></strong>You can choose to install a previous version of CyberPanel, or press Enter to install the latest version.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yts9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30c4d719-a346-4d80-b814-8af5de9d6f45_1024x130.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yts9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30c4d719-a346-4d80-b814-8af5de9d6f45_1024x130.png 424w, https://substackcdn.com/image/fetch/$s_!yts9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30c4d719-a346-4d80-b814-8af5de9d6f45_1024x130.png 848w, https://substackcdn.com/image/fetch/$s_!yts9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30c4d719-a346-4d80-b814-8af5de9d6f45_1024x130.png 1272w, https://substackcdn.com/image/fetch/$s_!yts9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30c4d719-a346-4d80-b814-8af5de9d6f45_1024x130.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yts9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30c4d719-a346-4d80-b814-8af5de9d6f45_1024x130.png" width="1024" height="130" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/30c4d719-a346-4d80-b814-8af5de9d6f45_1024x130.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:130,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yts9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30c4d719-a346-4d80-b814-8af5de9d6f45_1024x130.png 424w, https://substackcdn.com/image/fetch/$s_!yts9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30c4d719-a346-4d80-b814-8af5de9d6f45_1024x130.png 848w, https://substackcdn.com/image/fetch/$s_!yts9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30c4d719-a346-4d80-b814-8af5de9d6f45_1024x130.png 1272w, https://substackcdn.com/image/fetch/$s_!yts9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30c4d719-a346-4d80-b814-8af5de9d6f45_1024x130.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>&#8211; <strong>Password (default &#8220;1234567&#8221;):<br></strong>Using the default password is <strong>not advisable</strong>. It is recommended to set a <strong>strong </strong>password of your own by choosing &#8216;s&#8217; or generate a <strong>random </strong>password by selecting &#8216;r&#8217;. After the installation, you will see the password prompt displayed on the screen.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3_ot!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c15dde1-38e8-4916-9f2d-b4d8c951cd10_1024x141.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3_ot!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c15dde1-38e8-4916-9f2d-b4d8c951cd10_1024x141.png 424w, https://substackcdn.com/image/fetch/$s_!3_ot!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c15dde1-38e8-4916-9f2d-b4d8c951cd10_1024x141.png 848w, https://substackcdn.com/image/fetch/$s_!3_ot!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c15dde1-38e8-4916-9f2d-b4d8c951cd10_1024x141.png 1272w, https://substackcdn.com/image/fetch/$s_!3_ot!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c15dde1-38e8-4916-9f2d-b4d8c951cd10_1024x141.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3_ot!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c15dde1-38e8-4916-9f2d-b4d8c951cd10_1024x141.png" width="1024" height="141" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8c15dde1-38e8-4916-9f2d-b4d8c951cd10_1024x141.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:141,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!3_ot!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c15dde1-38e8-4916-9f2d-b4d8c951cd10_1024x141.png 424w, https://substackcdn.com/image/fetch/$s_!3_ot!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c15dde1-38e8-4916-9f2d-b4d8c951cd10_1024x141.png 848w, https://substackcdn.com/image/fetch/$s_!3_ot!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c15dde1-38e8-4916-9f2d-b4d8c951cd10_1024x141.png 1272w, https://substackcdn.com/image/fetch/$s_!3_ot!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8c15dde1-38e8-4916-9f2d-b4d8c951cd10_1024x141.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p><strong>Memcached (default Y):</strong><br>Distributed memory object caching system</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!QJCl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff56f31f4-fc2f-4e70-a732-1058f13afa2b_1024x160.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!QJCl!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff56f31f4-fc2f-4e70-a732-1058f13afa2b_1024x160.png 424w, https://substackcdn.com/image/fetch/$s_!QJCl!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff56f31f4-fc2f-4e70-a732-1058f13afa2b_1024x160.png 848w, https://substackcdn.com/image/fetch/$s_!QJCl!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff56f31f4-fc2f-4e70-a732-1058f13afa2b_1024x160.png 1272w, https://substackcdn.com/image/fetch/$s_!QJCl!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff56f31f4-fc2f-4e70-a732-1058f13afa2b_1024x160.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!QJCl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff56f31f4-fc2f-4e70-a732-1058f13afa2b_1024x160.png" width="1024" height="160" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f56f31f4-fc2f-4e70-a732-1058f13afa2b_1024x160.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:160,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!QJCl!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff56f31f4-fc2f-4e70-a732-1058f13afa2b_1024x160.png 424w, https://substackcdn.com/image/fetch/$s_!QJCl!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff56f31f4-fc2f-4e70-a732-1058f13afa2b_1024x160.png 848w, https://substackcdn.com/image/fetch/$s_!QJCl!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff56f31f4-fc2f-4e70-a732-1058f13afa2b_1024x160.png 1272w, https://substackcdn.com/image/fetch/$s_!QJCl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff56f31f4-fc2f-4e70-a732-1058f13afa2b_1024x160.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p><strong>Redis (default Y):</strong><br>In-memory data structure store, used as a database, cache, and message broker</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8jIa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32bc1d23-2d5d-421f-aab1-4a698968712c_1024x167.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8jIa!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32bc1d23-2d5d-421f-aab1-4a698968712c_1024x167.png 424w, https://substackcdn.com/image/fetch/$s_!8jIa!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32bc1d23-2d5d-421f-aab1-4a698968712c_1024x167.png 848w, https://substackcdn.com/image/fetch/$s_!8jIa!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32bc1d23-2d5d-421f-aab1-4a698968712c_1024x167.png 1272w, https://substackcdn.com/image/fetch/$s_!8jIa!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32bc1d23-2d5d-421f-aab1-4a698968712c_1024x167.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8jIa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32bc1d23-2d5d-421f-aab1-4a698968712c_1024x167.png" width="1024" height="167" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/32bc1d23-2d5d-421f-aab1-4a698968712c_1024x167.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:167,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8jIa!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32bc1d23-2d5d-421f-aab1-4a698968712c_1024x167.png 424w, https://substackcdn.com/image/fetch/$s_!8jIa!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32bc1d23-2d5d-421f-aab1-4a698968712c_1024x167.png 848w, https://substackcdn.com/image/fetch/$s_!8jIa!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32bc1d23-2d5d-421f-aab1-4a698968712c_1024x167.png 1272w, https://substackcdn.com/image/fetch/$s_!8jIa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F32bc1d23-2d5d-421f-aab1-4a698968712c_1024x167.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p><strong>Watchdog (default Yes)</strong>:<br>A kernel watchdog is used to monitor if a system is running. It is supposed to automatically reboot hung systems due to unrecoverable software errors.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!x13U!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f45fb35-d57f-4028-ba23-336debcda040_1024x154.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!x13U!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f45fb35-d57f-4028-ba23-336debcda040_1024x154.png 424w, https://substackcdn.com/image/fetch/$s_!x13U!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f45fb35-d57f-4028-ba23-336debcda040_1024x154.png 848w, https://substackcdn.com/image/fetch/$s_!x13U!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f45fb35-d57f-4028-ba23-336debcda040_1024x154.png 1272w, https://substackcdn.com/image/fetch/$s_!x13U!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f45fb35-d57f-4028-ba23-336debcda040_1024x154.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!x13U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f45fb35-d57f-4028-ba23-336debcda040_1024x154.png" width="1024" height="154" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0f45fb35-d57f-4028-ba23-336debcda040_1024x154.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:154,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!x13U!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f45fb35-d57f-4028-ba23-336debcda040_1024x154.png 424w, https://substackcdn.com/image/fetch/$s_!x13U!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f45fb35-d57f-4028-ba23-336debcda040_1024x154.png 848w, https://substackcdn.com/image/fetch/$s_!x13U!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f45fb35-d57f-4028-ba23-336debcda040_1024x154.png 1272w, https://substackcdn.com/image/fetch/$s_!x13U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0f45fb35-d57f-4028-ba23-336debcda040_1024x154.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p><strong>Step 6</strong>: The installation process will initiate automatically and is expected to be complete within 5&#8211;10 minutes, depending on your server&#8217;s speed.</p><p><strong>Step 7</strong>: Finalize Installation. Upon completion of the installation process, you will encounter a screen displaying important information regarding your configuration. I recommend you select and copy this information to a safe place for future use.</p><p>This is how you can install Cyberpanel on Contabo and turn your website. If you have any questions, comment below or open a question in <strong><a href="https://j-insights.com/community">our forum</a></strong>, and I will be happy to help.</p>]]></content:encoded></item><item><title><![CDATA[How To Create AI Tools With WordPress]]></title><description><![CDATA[Today, AI is everywhere, and if you haven&#8217;t integrated AI into your business yet, I can confidently tell you that you are missing a lot of traction, potential sales, and conversions in your business.]]></description><link>https://insightssss.substack.com/p/how-to-create-ai-tools-with-wordpress</link><guid isPermaLink="false">https://insightssss.substack.com/p/how-to-create-ai-tools-with-wordpress</guid><dc:creator><![CDATA[insights]]></dc:creator><pubDate>Sun, 10 Aug 2025 13:19:14 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/442c1edc-4f16-4499-93d2-4f17ec9a28aa_930x620.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Today, AI is everywhere, and if you haven&#8217;t integrated AI into your business yet, I can confidently tell you that you are missing a lot of traction, potential sales, and conversions in your business. In this article, I will guide you on how to create AI Tools With WordPress and maintain an unbeatable online presence. </p><p>Roughly 14 months ago from the date of writing this article, I noticed that sales, conversions, and tractions continued to decline. Initially, I didn&#8217;t pay attention since I was still seeing enough sales to keep my business and day to day life up and running. At a point, I couldn&#8217;t continue to not see the obvious. The revenue continued in the downward spiral till I hit my unbelievable lowest revenue.</p><p>Just as anyone would have done, I started looking for a solution. I found out that most of my site visitors now rely on AI chatbots like <strong><a href="https://chat.openai.com/">chatgpt</a></strong>, <strong><a href="http://gemini.google.com/">google gemini</a></strong>, <strong><a href="https://www.perplexity.ai/">perplexity</a></strong>, <strong><a href="https://grok.com/">grok</a></strong>, <strong><a href="https://claude.ai/">claude</a></strong> etc to get most of the informations they are getting from my site. what do I do?? I started looking for how to integrate AI into my business. The truth about these new technologies is that AI and Web 3 won&#8217;t replace those who learn how to use them, but if you are afraid of them, they will definitely impact your business negatively.</p><p><em><a href="https://medium.com/@insightsuggests/how-to-create-ai-tools-with-wordpress-ce11ba1166f1">I also published this post on Medium. Ensure to check that if something is not clear here.</a></em></p><p>Without much bluff, let&#8217;s see how to create AI Tools With WordPress and tap into the growing AI trend. Here is the outline that is going to be our outline:</p><ol><li><p>Basic Requirements</p></li><li><p>Tool ideas to integrate into WordPress</p></li><li><p>WordPress Basic Setup</p></li><li><p>Understanding too Structure.</p></li><li><p>Generating Hooks with AI</p></li><li><p>Building a Backend with WordPress</p></li><li><p>Generate the UI</p></li><li><p>Connect the UI with the snippet</p></li><li><p>Publish on WordPress</p></li><li><p>Update the UI</p></li><li><p>Restrict Tool For Authenticated Users</p></li><li><p>Add The Credit System</p></li></ol><h3>Basic Requirements to Create AI Tools With WordPress</h3><p>I would like to say&#8230;.., if you already have knowledge of the basic requirements to create AI Tools with WordPress, you can skip this part. But if not, pls don't skip as you need to understand these foundational elements. You will need a domain, reliable hosting, access to AI APIs, and useful tools for building your site. Here&#8217;s a breakdown of the key requirements:</p><h3>Domain name</h3><p>Your domain name is your online address, and it&#8217;s crucial for branding and credibility. For creating AI tools with WordPress, I recommend registering your domain with <strong><a href="https://shareasale.com/r.cfm?b=1470528&amp;u=2801079&amp;m=46483&amp;urllink=&amp;afftrack=">Namecheap</a></strong>, known for affordable and reliable domain registration services.</p><h3><a href="https://www.anrdoezrs.net/click-100388623-15022370">Web Hosting</a></h3><p>One of the major mistakes that people make when building AI tools with WordPress is that they host their websites using low-cost hosting providers. Most of the time, low-cost hosting means low and inefficient resources are needed to run your AI-powered tools optimally.</p><p>I also understand there are people who understand this reality, but there are not enough resources to go for a hosting provider with great resources, as the need to run the tool. My goal is to help you have, first, a very good and high-performing hosting environment at an affordable cost to run all your tools, even if you are building multiple AI tools, without incurring more costs.</p><p>In this tutorial, we are going to go with <strong><a href="https://www.anrdoezrs.net/click-100388623-15022370">contabo</a></strong> because they offer very high server resources at the cheapest price.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!4UhX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e9d8d96-6e66-47b7-a22b-08e5663b8a81_1388x615.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!4UhX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e9d8d96-6e66-47b7-a22b-08e5663b8a81_1388x615.png 424w, https://substackcdn.com/image/fetch/$s_!4UhX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e9d8d96-6e66-47b7-a22b-08e5663b8a81_1388x615.png 848w, https://substackcdn.com/image/fetch/$s_!4UhX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e9d8d96-6e66-47b7-a22b-08e5663b8a81_1388x615.png 1272w, https://substackcdn.com/image/fetch/$s_!4UhX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e9d8d96-6e66-47b7-a22b-08e5663b8a81_1388x615.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!4UhX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e9d8d96-6e66-47b7-a22b-08e5663b8a81_1388x615.png" width="1388" height="615" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5e9d8d96-6e66-47b7-a22b-08e5663b8a81_1388x615.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:615,&quot;width&quot;:1388,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Create AI Tools With WordPress&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Create AI Tools With WordPress" title="Create AI Tools With WordPress" srcset="https://substackcdn.com/image/fetch/$s_!4UhX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e9d8d96-6e66-47b7-a22b-08e5663b8a81_1388x615.png 424w, https://substackcdn.com/image/fetch/$s_!4UhX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e9d8d96-6e66-47b7-a22b-08e5663b8a81_1388x615.png 848w, https://substackcdn.com/image/fetch/$s_!4UhX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e9d8d96-6e66-47b7-a22b-08e5663b8a81_1388x615.png 1272w, https://substackcdn.com/image/fetch/$s_!4UhX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5e9d8d96-6e66-47b7-a22b-08e5663b8a81_1388x615.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I recommend you go with the $14/month plan on <strong><a href="https://www.anrdoezrs.net/click-100388623-15022370">contabo</a></strong>, though you can use a lower specification and scale later. With this, you are getting 8 CPU and 24 GB RAM, which is enough to run your site as your tool site needs speed and performance for a good customer experience.</p><h3>Configure Plesk on your VPS</h3><p>The next thing you got to do now is to configure Plesk on your chosen VPS plan. On <em><strong>APPS &amp; PANELS,</strong></em> select <em><strong>Plesk + Linux</strong></em>. This will increase the total bill to like $28/month, but this is really going to make things very easy for you, and you will have the flexibility of hosting unlimited WordPress sites. You can always go with a lower <strong><a href="https://www.anrdoezrs.net/click-100388623-15022370">contabo</a></strong> plan and scale up later, or as your traffic grows.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!5TZg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5195edda-4557-44c9-8296-53844670a85c_1024x532.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!5TZg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5195edda-4557-44c9-8296-53844670a85c_1024x532.jpeg 424w, https://substackcdn.com/image/fetch/$s_!5TZg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5195edda-4557-44c9-8296-53844670a85c_1024x532.jpeg 848w, https://substackcdn.com/image/fetch/$s_!5TZg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5195edda-4557-44c9-8296-53844670a85c_1024x532.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!5TZg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5195edda-4557-44c9-8296-53844670a85c_1024x532.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!5TZg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5195edda-4557-44c9-8296-53844670a85c_1024x532.jpeg" width="1024" height="532" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5195edda-4557-44c9-8296-53844670a85c_1024x532.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:532,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Create AI Tools With WordPress&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Create AI Tools With WordPress" title="Create AI Tools With WordPress" srcset="https://substackcdn.com/image/fetch/$s_!5TZg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5195edda-4557-44c9-8296-53844670a85c_1024x532.jpeg 424w, https://substackcdn.com/image/fetch/$s_!5TZg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5195edda-4557-44c9-8296-53844670a85c_1024x532.jpeg 848w, https://substackcdn.com/image/fetch/$s_!5TZg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5195edda-4557-44c9-8296-53844670a85c_1024x532.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!5TZg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5195edda-4557-44c9-8296-53844670a85c_1024x532.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Click on next and checkout and <strong><a href="https://www.anrdoezrs.net/click-100388623-15022370">contabo</a></strong> will send you your plesk login credentials in your email like this <a href="https://45.32.167.178:8443/login">https://45.32.167.178:8443/login</a>. Login with your username which by default is &#8216;<strong>root</strong>&#8217; on <strong><a href="https://www.anrdoezrs.net/click-100388623-15022370">contabo</a></strong> and the password you used when signing up.</p><p><em><strong>NOTE</strong>: Ensure to map your domain to your VPS IP if you want to access your plesk panel using your domain or sub-domain.</em></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rTOx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe173efa3-bc90-470f-923f-4a5a8aea8116_1024x565.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rTOx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe173efa3-bc90-470f-923f-4a5a8aea8116_1024x565.jpeg 424w, https://substackcdn.com/image/fetch/$s_!rTOx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe173efa3-bc90-470f-923f-4a5a8aea8116_1024x565.jpeg 848w, https://substackcdn.com/image/fetch/$s_!rTOx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe173efa3-bc90-470f-923f-4a5a8aea8116_1024x565.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!rTOx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe173efa3-bc90-470f-923f-4a5a8aea8116_1024x565.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rTOx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe173efa3-bc90-470f-923f-4a5a8aea8116_1024x565.jpeg" width="1024" height="565" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e173efa3-bc90-470f-923f-4a5a8aea8116_1024x565.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:565,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rTOx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe173efa3-bc90-470f-923f-4a5a8aea8116_1024x565.jpeg 424w, https://substackcdn.com/image/fetch/$s_!rTOx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe173efa3-bc90-470f-923f-4a5a8aea8116_1024x565.jpeg 848w, https://substackcdn.com/image/fetch/$s_!rTOx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe173efa3-bc90-470f-923f-4a5a8aea8116_1024x565.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!rTOx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe173efa3-bc90-470f-923f-4a5a8aea8116_1024x565.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Then click on add domain to add your domain name and the good thing is that you can add unlimited domains.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!qk9M!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7b0b6a5-adc0-4c31-8959-173888f322b6_1024x558.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!qk9M!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7b0b6a5-adc0-4c31-8959-173888f322b6_1024x558.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qk9M!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7b0b6a5-adc0-4c31-8959-173888f322b6_1024x558.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qk9M!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7b0b6a5-adc0-4c31-8959-173888f322b6_1024x558.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qk9M!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7b0b6a5-adc0-4c31-8959-173888f322b6_1024x558.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!qk9M!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7b0b6a5-adc0-4c31-8959-173888f322b6_1024x558.jpeg" width="1024" height="558" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b7b0b6a5-adc0-4c31-8959-173888f322b6_1024x558.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:558,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!qk9M!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7b0b6a5-adc0-4c31-8959-173888f322b6_1024x558.jpeg 424w, https://substackcdn.com/image/fetch/$s_!qk9M!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7b0b6a5-adc0-4c31-8959-173888f322b6_1024x558.jpeg 848w, https://substackcdn.com/image/fetch/$s_!qk9M!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7b0b6a5-adc0-4c31-8959-173888f322b6_1024x558.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!qk9M!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb7b0b6a5-adc0-4c31-8959-173888f322b6_1024x558.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Add a new WordPress site and install WordPress on your domain. Ensure you map your domain name to your VPS IP address before performing this action. If you don&#8217;t, the WordPress installation may not go through. To add and host unlimited tools and domains, go to <strong>Websites &amp; Domains</strong> and add domains of your choice.</p><h3>Configure Plesk on shared hosting</h3><p>If you want to go with a shared hosting, you can check out <strong><a href="https://clients.verpex.com/aff/?a_aid=refid&amp;a_aid=Jinsights">Verpex</a></strong>, as they alos have a great server resources at relatively affordable price.</p><p>Like I said before choosing the right hosting provider ensures your WordPress site runs smoothly as you develop this new AI capabilities. To make things easy you; I have secured hosting coupon for <strong><a href="https://clients.verpex.com/aff/?a_aid=refid&amp;a_aid=Jinsights">Verpex</a></strong> offering affordable plans with sufficient resources for AI integrations and backups. You can test <strong><a href="https://clients.verpex.com/aff/?a_aid=refid&amp;a_aid=Jinsights">Verpex</a></strong> out for as low as $0.6 for your first month.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VEMI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac8dfa05-c343-4748-a24e-77c55a28bd6d_1024x612.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VEMI!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac8dfa05-c343-4748-a24e-77c55a28bd6d_1024x612.png 424w, https://substackcdn.com/image/fetch/$s_!VEMI!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac8dfa05-c343-4748-a24e-77c55a28bd6d_1024x612.png 848w, https://substackcdn.com/image/fetch/$s_!VEMI!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac8dfa05-c343-4748-a24e-77c55a28bd6d_1024x612.png 1272w, https://substackcdn.com/image/fetch/$s_!VEMI!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac8dfa05-c343-4748-a24e-77c55a28bd6d_1024x612.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VEMI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac8dfa05-c343-4748-a24e-77c55a28bd6d_1024x612.png" width="1024" height="612" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ac8dfa05-c343-4748-a24e-77c55a28bd6d_1024x612.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:612,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!VEMI!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac8dfa05-c343-4748-a24e-77c55a28bd6d_1024x612.png 424w, https://substackcdn.com/image/fetch/$s_!VEMI!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac8dfa05-c343-4748-a24e-77c55a28bd6d_1024x612.png 848w, https://substackcdn.com/image/fetch/$s_!VEMI!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac8dfa05-c343-4748-a24e-77c55a28bd6d_1024x612.png 1272w, https://substackcdn.com/image/fetch/$s_!VEMI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac8dfa05-c343-4748-a24e-77c55a28bd6d_1024x612.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>You are not obliged to use <strong><a href="https://clients.verpex.com/aff/?a_aid=refid&amp;a_aid=Jinsights">verpex</a></strong>, you can use any hosting of your choice but ensure hosting supports PHP 7.4 or higher, and has good bandwidth to handle AI-related API requests and traffic. Just in case you don&#8217;t have a budget for now, you can install WordPress locally by using <strong><a href="https://localwp.com/">LocalWP</a></strong> or <strong><a href="https://kinsta.com/devkinsta/">Devkinsta</a></strong>.</p><h3>Application Programming Interface ( APIs )</h3><p>To create AI tools with WordPress, you&#8217;ll need access to any of the below powerful APIs. Note that any of them can serve and the process is pretty much the same. Though i will be using openai API for this:</p><ul><li><p><strong>OpenAI</strong> (e.g., GPT models) for natural language processing and automation.</p></li><li><p><strong>Google Gemini</strong> (soon to be rolled out) for advanced AI functionalities.</p></li><li><p><strong>Perplexity</strong> and <strong>Claude</strong> by Anthropic for conversational AI and contextual understanding.</p></li></ul><p>These APIs provide the backbone for your AI tools, enabling your WordPress site to power AI intelligent features.</p><h3>Page Builder Plugin</h3><p>For designing your AI tool interfaces, I recommend using <strong><a href="http://elementor.com">Elementor</a></strong>, a popular drag-and-drop page builder that simplifies creating stunning, user-friendly layouts without extensive coding. You can use the the free version for now but later on you may need to get the paid version but if you need more AI Capabilities.</p><h3>Tool ideas to integrate with WordPress</h3><p>Here are some tool ideas to be integrated to your wordpress website</p><ol><li><p>blog title generator</p></li><li><p>Keyword Analyzer</p></li><li><p>Keyword Research Tool</p></li><li><p>Image Generator Tool</p></li><li><p>AI Hook Generator</p></li></ol><p>To build tools on wordpress we need majorly one plugin. That is the <strong><a href="https://wpcode.com/">wpcode snippet</a></strong>. Ensure you go to the worpress repository and install the wpcode snippet.</p><h3>Understanding the tool structure</h3><p>The tool structure is very simple; we have the frontend, the backend and the API.</p><ol><li><p>Frontend: You can use html and css or elementor to create the frontend.</p></li><li><p>Backend: This is where the code snippet comes handy. The code snippet is gonna serve as our backend.</p></li><li><p>API: This generate our AI driven contents.</p></li></ol><p>Now, you have to pay attention, because once you understand this you can build any tool of your choice. In building a tool on wordpress we have 3 parts, the <strong>frontend</strong>, the <strong>backend</strong> and the <strong>API</strong>. The <strong>frontend</strong> is simply the UI where you can type your queries or requests. Let&#8217;s say you have a blog title generator on your site; the frontend is the interface where you type your queries.</p><p>Once you click on <strong>Generate</strong>, your requests will be sent to the <strong>backend</strong>, which in turn sends your request to <strong>openai API</strong> or any <strong>API</strong> you are working with. The API generates the request and sends it to the backend, which sends it to the frontend that you now see. So this is the basic structure of any AI-powered WordPress tool. Let&#8217;s see the next step.</p><h3>Getting your OpenAI API Key:</h3><p>To get your OpenAI API key, go to <strong><a href="http://platform.openai.com">platform.openai.com</a></strong>, signup. Click on the dashboard and then API keys. Create your API key and save it in a safe place.</p><h3>Step 1: Add The API Call Function</h3><p>This is where we add a PHP function using <strong><a href="https://wordpress.org/plugins/insert-headers-and-footers/">WPCode</a></strong> plugin that will enable our tool to communicate with the OpenAI API.</p><h3>What is the Purpose of the WPCode Plugin?</h3><p><strong>WPCode</strong> is a WordPress plugin that gives us the flexibility of easily adding PHP functions and code to WordPress. It saves us the headache of modifying your theme&#8217;s <strong>functions.php</strong> file to add custom code.</p><h3>Installing and Activating WPCode Plugin</h3><ol><li><p>From your WordPress dashboard, go to &#8216;Plugins &gt; Add New&#8217;</p></li><li><p>Search &#8216;<strong>WPCode</strong>&#8216;in the search bar in the plugin repository.</p></li><li><p>Click on &#8216;Install Now&#8217;, wait for it to install, then finally &#8216;Activate&#8217;.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!naqt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122cd68f-1e36-4edd-bc24-2be773538b49_572x350.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!naqt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122cd68f-1e36-4edd-bc24-2be773538b49_572x350.png 424w, https://substackcdn.com/image/fetch/$s_!naqt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122cd68f-1e36-4edd-bc24-2be773538b49_572x350.png 848w, https://substackcdn.com/image/fetch/$s_!naqt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122cd68f-1e36-4edd-bc24-2be773538b49_572x350.png 1272w, https://substackcdn.com/image/fetch/$s_!naqt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122cd68f-1e36-4edd-bc24-2be773538b49_572x350.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!naqt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122cd68f-1e36-4edd-bc24-2be773538b49_572x350.png" width="572" height="350" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/122cd68f-1e36-4edd-bc24-2be773538b49_572x350.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:350,&quot;width&quot;:572,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!naqt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122cd68f-1e36-4edd-bc24-2be773538b49_572x350.png 424w, https://substackcdn.com/image/fetch/$s_!naqt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122cd68f-1e36-4edd-bc24-2be773538b49_572x350.png 848w, https://substackcdn.com/image/fetch/$s_!naqt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122cd68f-1e36-4edd-bc24-2be773538b49_572x350.png 1272w, https://substackcdn.com/image/fetch/$s_!naqt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F122cd68f-1e36-4edd-bc24-2be773538b49_572x350.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Adding the OpenAI API Call</h3><p>Once <strong>WPCODE</strong> is activated, follow the following steps to add your custom php code snippet and initiate an API call:</p><ol><li><p>On the WordPress dashboard, navigate to &#8216;<strong>Code Snippets</strong>&gt; Add New&#8217;.</p></li><li><p>Give your new code snippet any name of your choice, like &#8220;MY FIRST API Call&#8221;.</p></li><li><p>Choose the snippet Type to be <strong>PHP</strong></p></li><li><p>In the Code field, you&#8217;ll enter your PHP code. Below is a sample code structure you can follow:</p></li></ol><pre><code>function openai_generate_text() {
    // Get the topic from the AJAX request
    $prompt = $_POST['prompt'];</code></pre><div><hr></div><pre><code>    // OpenAI API URL and key
    $api_url = 'https://api.openai.com/v1/chat/completions';
    $api_key = 'sk-XXX';  // Replace with your actual OpenAI API key</code></pre><pre><code>    // Headers for the OpenAI API
    $headers = [
        'Content-Type' =&gt; 'application/json',
        'Authorization' =&gt; 'Bearer ' . $api_key
    ];</code></pre><pre><code>    // Body for the OpenAI API
    $body = [
        'model' =&gt; 'gpt-3.5-turbo',
        'messages' =&gt; [['role' =&gt; 'user', 'content' =&gt; $prompt]],
        'temperature' =&gt; 0.7
    ];</code></pre><pre><code>    // Args for the WordPress HTTP API
    $args = [
        'method' =&gt; 'POST',
        'headers' =&gt; $headers,
        'body' =&gt; json_encode($body),
        'timeout' =&gt; 120
    ];</code></pre><pre><code>    // Send the request
    $response = wp_remote_request($api_url, $args);</code></pre><pre><code>    // Handle the response
    if (is_wp_error($response)) {
        $error_message = $response-&gt;get_error_message();
        wp_send_json_error("Something went wrong: $error_message");
    } else {
        $body = wp_remote_retrieve_body($response);
        $data = json_decode($body, true);</code></pre><pre><code>        if (json_last_error() !== JSON_ERROR_NONE) {
            wp_send_json_error('Invalid JSON in API response');
        } elseif (!isset($data['choices'])) {
            wp_send_json_error('API request failed. Response: ' . $body);
        } else {
            wp_send_json_success($data);
        }
    }</code></pre><pre><code>    // Always die in functions echoing AJAX content
   wp_die();
}</code></pre><pre><code>add_action('wp_ajax_openai_generate_text', 'openai_generate_text');
add_action('wp_ajax_nopriv_openai_generate_text', 'openai_generate_text');</code></pre><p><strong>openai_generate_text, </strong>in the code above, defines a PHP executable function that will be executed once a request is made to WordPress using the action <strong>openai_generate_text.</strong></p><p>This function communicates with OpenAI&#8217;s API to generate a text based on a prompt provided by the user.</p><p>The function first retrieves the user-provided prompt from the POST request:</p><pre><code>$prompt = $_POST['prompt'];</code></pre><p>The last two lines of the code hook the function to the <strong>wp_ajax_openai_generate_text</strong> and <strong>wp_ajax_nopriv_openai_generate_text</strong> actions so that it will be executed when a request with the action <strong>openai_generate_text</strong> is made to WordPress.</p><h3>Publishing your Code.</h3><p>Ensure to set this script to run everywhere so that it can run in all environments, and click on publish.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yR-A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe98a46a0-9754-44e0-abd5-8f146d54153d_822x392.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yR-A!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe98a46a0-9754-44e0-abd5-8f146d54153d_822x392.png 424w, https://substackcdn.com/image/fetch/$s_!yR-A!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe98a46a0-9754-44e0-abd5-8f146d54153d_822x392.png 848w, https://substackcdn.com/image/fetch/$s_!yR-A!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe98a46a0-9754-44e0-abd5-8f146d54153d_822x392.png 1272w, https://substackcdn.com/image/fetch/$s_!yR-A!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe98a46a0-9754-44e0-abd5-8f146d54153d_822x392.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yR-A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe98a46a0-9754-44e0-abd5-8f146d54153d_822x392.png" width="822" height="392" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e98a46a0-9754-44e0-abd5-8f146d54153d_822x392.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:392,&quot;width&quot;:822,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yR-A!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe98a46a0-9754-44e0-abd5-8f146d54153d_822x392.png 424w, https://substackcdn.com/image/fetch/$s_!yR-A!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe98a46a0-9754-44e0-abd5-8f146d54153d_822x392.png 848w, https://substackcdn.com/image/fetch/$s_!yR-A!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe98a46a0-9754-44e0-abd5-8f146d54153d_822x392.png 1272w, https://substackcdn.com/image/fetch/$s_!yR-A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe98a46a0-9754-44e0-abd5-8f146d54153d_822x392.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Step 2: Create The Tool Page</h3><p>The next step is to create the Tool page.</p><p>Like I said earlier, we&#8217;ll be using Elementor, a popular WordPress page builder, to create and design our tool page.</p><p><strong>Note: </strong>You can use any builder you want. What is important is the ability to add <strong>custom HTML code</strong> to the page.</p><h3>Installing and Activating Elementor</h3><ol><li><p>Go to your &#8216;Plugins repository again &gt; Add New&#8217;.</p></li><li><p>ISearch and install the &#8216;<strong>Elementor</strong>&#8216; plugin and activate it.</p></li></ol><h3>Creating the tool Page with Elementor</h3><ol><li><p>On your wordpress menu click on &#8216;Pages &gt; Add New&#8217; from your WordPress dashboard.</p></li><li><p>Enter your desired page name or title, such as &#8220;My AI Tool&#8221;.</p></li><li><p>Click on &#8216;<strong>Edit with Elementor</strong>&#8216; to start designing your page new page.</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!NmlV!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ae424bd-1e1b-44cd-82b2-64d5ce30f5d0_1024x366.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!NmlV!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ae424bd-1e1b-44cd-82b2-64d5ce30f5d0_1024x366.png 424w, https://substackcdn.com/image/fetch/$s_!NmlV!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ae424bd-1e1b-44cd-82b2-64d5ce30f5d0_1024x366.png 848w, https://substackcdn.com/image/fetch/$s_!NmlV!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ae424bd-1e1b-44cd-82b2-64d5ce30f5d0_1024x366.png 1272w, https://substackcdn.com/image/fetch/$s_!NmlV!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ae424bd-1e1b-44cd-82b2-64d5ce30f5d0_1024x366.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!NmlV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ae424bd-1e1b-44cd-82b2-64d5ce30f5d0_1024x366.png" width="1024" height="366" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7ae424bd-1e1b-44cd-82b2-64d5ce30f5d0_1024x366.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:366,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Create AI Tools With WordPress&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Create AI Tools With WordPress" title="Create AI Tools With WordPress" srcset="https://substackcdn.com/image/fetch/$s_!NmlV!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ae424bd-1e1b-44cd-82b2-64d5ce30f5d0_1024x366.png 424w, https://substackcdn.com/image/fetch/$s_!NmlV!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ae424bd-1e1b-44cd-82b2-64d5ce30f5d0_1024x366.png 848w, https://substackcdn.com/image/fetch/$s_!NmlV!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ae424bd-1e1b-44cd-82b2-64d5ce30f5d0_1024x366.png 1272w, https://substackcdn.com/image/fetch/$s_!NmlV!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7ae424bd-1e1b-44cd-82b2-64d5ce30f5d0_1024x366.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3>Adding Custom HTML in Elementor</h3><p>To add custom HTML in Elementor, drag and drop the HTML Code widget into your new, fresh page. Follow these steps:</p><ol><li><p>On the Elementor editor page, you&#8217;ll see a sidebar with several icons on the left. Click on the one that looks like a grid or matrix.</p></li><li><p>This will open up a list of widgets that you can use. Look for the &#8216;HTML&#8217; widget</p></li></ol><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!dri9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f1f0a61-e9df-4b1a-9b4a-99b16db9bf77_729x597.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!dri9!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f1f0a61-e9df-4b1a-9b4a-99b16db9bf77_729x597.png 424w, https://substackcdn.com/image/fetch/$s_!dri9!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f1f0a61-e9df-4b1a-9b4a-99b16db9bf77_729x597.png 848w, https://substackcdn.com/image/fetch/$s_!dri9!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f1f0a61-e9df-4b1a-9b4a-99b16db9bf77_729x597.png 1272w, https://substackcdn.com/image/fetch/$s_!dri9!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f1f0a61-e9df-4b1a-9b4a-99b16db9bf77_729x597.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!dri9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f1f0a61-e9df-4b1a-9b4a-99b16db9bf77_729x597.png" width="729" height="597" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8f1f0a61-e9df-4b1a-9b4a-99b16db9bf77_729x597.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:597,&quot;width&quot;:729,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Create AI Tools With WordPress&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Create AI Tools With WordPress" title="Create AI Tools With WordPress" srcset="https://substackcdn.com/image/fetch/$s_!dri9!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f1f0a61-e9df-4b1a-9b4a-99b16db9bf77_729x597.png 424w, https://substackcdn.com/image/fetch/$s_!dri9!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f1f0a61-e9df-4b1a-9b4a-99b16db9bf77_729x597.png 848w, https://substackcdn.com/image/fetch/$s_!dri9!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f1f0a61-e9df-4b1a-9b4a-99b16db9bf77_729x597.png 1272w, https://substackcdn.com/image/fetch/$s_!dri9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8f1f0a61-e9df-4b1a-9b4a-99b16db9bf77_729x597.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Here, you can paste your custom HTML code for your AI tool. In our case, it will include code for an input field, a button, and a text area for output results.</p><p><strong>See Sample below:</strong></p><pre><code>&lt;div&gt;
    &lt;input type="text" id="userInput" placeholder="Type something here..."&gt;
    &lt;button id="submitButton"&gt;Submit&lt;/button&gt;
    &lt;textarea id="resultArea"&gt;&lt;/textarea&gt;
&lt;/div&gt;</code></pre><p>To make things easy for you, I created the full HTML, JS, and CSS Code so that you can copy and paste it directly<strong>.</strong> Feel free to use your own code if you have.</p><pre><code>&lt;div id="text-generation-tool"&gt;
    &lt;input type="text" id="topic" placeholder="Your Topic..."&gt;
    &lt;button id="generate-button"&gt;Generate Story!&lt;/button&gt;
    &lt;div id="result-container" style="display: none;"&gt;
        &lt;div class="result-wrapper"&gt;
            &lt;div class="result-content"&gt;
                &lt;textarea id="result" readonly&gt;&lt;/textarea&gt;
            &lt;/div&gt;
            &lt;div class="copy-button-container"&gt;
                &lt;button id="copy-button"&gt;Copy&lt;/button&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/div&gt;
    &lt;div id="loading" class="loader" style="display: none;"&gt;&lt;/div&gt;
&lt;/div&gt;</code></pre><pre><code>&lt;style&gt;
    /* Basic styles for the text generation tool */
    #text-generation-tool {
        width: 100%;
        max-width: 600px;
        margin: 0 auto;
        font-family: Arial, sans-serif;
    }</code></pre><pre><code>    #topic {
        width: 100%;
        padding: 15px;
        margin-bottom: 20px;
        font-size: 16px;
        border-radius: 5px;
        border: 1px solid #ddd;
    }</code></pre><pre><code>    #generate-button {
        display: block;
        width: 100%;
        padding: 15px;
        margin-bottom: 20px;
        font-size: 16px;
        border: none;
        border-radius: 5px;
        color: #fff;
        background-color: #3498db;
        cursor: pointer;
        transition: background-color 0.3s ease;
    }</code></pre><pre><code>    #generate-button:hover {
        background-color: #2980b9;
    }</code></pre><pre><code>    #result-container {
        display: none;
        margin-bottom: 20px;
    }</code></pre><pre><code>    .result-wrapper {
        position: relative;
        overflow: hidden;
    }</code></pre><pre><code>    .result-content {
        display: flex;
    }</code></pre><pre><code>    #result {
        flex: 1;
        height: 400px;
        padding: 15px;
        font-size: 16px;
        border-radius: 5px;
        border: 1px solid #ddd;
        background-color: #f9f9f9;
    }</code></pre><pre><code>    .copy-button-container {
        margin-top: 10px;
        text-align: right;
    }</code></pre><pre><code>    #copy-button {
        padding: 8px 12px;
        font-size: 14px;
        border: none;
        border-radius: 5px;
        color: #fff;
        background-color: #3498db;
        cursor: pointer;
        transition: background-color 0.3s ease;
    }</code></pre><pre><code>    #copy-button:hover {
        background-color: #2980b9;
    }</code></pre><pre><code>    /* CSS for the loader */
    .loader {
        display: block;
        margin: 50px auto;
        border: 16px solid #f3f3f3; /* Light grey */
        border-top: 16px solid #3498db; /* Blue */
        border-radius: 50%;
        width: 50px;
        height: 50px;
        animation: spin 1s linear infinite;
    }</code></pre><pre><code>    @keyframes spin {
        0% { transform: rotate(0deg); }
        100% { transform: rotate(360deg); }
    }
&lt;/style&gt;</code></pre><p>I generated this code with ChatGPT in less than 3 minutes, and you can do the same if you want.</p><p>You can use this code as a baseline for any tool you want to create in the future. For example, if you want to change the placeholder text in the input field, adjust this line:</p><pre><code>&lt;input type="text" id="topic" placeholder="Your Topic..."&gt;</code></pre><p>You can even input this code into ChatGPT and ask it to make modifications for you or add any feature of your choice and it will output it for you.</p><p><strong>Save Your Page!</strong></p><p>Once you&#8217;ve pasted your code, click &#8216;Update&#8217; to save your changes. Now you are all set.</p><h3>Step 3: Connect The Page With The API Function</h3><p>Now that we have our API function and our tool page set up, the next is to connect them. This is where the <strong>JavaScript</strong> (JS) code comes in handy.</p><h3>What does this JavaScript code do?</h3><p>This JS code sets up an event listener on the &#8216;Generate Story!&#8217; button so that when the button is clicked, it collects the topic selected by the user and sends it to our OpenAI API function using AJAX.</p><p>While the story is being generated, it shows a loading spinner. Once the story is returned, it hides the loading spinner and displays it in a text area in the result.</p><p>If there&#8217;s an error at any point, it shows an error message in the result text area.</p><p>The code also sets up an event listener on the &#8216;Copy&#8217; button so that when clicked, it copies the generated story to the clipboard.</p><h3>Adding the JavaScript Code</h3><p>Here is the JavaScript code you need to add:</p><p><a href="https://learnwithhasan.com/custom-code/javascript-code-for-ai-tool/">Get the Code</a></p><p>What you should focus on here is the prompt:</p><pre><code>var prompt = "Generate a 3 sentence story about " + topic;</code></pre><p>Here, I used a very simple prompt to help you understand the concept.</p><p>In your case, and based on your AI Tool Logic, you will add your custom prompt; for example, for instance, we are creating a Domain Name Generator Tool. You would use a prompt like this:</p><pre><code>Generate a list of 10 domain name ideas for a website about [topic], and provide a brief explanation for each suggestion.</code></pre><p>You can be more professional; here&#8217;s one of the sample prompts that Generates Domain Names Using AI:</p><pre><code>Please generate 10 original and creative domain names specifically tailored for the [niche] niche, focusing on its main concepts and target audience.
Your response should prioritize domain names that effectively capture the attention of the [niche] audience and represent its key themes. For each domain name, provide a brief explanation (1-2 sentences)highlighting its relevance to the niche. Ensure that each domain name meets the following criteria:</code></pre><pre><code>1. Brand Relevance: Maintain a strong connection with the niche and its central concepts.
2. Memorable: Design the domain names to be captivating, easy to remember, and with familiar spellings.
3. Concise: Keep each domain name between 6-14 characters for ease of typing and recall.
4. Simplicity: Avoid using hyphens and numbers for a cleaner appearance.
5. Keyword Incorporation: Utilize relevant niche keywords for improved SEO, if possible.
6. Pronunciation: Ensure that each domain name is easily understandable when spoken or &#8220;radio-friendly.&#8221;
7. Domain Extensions: Prioritize .com, .net, .org, and .ai extensions when applicable.
8. Legality: Refrain from infringing on existing trademarks or brands.</code></pre><pre><code>Your response should exhibit flexibility and creativity while maintaining a focused approach on the [niche] niche, providing a solid foundation for building a brand within that market.</code></pre><pre><code>[niche]:</code></pre><h3>Add this JavaScript code to your tool page:</h3><ol><li><p>Open up the Elementor editor for your tool page again.</p></li><li><p>Drag and drop the &#8216;HTML&#8217; widget onto your page the same way we did earlier.</p></li><li><p>Paste the JavaScript code into the &#8216;HTML Code&#8217; box.</p></li><li><p>Click &#8216;Update&#8217; to save your changes.</p></li></ol><p><strong>Or you can paste the code within the same HTML Code Box that we used before.</strong></p><p>Your tool page is now connected to the OpenAI API function, and users should be able to use the tool based on their selected topic.</p><h3>Optimizing Our Tool</h3><p>Once we have our tool up and running, the process doesn&#8217;t stop there. It&#8217;s time for optimization. This can range from refining the UI (User Interface) to adding security measures like CAPTCHA.</p><p>Let&#8217;s say you want to change the UI of your tool. You can ask ChatGPT to help you with that by simply feeding it this prompt:</p><pre><code>Hey, could you help me design a cleaner, more professional interface for my tool?</code></pre><p>ChatGPT will provide suggestions or even an entirely new set of HTML/CSS codes tailored to your needs.</p><p>Adding a security measure like a captcha can also be a significant improvement, as it helps protect your tool from bots and ensures genuine user interactions. You can find numerous plugins and resources online to add a CAPTCHA to your WordPress site.</p><p>Lastly, remember that continuous optimization and updating your tool according to user feedback is the key to making your tool more user-friendly and successful. So, don&#8217;t forget to keep learning and optimizing your website to get the best out of your AI tools.</p>]]></content:encoded></item><item><title><![CDATA[Troubleshoot and fix email deliverability issues: A Practical case study. ]]></title><description><![CDATA[Tired of your emails not reaching their destination?]]></description><link>https://insightssss.substack.com/p/troubleshoot-and-fix-email-deliverability</link><guid isPermaLink="false">https://insightssss.substack.com/p/troubleshoot-and-fix-email-deliverability</guid><dc:creator><![CDATA[insights]]></dc:creator><pubDate>Fri, 08 Aug 2025 16:57:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!9KQy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4f5fb00-cb4a-4824-87b7-3c7cfdbae132_1024x640.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Tired of your emails not reaching their destination? Hitting the <strong>send button</strong> only to find your messages and IP are blocked by ISPs can be frustrating. If you've been struggling with your email campaigns or your SMTP server is having a <strong>pending sending issue</strong>, you're in the right place. This post, Troubleshoot and Fix Email Deliverability Issues, will walk you through a real-life case study of a client who faced a very critical delivery issue with the postal SMTP server. I believe this will help you understand common problems and, more importantly, how to solve them. By the end of this guide, you'll be well-equipped to troubleshoot and fix email deliverability issues, ensuring your emails consistently land in inboxes, not spam folders, irrespective of the mail transfer agent you are using. Let's dive in.</p><p><em>I have written two different guides on how to set up an SMTP server and send unlimited emails with <strong><a href="https://j-insights.com/postal-smtp-setup-ultimate-guide/">postal smtp</a></strong> and another with <strong><a href="https://j-insights.com/how-to-build-smtp-server-with-mailinabox-definitiv-guide/">mailinabox</a></strong>. You can check them out to see the different options to build smtp server.</em></p><p><em>I also have a <strong><a href="https://www.udemy.com/course/email-marketing-build-own-smtp-and-send-unlimited-emails/?referralCode=392B263D91C08B9FDC01">udemy course</a></strong> on how to build a fully-featured cold mail outreach system and send unlimited emails. You can check it out too as I really dived deep into the technical side of email marketing.</em></p><h2>Fixing Postal Pending sending Issue.</h2><p>Now let's see how to troubleshoot and Fix Email Deliverability Issues with postal SMTP. I would like you to have this understanding that things are pretty similar irrespective of the mail transfer agent you are working with. But, this specific issue happened with postal and this was the process I took to troubleshoot and fix things up.</p><p>The first thing I did to address the slow sending was to check his server specifications, and I found that his VPS architecture consists of 1 vCore, 1 GB RAM/40 GB SSD NVMe. Given the high volume of emails he sends within a short period, this configuration is likely to cause issues with crashes. I upgraded the server and adjusted some important postal settings to keep the server load within an optimal threshold. For the upgrade moved from his provider to <strong><a href="https://www.anrdoezrs.net/click-100388623-15022370">Contabo</a></strong> because they offer Solid and way bigger server resources at affordable price. So, if you are building an smtp server, I recommend you go with <strong><a href="https://www.anrdoezrs.net/click-100388623-15022370">Contabo</a></strong> as they open port 25 by default, and they also offer huge server architecture and a very affordable price.</p><h2>Adjustment of default postal settings</h2><p>After the server upgrade, the next thing I did to Troubleshoot and Fix Email Deliverability Issues is to adjust some default postal settings to fit the client's need.</p><p>I set the Message retention days to 0, Raw message retention days to 0, and the Raw message retention size to a maximum value of 1 MB. These values ensure the message headers and contents are not over-accumulated on the server, keeping its size &lt;= 1mb.</p><p>Then, for the pending sending issues, I found out that Postal SMTP servers can implement automatic throttling to manage the flow of messages, especially for new servers. This often involves rate limits to prevent abuse or overwhelming the server. Examples of throttling limits include messages per minute and recipients per day. The system can also release held messages when the message count falls below the maximum limit, optimizing email delivery. So I modified this numerical value to a high value in the postal config file, and that fixed the pending sending issues.</p><h2>IP Block fixes</h2><p>There comes another issue of IP blocking. I noticed that the primary sending IP and the four outbound IPs associated with this primary IP have all been blacklisted. So we've got to get them off the blacklists. I used <strong><a href="https://mxtoolbox.com/problem/blacklist">MXToolbox</a></strong> and <strong><a href="https://check.spamhaus.org/">Spamhaus</a></strong> to detect and remove the IP ranges from the blacklist. So by doing these, I was able to get the server clean and up and running again.</p><p>To detect your server IP or domain from the major blacklist, input your domain or IP in the field as in the screenshot below and you will see the blacklists you are in. Do same for <strong><a href="https://check.spamhaus.org/">spamhaus</a></strong> and you will see the guideline to remove them. Just follow the prompt and and you will be able to remove it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9KQy!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4f5fb00-cb4a-4824-87b7-3c7cfdbae132_1024x640.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9KQy!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4f5fb00-cb4a-4824-87b7-3c7cfdbae132_1024x640.jpeg 424w, https://substackcdn.com/image/fetch/$s_!9KQy!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4f5fb00-cb4a-4824-87b7-3c7cfdbae132_1024x640.jpeg 848w, https://substackcdn.com/image/fetch/$s_!9KQy!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4f5fb00-cb4a-4824-87b7-3c7cfdbae132_1024x640.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!9KQy!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4f5fb00-cb4a-4824-87b7-3c7cfdbae132_1024x640.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9KQy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4f5fb00-cb4a-4824-87b7-3c7cfdbae132_1024x640.jpeg" width="1024" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a4f5fb00-cb4a-4824-87b7-3c7cfdbae132_1024x640.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:640,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Troubleshoot and Fix Email Deliverability Issues&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Troubleshoot and Fix Email Deliverability Issues" title="Troubleshoot and Fix Email Deliverability Issues" srcset="https://substackcdn.com/image/fetch/$s_!9KQy!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4f5fb00-cb4a-4824-87b7-3c7cfdbae132_1024x640.jpeg 424w, https://substackcdn.com/image/fetch/$s_!9KQy!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4f5fb00-cb4a-4824-87b7-3c7cfdbae132_1024x640.jpeg 848w, https://substackcdn.com/image/fetch/$s_!9KQy!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4f5fb00-cb4a-4824-87b7-3c7cfdbae132_1024x640.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!9KQy!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa4f5fb00-cb4a-4824-87b7-3c7cfdbae132_1024x640.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>My Advice to senders</h2><p><em><strong>My advice to the client to avoid getting his server blacklisted again</strong></em>: Just like I said before, he sent out a lot of emails immediately after setup. When you have a new server set up, you don't send out a lot of emails because this is a new IP with a zero reputation. You've got to build trust and reputation by sending a small volume and subsequently ramping up volume over time.</p><p>Secondly, I made sure he validated his email list before continuing the send again. A close look at the screenshot in this post, you will notice that his server bounce rate is over 30%, meaning he is sending to a lot of non-existent emails or catch-all, which is ridiculous.</p><p>Lastly, I ensured he set up a bounce server to handle future bounce emails and auto-remove them from the sending list.</p><p>NOTE: This is not all there is to troubleshooting email deliverability issues. Your case will depend on your MTA's error log analysis. If you are having email deliverability issues or your case is peculiar, you can reach out to me to analyze and fix your scenario.</p>]]></content:encoded></item><item><title><![CDATA[Postal SMTP Setup: Definitive Guide]]></title><description><![CDATA[In this guide we are going to explore how to build an smtp server and send unlimited emails. This is going to give you all the flexibility and reliability to run your email with zero cap on sends.]]></description><link>https://insightssss.substack.com/p/postal-smtp-setup-definitive-guide</link><guid isPermaLink="false">https://insightssss.substack.com/p/postal-smtp-setup-definitive-guide</guid><dc:creator><![CDATA[insights]]></dc:creator><pubDate>Mon, 04 Aug 2025 08:04:57 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/L7uUMXPsqmo" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>There are a lot of ways to build an SMTP server and send unlimited emails from your own server, but in this guide, we are going to explore the Postal SMTP setup and how to configure Postal SMTP for optimal inbox placement. Before we proceed, I would like to let you know that I have already recorded a postal SMTP setup video guide on YouTube, and you can check it out below:</p><div id="youtube2-L7uUMXPsqmo" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;L7uUMXPsqmo&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/L7uUMXPsqmo?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p><em>Want to dive deeper into self-hosted cold Mail Outreach System? Check out my comprehensive <strong><a href="https://www.udemy.com/course/email-marketing-build-own-smtp-and-send-unlimited-emails/?referralCode=392B263D91C08B9FDC01">Udemy course</a></strong> where I teach you how to set up a powerful email marketing system.</em></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://insightssss.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p><strong>Important Note:</strong> This setup requires <strong>port 25 </strong>to be open on your VPS.</p><p>Many providers block this port to prevent spam. I recommend <strong><a href="https://clients.verpex.com/aff/?a_aid=refid&amp;a_aid=Jinsights">Verpex</a></strong> or <strong><a href="https://www.anrdoezrs.net/click-100388623-15022370">Contabo</a></strong> because they have port 25 open by default, making this process much smoother.</p><h2>Postal SMTP Setup: Step-by-Step Guide</h2><p>Now comes the postal smtp setup part &#8211; let&#8217;s install Postal and get your SMTP server running!</p><p>Step 1: Configuring your VPS</p><p>Now you have to set up a virtual private server (VPS) on a your preferred VPS or cloud providers. I choose <strong><a href="https://www.anrdoezrs.net/click-100388623-15022370">Contabo</a></strong> for this guide because they offers solid server architectures at affordable price, with port 25 open by default. Port 25 must be open for your postal smtp setup to work optimally.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!McwD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1301c64-003b-4810-8883-30601f60f818_1024x454.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!McwD!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1301c64-003b-4810-8883-30601f60f818_1024x454.png 424w, https://substackcdn.com/image/fetch/$s_!McwD!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1301c64-003b-4810-8883-30601f60f818_1024x454.png 848w, https://substackcdn.com/image/fetch/$s_!McwD!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1301c64-003b-4810-8883-30601f60f818_1024x454.png 1272w, https://substackcdn.com/image/fetch/$s_!McwD!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1301c64-003b-4810-8883-30601f60f818_1024x454.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!McwD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1301c64-003b-4810-8883-30601f60f818_1024x454.png" width="1024" height="454" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f1301c64-003b-4810-8883-30601f60f818_1024x454.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:454,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Postal SMTP Setup&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Postal SMTP Setup" title="Postal SMTP Setup" srcset="https://substackcdn.com/image/fetch/$s_!McwD!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1301c64-003b-4810-8883-30601f60f818_1024x454.png 424w, https://substackcdn.com/image/fetch/$s_!McwD!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1301c64-003b-4810-8883-30601f60f818_1024x454.png 848w, https://substackcdn.com/image/fetch/$s_!McwD!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1301c64-003b-4810-8883-30601f60f818_1024x454.png 1272w, https://substackcdn.com/image/fetch/$s_!McwD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff1301c64-003b-4810-8883-30601f60f818_1024x454.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Configuring your Server on Verpex</h2><p><strong><a href="https://clients.verpex.com/aff/?a_aid=refid&amp;a_aid=Jinsights">Verpex</a></strong> also have a similar pricing and port 25 open by default. You can go with this option and it work just as fine as <strong><a href="https://www.anrdoezrs.net/click-100388623-15022370">contabo</a></strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!X6id!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd227ab0f-43a6-4c67-a254-532c375c6a1d_1024x640.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!X6id!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd227ab0f-43a6-4c67-a254-532c375c6a1d_1024x640.png 424w, https://substackcdn.com/image/fetch/$s_!X6id!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd227ab0f-43a6-4c67-a254-532c375c6a1d_1024x640.png 848w, https://substackcdn.com/image/fetch/$s_!X6id!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd227ab0f-43a6-4c67-a254-532c375c6a1d_1024x640.png 1272w, https://substackcdn.com/image/fetch/$s_!X6id!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd227ab0f-43a6-4c67-a254-532c375c6a1d_1024x640.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!X6id!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd227ab0f-43a6-4c67-a254-532c375c6a1d_1024x640.png" width="1024" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d227ab0f-43a6-4c67-a254-532c375c6a1d_1024x640.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:640,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Postal SMTP Setup&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Postal SMTP Setup" title="Postal SMTP Setup" srcset="https://substackcdn.com/image/fetch/$s_!X6id!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd227ab0f-43a6-4c67-a254-532c375c6a1d_1024x640.png 424w, https://substackcdn.com/image/fetch/$s_!X6id!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd227ab0f-43a6-4c67-a254-532c375c6a1d_1024x640.png 848w, https://substackcdn.com/image/fetch/$s_!X6id!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd227ab0f-43a6-4c67-a254-532c375c6a1d_1024x640.png 1272w, https://substackcdn.com/image/fetch/$s_!X6id!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd227ab0f-43a6-4c67-a254-532c375c6a1d_1024x640.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>You are not obliged to use either <strong><a href="https://www.anrdoezrs.net/click-100388623-15022370">contabo</a></strong> or <strong><a href="https://clients.verpex.com/aff/?a_aid=refid&amp;a_aid=Jinsights">verpex</a></strong>, you can go with any VPS Provider of your choice but make sure to check if port 25 is open using <strong><a href="https://powerkit.dev/tools/port-checker">free port checker</a></strong> before proceeding.</p><p>Step 2: Connect to Your Server<br>Use an <strong>SSH client like <a href="http://termius.com">termius</a>, <a href="https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html">putty</a> or terminal to log in to your server</strong>. For this guide I&#8217;ll be using <a href="https://termius.com/index.html">Termius</a> as it is an all in one software that helps me to connect to both my SSH and the the vps file system.</p><p>If you are using termius with me, just add your server IP address and the password to the relevant fields on termius when you have launched the app and click on connect and you will be on your server commandline. Alternatively, if you are using your terminal, connect to SSH by running the folowing code:</p><pre><code>ssh root@YOUR_SERVER_IP</code></pre><p>Ensure to replace the 'YOUR_SERVER_IP' part of the command with your real VPS IP.</p><p>Step 2: Update System and Install foundational components</p><p>Next, update system and install prerequisite:</p><pre><code>sudo apt update &amp;&amp; sudo apt upgrade -y
sudo apt install git curl jq -y</code></pre><p>This ensures your server has the latest security updates and the prerequisite for our postal installation.</p><p>Step 3: Install Docker Container</p><p>Postal runs on Docker, we need to install docker to get our postal up and running:</p><pre><code>curl -fsSL https://get.docker.com | sh</code></pre><p>Relacx for the installation to complete. This takes a little time.</p><p>We also need Docker Compose Plugin for managing multiple containers:</p><pre><code>sudo apt install docker-compose-plugin -y</code></pre><p>Step 4: Test Docker Installation</p><p>Let&#8217;s verify Docker is installed correctly:</p><pre><code>docker --version</code></pre><p>Once the above command execute successfully you should see output showing the Docker version. If it fails or you get an error, restart your server and try again.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wCCm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76fcc804-a598-43c1-8ef6-468b58f2cb6a_408x62.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wCCm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76fcc804-a598-43c1-8ef6-468b58f2cb6a_408x62.png 424w, https://substackcdn.com/image/fetch/$s_!wCCm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76fcc804-a598-43c1-8ef6-468b58f2cb6a_408x62.png 848w, https://substackcdn.com/image/fetch/$s_!wCCm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76fcc804-a598-43c1-8ef6-468b58f2cb6a_408x62.png 1272w, https://substackcdn.com/image/fetch/$s_!wCCm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76fcc804-a598-43c1-8ef6-468b58f2cb6a_408x62.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wCCm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76fcc804-a598-43c1-8ef6-468b58f2cb6a_408x62.png" width="408" height="62" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/76fcc804-a598-43c1-8ef6-468b58f2cb6a_408x62.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:62,&quot;width&quot;:408,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Postal SMTP Setup&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Postal SMTP Setup" title="Postal SMTP Setup" srcset="https://substackcdn.com/image/fetch/$s_!wCCm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76fcc804-a598-43c1-8ef6-468b58f2cb6a_408x62.png 424w, https://substackcdn.com/image/fetch/$s_!wCCm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76fcc804-a598-43c1-8ef6-468b58f2cb6a_408x62.png 848w, https://substackcdn.com/image/fetch/$s_!wCCm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76fcc804-a598-43c1-8ef6-468b58f2cb6a_408x62.png 1272w, https://substackcdn.com/image/fetch/$s_!wCCm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F76fcc804-a598-43c1-8ef6-468b58f2cb6a_408x62.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Step 5: Clone Postal Installer</p><h2>Downloading the Postal installation files:</h2><pre><code>git clone https://github.com/postalserver/install /opt/postal/install
sudo ln -s /opt/postal/install/bin/postal /usr/bin/postal</code></pre><p>The above command downloads Postal and creates a symbolic link so you can run <code>postal</code> commands in almost any environment.</p><p>Step 6: Install MariaDB</p><p>Just like any other mail transfer agent or web application Postal needs a database to store its data and function properly. Let&#8217;s install MariaDB:</p><pre><code>docker run -d \
  --name postal-mariadb \
  -p 127.0.0.1:3306:3306 \
  --restart always \
  -e MARIADB_DATABASE=postal \
  -e MARIADB_ROOT_PASSWORD=your_password_here \
  mariadb</code></pre><p><strong>Important Note:</strong> Replace '<code>your_password_here</code>' with a strong password you can remember or save it where you can remember.</p><p>Step 7: Bootstrap Postal</p><p>Next in this postal smtp setup is to map Postal to our subdomain, this will help us access our postal server through our subdomain and not our root domain. it can me something like <strong>mail.your_domainname.com</strong>, <strong>postal.your_domainname.com</strong> or any sub-domain of your choice but I am using <strong>postal.my_domain.com</strong>. Now go to your domain provider, then navigate to the advance DNS zone, and add a new <strong>A record</strong> with the <strong>name set to postal,</strong> which will be my subdomain, and the <strong>value is the IP address of your own VPS, and remember to change to your own IP address</strong>. Also undersand you can change the postal subdomain to your own prefferred subdomain (eg <em><strong>mail.</strong></em>) you want to access postal through.</p><p>Check the screenshot below:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Wh6R!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dac8a0e-2be8-4f0d-a1a1-ccb9951a6b3b_1024x325.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Wh6R!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dac8a0e-2be8-4f0d-a1a1-ccb9951a6b3b_1024x325.png 424w, https://substackcdn.com/image/fetch/$s_!Wh6R!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dac8a0e-2be8-4f0d-a1a1-ccb9951a6b3b_1024x325.png 848w, https://substackcdn.com/image/fetch/$s_!Wh6R!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dac8a0e-2be8-4f0d-a1a1-ccb9951a6b3b_1024x325.png 1272w, https://substackcdn.com/image/fetch/$s_!Wh6R!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dac8a0e-2be8-4f0d-a1a1-ccb9951a6b3b_1024x325.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Wh6R!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dac8a0e-2be8-4f0d-a1a1-ccb9951a6b3b_1024x325.png" width="1024" height="325" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0dac8a0e-2be8-4f0d-a1a1-ccb9951a6b3b_1024x325.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:325,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Postal SMTP Setup&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Postal SMTP Setup" title="Postal SMTP Setup" srcset="https://substackcdn.com/image/fetch/$s_!Wh6R!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dac8a0e-2be8-4f0d-a1a1-ccb9951a6b3b_1024x325.png 424w, https://substackcdn.com/image/fetch/$s_!Wh6R!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dac8a0e-2be8-4f0d-a1a1-ccb9951a6b3b_1024x325.png 848w, https://substackcdn.com/image/fetch/$s_!Wh6R!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dac8a0e-2be8-4f0d-a1a1-ccb9951a6b3b_1024x325.png 1272w, https://substackcdn.com/image/fetch/$s_!Wh6R!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0dac8a0e-2be8-4f0d-a1a1-ccb9951a6b3b_1024x325.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Run the below command to bootstrap Postal, but replace the '<em><strong>yourdomain.com</strong></em>'with your domain:</p><pre><code>postal bootstrap postal.yourdomain.com</code></pre><p>Step 8: Configure Postal Settings</p><p>Edit the Postal configuration file: Run the below command to edit the postal configuration file using the nano editor</p><pre><code>nano /opt/postal/config/postal.yml</code></pre><p>A file will of this nature will open:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!O6-h!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b063474-210e-42c0-a4a2-95d8aacb59d4_472x448.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!O6-h!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b063474-210e-42c0-a4a2-95d8aacb59d4_472x448.png 424w, https://substackcdn.com/image/fetch/$s_!O6-h!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b063474-210e-42c0-a4a2-95d8aacb59d4_472x448.png 848w, https://substackcdn.com/image/fetch/$s_!O6-h!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b063474-210e-42c0-a4a2-95d8aacb59d4_472x448.png 1272w, https://substackcdn.com/image/fetch/$s_!O6-h!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b063474-210e-42c0-a4a2-95d8aacb59d4_472x448.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!O6-h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b063474-210e-42c0-a4a2-95d8aacb59d4_472x448.png" width="472" height="448" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b063474-210e-42c0-a4a2-95d8aacb59d4_472x448.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:448,&quot;width&quot;:472,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Postal SMTP Setup&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Postal SMTP Setup" title="Postal SMTP Setup" srcset="https://substackcdn.com/image/fetch/$s_!O6-h!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b063474-210e-42c0-a4a2-95d8aacb59d4_472x448.png 424w, https://substackcdn.com/image/fetch/$s_!O6-h!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b063474-210e-42c0-a4a2-95d8aacb59d4_472x448.png 848w, https://substackcdn.com/image/fetch/$s_!O6-h!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b063474-210e-42c0-a4a2-95d8aacb59d4_472x448.png 1272w, https://substackcdn.com/image/fetch/$s_!O6-h!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b063474-210e-42c0-a4a2-95d8aacb59d4_472x448.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In this file, you&#8217;ll need to <strong>set the database password</strong> (the one you used for MariaDB) in these sections:</p><pre><code>main_db:
  host: 127.0.0.1
  username: root
  password: your_mariadb_password_here
  database: postal

message_db:
  host: 127.0.0.1
  username: root
  password: your_mariadb_password_here
  prefix: postal</code></pre><h2>Quitting the Nano Editor</h2><p>To quit the nano editor in most operating system, follow these steps:</p><ol><li><p><strong>Press </strong><code>Ctrl + X</code><br>This will initiate the exit process.</p></li><li><p>If you have unsaved changes, nano will prompt you with:<br><strong>"Save modified buffer?"</strong></p><ul><li><p>To <strong>save your changes</strong>, press <code>Y</code> (yes).</p></li><li><p>To <strong>discard changes</strong>, press <code>N</code> (no).</p></li></ul></li><li><p>If you chose to save, nano will then ask:<br><strong>"File Name to Write:"</strong></p><ul><li><p>Confirm the filename by pressing <code>Enter</code>.</p></li></ul></li></ol><p>After these steps, nano will close, and you will return to the command line.</p><p>Step 9: Initialize Postal Database<br>Run the below command to initialize postal</p><pre><code>postal initialize</code></pre><p>Wait a couple of minutes for it to create all the necessary database tables and configurations.</p><p>Step 10: Create Admin User</p><p>Create your own postal admin user account:</p><pre><code>postal make-user</code></pre><p>Follow the prompts to add your emails, firstname, last name and postal password . <strong>You&#8217;ll use these credentials to log into the Postal web interface.</strong></p><p>Step 11: Start the Postal server</p><p>Now, start the Postal server:</p><pre><code>postal start</code></pre><p>Postal should now be running! But, before navigating to it, we&#8217;ll need to set up <strong>Caddy</strong> so we can access Postal with our subdomain with a secure SSL. <em><strong>Caddy</strong></em> handle the postal <em><strong>ssl</strong></em>.</p><p>Run the below command and ssl will be installed:</p><pre><code>docker run -d \
  --name postal-caddy \
  --restart always \
  --network host \
  -v /opt/postal/config/Caddyfile:/etc/caddy/Caddyfile \
  -v /opt/postal/caddy-data:/data \
  caddy</code></pre><p>Now you can access your Postal server securely at </p><p>https://postal.yourdomain.com</p><p>!</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!bIe-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe712ded8-42a2-46f4-a55a-0c811a911473_942x498.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!bIe-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe712ded8-42a2-46f4-a55a-0c811a911473_942x498.png 424w, https://substackcdn.com/image/fetch/$s_!bIe-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe712ded8-42a2-46f4-a55a-0c811a911473_942x498.png 848w, https://substackcdn.com/image/fetch/$s_!bIe-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe712ded8-42a2-46f4-a55a-0c811a911473_942x498.png 1272w, https://substackcdn.com/image/fetch/$s_!bIe-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe712ded8-42a2-46f4-a55a-0c811a911473_942x498.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!bIe-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe712ded8-42a2-46f4-a55a-0c811a911473_942x498.png" width="942" height="498" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e712ded8-42a2-46f4-a55a-0c811a911473_942x498.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:498,&quot;width&quot;:942,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!bIe-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe712ded8-42a2-46f4-a55a-0c811a911473_942x498.png 424w, https://substackcdn.com/image/fetch/$s_!bIe-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe712ded8-42a2-46f4-a55a-0c811a911473_942x498.png 848w, https://substackcdn.com/image/fetch/$s_!bIe-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe712ded8-42a2-46f4-a55a-0c811a911473_942x498.png 1272w, https://substackcdn.com/image/fetch/$s_!bIe-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe712ded8-42a2-46f4-a55a-0c811a911473_942x498.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Now log in with the details you defined when setting your postal admin user.</p><h2>Advanced DNS Configuration Guide</h2><p>This is where most people mess up everything, but I&#8217;ll break it down into simple terms. Liken DNS records as instructions you give to the internet to confirm the emails sent out from your domain is legimately coming from you.</p><h3>Sender Policy framework (SPF):</h3><p>The sender policy framework tells the internet which servers (IPs) can send email on behalf of your domain name. This can be an IP or ranges of IPs.</p><h2>DKIM (DomainKeys Identified Mail):</h2><p>This is an email authentication method designed to detect email spoofing. It uses a digital signature to verify that an email was sent from an authorized server and that the message content hasn't been altered during transit. To set up DKIM, you generate a public DKIM key and add it to your domain's DNS records. Receiving servers use this public key to verify the DKIM signature in incoming emails, ensuring authenticity. Tools like the DKIM Check tool can test if a DKIM record is correctly published for a domain. For our own case postal already made everything easy for us as it provide us a with SPF, DKIM, Return path and other details needed to configure our return path and other technical details.</p><h2>Return Path</h2><p>This is simply where bounce emails are sent when they fail.</p><h2>rDNS/PTR</h2><p>This action links your server IP bact to your domain name. This can be seen as the reverse of domain mapping.</p><h2>Practical Postal DNS Setup:</h2><p>Once you&#8217;re in your Postal dashboard, you need to add your sending domain to postal. So, navigate to the Domains tab and add your main domain <strong>(not the subdomain) </strong>as in below:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!gW3Z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe15f29de-de5b-4ec3-8f83-cf7a4d9f8105_946x450.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!gW3Z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe15f29de-de5b-4ec3-8f83-cf7a4d9f8105_946x450.png 424w, https://substackcdn.com/image/fetch/$s_!gW3Z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe15f29de-de5b-4ec3-8f83-cf7a4d9f8105_946x450.png 848w, https://substackcdn.com/image/fetch/$s_!gW3Z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe15f29de-de5b-4ec3-8f83-cf7a4d9f8105_946x450.png 1272w, https://substackcdn.com/image/fetch/$s_!gW3Z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe15f29de-de5b-4ec3-8f83-cf7a4d9f8105_946x450.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!gW3Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe15f29de-de5b-4ec3-8f83-cf7a4d9f8105_946x450.png" width="946" height="450" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e15f29de-de5b-4ec3-8f83-cf7a4d9f8105_946x450.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:450,&quot;width&quot;:946,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!gW3Z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe15f29de-de5b-4ec3-8f83-cf7a4d9f8105_946x450.png 424w, https://substackcdn.com/image/fetch/$s_!gW3Z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe15f29de-de5b-4ec3-8f83-cf7a4d9f8105_946x450.png 848w, https://substackcdn.com/image/fetch/$s_!gW3Z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe15f29de-de5b-4ec3-8f83-cf7a4d9f8105_946x450.png 1272w, https://substackcdn.com/image/fetch/$s_!gW3Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe15f29de-de5b-4ec3-8f83-cf7a4d9f8105_946x450.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>And, now we&#8217;re set to configure our DNS records to complete our mail server directly from here:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ScHN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44012b2e-3a14-479d-97bb-bb61b12484a8_947x456.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ScHN!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44012b2e-3a14-479d-97bb-bb61b12484a8_947x456.png 424w, https://substackcdn.com/image/fetch/$s_!ScHN!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44012b2e-3a14-479d-97bb-bb61b12484a8_947x456.png 848w, https://substackcdn.com/image/fetch/$s_!ScHN!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44012b2e-3a14-479d-97bb-bb61b12484a8_947x456.png 1272w, https://substackcdn.com/image/fetch/$s_!ScHN!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44012b2e-3a14-479d-97bb-bb61b12484a8_947x456.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ScHN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44012b2e-3a14-479d-97bb-bb61b12484a8_947x456.png" width="947" height="456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/44012b2e-3a14-479d-97bb-bb61b12484a8_947x456.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:456,&quot;width&quot;:947,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!ScHN!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44012b2e-3a14-479d-97bb-bb61b12484a8_947x456.png 424w, https://substackcdn.com/image/fetch/$s_!ScHN!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44012b2e-3a14-479d-97bb-bb61b12484a8_947x456.png 848w, https://substackcdn.com/image/fetch/$s_!ScHN!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44012b2e-3a14-479d-97bb-bb61b12484a8_947x456.png 1272w, https://substackcdn.com/image/fetch/$s_!ScHN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F44012b2e-3a14-479d-97bb-bb61b12484a8_947x456.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Now, go to your domain registrar like you did during your domain mapping , and add the following technical records that Postal already provided to us.</p><h2>Technical Details Setup</h2><p>1. SPF Record (Sender Policy Framework)</p><p>Add this TXT record to your domain:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fiIH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67cee1d1-ac75-4d24-9f9d-b5192e2cf050_711x168.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fiIH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67cee1d1-ac75-4d24-9f9d-b5192e2cf050_711x168.png 424w, https://substackcdn.com/image/fetch/$s_!fiIH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67cee1d1-ac75-4d24-9f9d-b5192e2cf050_711x168.png 848w, https://substackcdn.com/image/fetch/$s_!fiIH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67cee1d1-ac75-4d24-9f9d-b5192e2cf050_711x168.png 1272w, https://substackcdn.com/image/fetch/$s_!fiIH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67cee1d1-ac75-4d24-9f9d-b5192e2cf050_711x168.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fiIH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67cee1d1-ac75-4d24-9f9d-b5192e2cf050_711x168.png" width="711" height="168" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/67cee1d1-ac75-4d24-9f9d-b5192e2cf050_711x168.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:168,&quot;width&quot;:711,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;postal smtp setup&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="postal smtp setup" title="postal smtp setup" srcset="https://substackcdn.com/image/fetch/$s_!fiIH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67cee1d1-ac75-4d24-9f9d-b5192e2cf050_711x168.png 424w, https://substackcdn.com/image/fetch/$s_!fiIH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67cee1d1-ac75-4d24-9f9d-b5192e2cf050_711x168.png 848w, https://substackcdn.com/image/fetch/$s_!fiIH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67cee1d1-ac75-4d24-9f9d-b5192e2cf050_711x168.png 1272w, https://substackcdn.com/image/fetch/$s_!fiIH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F67cee1d1-ac75-4d24-9f9d-b5192e2cf050_711x168.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Replace <code>YOUR_SERVER_IP</code> with your actual server IP.</p><p>2. DKIM Record (DomainKeys Identified Mail)</p><p>Directly below the SPF record on Postal, you&#8217;ll find your <strong>DKIM</strong> name and value, where you&#8217;ll add them like this:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!T8E5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0759f03a-4b90-4d92-9858-8f3497b36648_712x171.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!T8E5!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0759f03a-4b90-4d92-9858-8f3497b36648_712x171.png 424w, https://substackcdn.com/image/fetch/$s_!T8E5!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0759f03a-4b90-4d92-9858-8f3497b36648_712x171.png 848w, https://substackcdn.com/image/fetch/$s_!T8E5!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0759f03a-4b90-4d92-9858-8f3497b36648_712x171.png 1272w, https://substackcdn.com/image/fetch/$s_!T8E5!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0759f03a-4b90-4d92-9858-8f3497b36648_712x171.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!T8E5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0759f03a-4b90-4d92-9858-8f3497b36648_712x171.png" width="712" height="171" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0759f03a-4b90-4d92-9858-8f3497b36648_712x171.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:171,&quot;width&quot;:712,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot; postal smtp setup&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt=" postal smtp setup" title=" postal smtp setup" srcset="https://substackcdn.com/image/fetch/$s_!T8E5!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0759f03a-4b90-4d92-9858-8f3497b36648_712x171.png 424w, https://substackcdn.com/image/fetch/$s_!T8E5!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0759f03a-4b90-4d92-9858-8f3497b36648_712x171.png 848w, https://substackcdn.com/image/fetch/$s_!T8E5!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0759f03a-4b90-4d92-9858-8f3497b36648_712x171.png 1272w, https://substackcdn.com/image/fetch/$s_!T8E5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0759f03a-4b90-4d92-9858-8f3497b36648_712x171.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>3. Return-Path (Handled automatically by Postal)</p><p>For the return path, choose <strong>CNAME </strong>record instead of the usual TXT records, see sreenshot below:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8kdf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7932c123-2f0c-4aec-8d18-3c297a6d914f_708x170.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8kdf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7932c123-2f0c-4aec-8d18-3c297a6d914f_708x170.png 424w, https://substackcdn.com/image/fetch/$s_!8kdf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7932c123-2f0c-4aec-8d18-3c297a6d914f_708x170.png 848w, https://substackcdn.com/image/fetch/$s_!8kdf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7932c123-2f0c-4aec-8d18-3c297a6d914f_708x170.png 1272w, https://substackcdn.com/image/fetch/$s_!8kdf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7932c123-2f0c-4aec-8d18-3c297a6d914f_708x170.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8kdf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7932c123-2f0c-4aec-8d18-3c297a6d914f_708x170.png" width="708" height="170" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7932c123-2f0c-4aec-8d18-3c297a6d914f_708x170.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:170,&quot;width&quot;:708,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;postal smtp setup&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="postal smtp setup" title="postal smtp setup" srcset="https://substackcdn.com/image/fetch/$s_!8kdf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7932c123-2f0c-4aec-8d18-3c297a6d914f_708x170.png 424w, https://substackcdn.com/image/fetch/$s_!8kdf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7932c123-2f0c-4aec-8d18-3c297a6d914f_708x170.png 848w, https://substackcdn.com/image/fetch/$s_!8kdf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7932c123-2f0c-4aec-8d18-3c297a6d914f_708x170.png 1272w, https://substackcdn.com/image/fetch/$s_!8kdf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7932c123-2f0c-4aec-8d18-3c297a6d914f_708x170.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>4. rDNS/PTR Record (Reverse DNS)</p><p>All Email marketing companies and providers query your reverse DNS to ensure your server IP is also pointing to your domain name that you mapped earlier. This helps them ensure you aren't spoofing. Once email service providers rDNS query returns <strong>FALSE</strong>, your emails will be sent to the spam. I will go through the steps of how to set it up on Contabo, it should be very similair in Verpex and other VPS providers too:</p><h2>Setting Up rDNS/PTR Record</h2><ol><li><p>Log into your <strong>Contabo Customer panel</strong></p></li><li><p>Go to your <strong>Reverse DNS Management</strong> section</p></li><li><p>Find the IP address of the VPS you used to deploy Postal on</p></li><li><p>Cick on edit and change the domain to your own<strong>:</strong> <code>mail.yourdomain.com</code></p></li></ol><p>Here&#8217;s an example from my case:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yA8a!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F064cae63-ad50-48e9-a878-1e9a5e398cd0_462x212.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yA8a!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F064cae63-ad50-48e9-a878-1e9a5e398cd0_462x212.png 424w, https://substackcdn.com/image/fetch/$s_!yA8a!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F064cae63-ad50-48e9-a878-1e9a5e398cd0_462x212.png 848w, https://substackcdn.com/image/fetch/$s_!yA8a!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F064cae63-ad50-48e9-a878-1e9a5e398cd0_462x212.png 1272w, https://substackcdn.com/image/fetch/$s_!yA8a!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F064cae63-ad50-48e9-a878-1e9a5e398cd0_462x212.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yA8a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F064cae63-ad50-48e9-a878-1e9a5e398cd0_462x212.png" width="462" height="212" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/064cae63-ad50-48e9-a878-1e9a5e398cd0_462x212.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:212,&quot;width&quot;:462,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;postal smtp setup&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="postal smtp setup" title="postal smtp setup" srcset="https://substackcdn.com/image/fetch/$s_!yA8a!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F064cae63-ad50-48e9-a878-1e9a5e398cd0_462x212.png 424w, https://substackcdn.com/image/fetch/$s_!yA8a!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F064cae63-ad50-48e9-a878-1e9a5e398cd0_462x212.png 848w, https://substackcdn.com/image/fetch/$s_!yA8a!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F064cae63-ad50-48e9-a878-1e9a5e398cd0_462x212.png 1272w, https://substackcdn.com/image/fetch/$s_!yA8a!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F064cae63-ad50-48e9-a878-1e9a5e398cd0_462x212.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>After adding these 4 records, scroll to the top of the page and click on '<strong>Check Record DNS is set correctly</strong>':</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VII1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d55eb43-86b4-47cb-9e6b-29d68aa4d2c1_725x342.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VII1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d55eb43-86b4-47cb-9e6b-29d68aa4d2c1_725x342.png 424w, https://substackcdn.com/image/fetch/$s_!VII1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d55eb43-86b4-47cb-9e6b-29d68aa4d2c1_725x342.png 848w, https://substackcdn.com/image/fetch/$s_!VII1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d55eb43-86b4-47cb-9e6b-29d68aa4d2c1_725x342.png 1272w, https://substackcdn.com/image/fetch/$s_!VII1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d55eb43-86b4-47cb-9e6b-29d68aa4d2c1_725x342.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VII1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d55eb43-86b4-47cb-9e6b-29d68aa4d2c1_725x342.png" width="725" height="342" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6d55eb43-86b4-47cb-9e6b-29d68aa4d2c1_725x342.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:342,&quot;width&quot;:725,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;postal smtp setup&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="postal smtp setup" title="postal smtp setup" srcset="https://substackcdn.com/image/fetch/$s_!VII1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d55eb43-86b4-47cb-9e6b-29d68aa4d2c1_725x342.png 424w, https://substackcdn.com/image/fetch/$s_!VII1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d55eb43-86b4-47cb-9e6b-29d68aa4d2c1_725x342.png 848w, https://substackcdn.com/image/fetch/$s_!VII1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d55eb43-86b4-47cb-9e6b-29d68aa4d2c1_725x342.png 1272w, https://substackcdn.com/image/fetch/$s_!VII1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d55eb43-86b4-47cb-9e6b-29d68aa4d2c1_725x342.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>And after a couple of minutes, it should show you this:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Q6bp!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ce787c4-46be-4547-a418-58ea154bfeac_406x142.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Q6bp!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ce787c4-46be-4547-a418-58ea154bfeac_406x142.png 424w, https://substackcdn.com/image/fetch/$s_!Q6bp!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ce787c4-46be-4547-a418-58ea154bfeac_406x142.png 848w, https://substackcdn.com/image/fetch/$s_!Q6bp!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ce787c4-46be-4547-a418-58ea154bfeac_406x142.png 1272w, https://substackcdn.com/image/fetch/$s_!Q6bp!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ce787c4-46be-4547-a418-58ea154bfeac_406x142.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Q6bp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ce787c4-46be-4547-a418-58ea154bfeac_406x142.png" width="406" height="142" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1ce787c4-46be-4547-a418-58ea154bfeac_406x142.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:142,&quot;width&quot;:406,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!Q6bp!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ce787c4-46be-4547-a418-58ea154bfeac_406x142.png 424w, https://substackcdn.com/image/fetch/$s_!Q6bp!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ce787c4-46be-4547-a418-58ea154bfeac_406x142.png 848w, https://substackcdn.com/image/fetch/$s_!Q6bp!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ce787c4-46be-4547-a418-58ea154bfeac_406x142.png 1272w, https://substackcdn.com/image/fetch/$s_!Q6bp!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1ce787c4-46be-4547-a418-58ea154bfeac_406x142.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Now, to complete this postal smtp setup, head on to credentials and create your first postal credential. This is the credential you will use to connect to any mailing application such as mailwizz and send emails. I discussed this indepth in my <strong>udemy course</strong> Email Marketing: <strong><a href="https://www.udemy.com/course/email-marketing-build-own-smtp-and-send-unlimited-emails/?referralCode=392B263D91C08B9FDC01">Build Own SMTP and Send Unlimited Emails</a></strong>, You can check it out if you want to understand almost everything about technical email marketing. Let's now look into SMTP warmup because this is where most people mess the whole thing up.</p><h2>Email Warmup Guide.</h2><p>Email or SMTP warm up is the process of sending emails slowing and subsequently ramping up volume. We have to go through this process because our IP is a new or virgin IP and the ISPs don't recorganize it. So, it has practically zero sending reputation. Sending non-promotional emails slowly helps to signal to ISPs that we are now spammers and that our sending is legitimate.</p><p><strong>Critical Warning:</strong> Don&#8217;t start sending thousands of emails immediately! Your new IP address has no reputation, <strong>will land you in spam folders or get you blacklisted.</strong></p><h3>The IP Warmup Process</h3><p>Email warmup is gradually building your IP&#8217;s reputation with email providers. Here&#8217;s why it matters:</p><ol><li><p>New IPs are treated with suspicion</p></li><li><p>Sudden high volume = spam in the eyes of ISPs</p></li><li><p>A gradual increase builds trust</p></li><li><p>Good engagement rates improve reputation</p></li></ol><p>This is the end of this guide and if you have any question pls comment them below or send me an email at support@j-insights.com so just escalate a question in <strong><a href="https://j-insights.com/community/">our forum</a></strong> and I will do my best to help and assist.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://insightssss.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[How to build SMTP server with Mailinabox ]]></title><description><![CDATA[Learn how to build and configure SMTP server with Mailinabox and send unlimited emails from your own server.]]></description><link>https://insightssss.substack.com/p/how-to-build-smtp-server-with-mailinabox</link><guid isPermaLink="false">https://insightssss.substack.com/p/how-to-build-smtp-server-with-mailinabox</guid><dc:creator><![CDATA[insights]]></dc:creator><pubDate>Mon, 04 Aug 2025 07:40:40 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!55cg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8847d36f-b6a1-41ea-ae95-3114e7e3f491_1388x615.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Today, I am going to guide you through how to build an SMTP server and send unlimited emails using Mailinabox. In my last post, I talked about how you can build an smtp server and send unlimited emails using <strong><a href="https://j-insights.com/postal-smtp-setup-ultimate-guide/">postal Mail transfer agent</a></strong>. This technically means there are different ways to build an SMTP server to send unlimited emails. We have postal, powerMTA, postfix, exim etc. Though these mail transfer agents vary from one another in terms of speed, reliability, processing power, and alot of other features. But let's limit this guide to build SMTP server with Mailinabox.</p><h2>What is Mailinabox?</h2><p>Mail-in-a-Box is a free, open-source program that simplifies self-hosting an email server. It offers a web-based control panel for managing email accounts, aliases, DNS records, and backups, enabling users to regain control of their email.</p><p>Mail-in-a-Box includes and configures <strong>Postfix</strong> as a core component of its complete email solution. It provides an all-in-one solution by including an SMTP server and other essential components. Mail-in-a-Box is designed for ease of use, making it accessible for individuals looking to manage their own email infrastructure.</p><h2>Mailinabox Setup: Step-by-Step Guide</h2><p>In this build SMTP server with Mailinabox, we need just two things:</p><ol><li><p>A domain name and you can get one in Namecheap, GoDaddy, or any domain registrar of your choice.</p></li><li><p>A VPS server with port 25 open. I recommend you go with <strong><a href="https://www.anrdoezrs.net/click-100388623-15022370">Contabo</a></strong> or <strong><a href="https://clients.verpex.com/aff/?a_aid=refid&amp;a_aid=Jinsights">Verpex</a></strong> because they have port 25 open by default.</p></li></ol><p>Let's set up a virtual private server (VPS) on your preferred VPS or cloud provider. I choose <strong><a href="https://www.anrdoezrs.net/click-100388623-15022370">Contabo</a></strong> for this guide as they offer solid server resources at an affordable price, with port 25 open by default. Port 25 must be open for your postal smtp setup to work optimally. So if you are not going with <strong><a href="https://www.anrdoezrs.net/click-100388623-15022370">contabo</a></strong> or <strong><a href="https://clients.verpex.com/aff/?a_aid=refid&amp;a_aid=Jinsights">verpex</a></strong> pls ensure port 25 is open on the VPS provider you are using.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!55cg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8847d36f-b6a1-41ea-ae95-3114e7e3f491_1388x615.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!55cg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8847d36f-b6a1-41ea-ae95-3114e7e3f491_1388x615.png 424w, https://substackcdn.com/image/fetch/$s_!55cg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8847d36f-b6a1-41ea-ae95-3114e7e3f491_1388x615.png 848w, https://substackcdn.com/image/fetch/$s_!55cg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8847d36f-b6a1-41ea-ae95-3114e7e3f491_1388x615.png 1272w, https://substackcdn.com/image/fetch/$s_!55cg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8847d36f-b6a1-41ea-ae95-3114e7e3f491_1388x615.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!55cg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8847d36f-b6a1-41ea-ae95-3114e7e3f491_1388x615.png" width="1388" height="615" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8847d36f-b6a1-41ea-ae95-3114e7e3f491_1388x615.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:615,&quot;width&quot;:1388,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:125877,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://insightssss.substack.com/i/170063818?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8847d36f-b6a1-41ea-ae95-3114e7e3f491_1388x615.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!55cg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8847d36f-b6a1-41ea-ae95-3114e7e3f491_1388x615.png 424w, https://substackcdn.com/image/fetch/$s_!55cg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8847d36f-b6a1-41ea-ae95-3114e7e3f491_1388x615.png 848w, https://substackcdn.com/image/fetch/$s_!55cg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8847d36f-b6a1-41ea-ae95-3114e7e3f491_1388x615.png 1272w, https://substackcdn.com/image/fetch/$s_!55cg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8847d36f-b6a1-41ea-ae95-3114e7e3f491_1388x615.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Configure Ubuntu 22.04 OS and place your order. Just in case you have another OS installed such as <strong>Cent</strong> or you ordered VPS with some other OS, follow the picture below to reinstall <strong>Ubuntu 22..04</strong> on your VPS.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!tnRo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3db4dbd9-c60d-497d-aac5-5329d2fd44be_1024x623.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!tnRo!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3db4dbd9-c60d-497d-aac5-5329d2fd44be_1024x623.png 424w, https://substackcdn.com/image/fetch/$s_!tnRo!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3db4dbd9-c60d-497d-aac5-5329d2fd44be_1024x623.png 848w, https://substackcdn.com/image/fetch/$s_!tnRo!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3db4dbd9-c60d-497d-aac5-5329d2fd44be_1024x623.png 1272w, https://substackcdn.com/image/fetch/$s_!tnRo!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3db4dbd9-c60d-497d-aac5-5329d2fd44be_1024x623.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!tnRo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3db4dbd9-c60d-497d-aac5-5329d2fd44be_1024x623.png" width="1024" height="623" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3db4dbd9-c60d-497d-aac5-5329d2fd44be_1024x623.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:623,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;build SMTP server with Mailinabox&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="build SMTP server with Mailinabox" title="build SMTP server with Mailinabox" srcset="https://substackcdn.com/image/fetch/$s_!tnRo!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3db4dbd9-c60d-497d-aac5-5329d2fd44be_1024x623.png 424w, https://substackcdn.com/image/fetch/$s_!tnRo!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3db4dbd9-c60d-497d-aac5-5329d2fd44be_1024x623.png 848w, https://substackcdn.com/image/fetch/$s_!tnRo!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3db4dbd9-c60d-497d-aac5-5329d2fd44be_1024x623.png 1272w, https://substackcdn.com/image/fetch/$s_!tnRo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3db4dbd9-c60d-497d-aac5-5329d2fd44be_1024x623.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Add a Custom Nameservers</h2><p>In this step we need to add a custom nameservers. In this tutorial I used namecheap, but the process is same Godaddy and for all domain registrars. Just follow the step blow and you will be able to do same in your registrar.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!LRyL!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2167122-460d-49fd-863f-f8054bb7402a_1024x678.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!LRyL!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2167122-460d-49fd-863f-f8054bb7402a_1024x678.jpeg 424w, https://substackcdn.com/image/fetch/$s_!LRyL!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2167122-460d-49fd-863f-f8054bb7402a_1024x678.jpeg 848w, https://substackcdn.com/image/fetch/$s_!LRyL!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2167122-460d-49fd-863f-f8054bb7402a_1024x678.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!LRyL!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2167122-460d-49fd-863f-f8054bb7402a_1024x678.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!LRyL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2167122-460d-49fd-863f-f8054bb7402a_1024x678.jpeg" width="1024" height="678" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b2167122-460d-49fd-863f-f8054bb7402a_1024x678.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:678,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!LRyL!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2167122-460d-49fd-863f-f8054bb7402a_1024x678.jpeg 424w, https://substackcdn.com/image/fetch/$s_!LRyL!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2167122-460d-49fd-863f-f8054bb7402a_1024x678.jpeg 848w, https://substackcdn.com/image/fetch/$s_!LRyL!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2167122-460d-49fd-863f-f8054bb7402a_1024x678.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!LRyL!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb2167122-460d-49fd-863f-f8054bb7402a_1024x678.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Now, click on add nameservers to add a custom nameservers. Change it to the following:</p><p><code>ns1.box.</code>j-insights.info</p><p><code>ns2.box.</code>j-insights.info</p><h2>Accessing your VPS server through SSH</h2><p>To connect to your server, you need an ssh client. If you are on mac, you can connect using your mac terminal. Then for window users, you can download the <strong><a href="https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html">putty</a></strong>(for window users only) server or <strong><a href="http://termius.com">termius</a></strong>(Compatible with all operating systems). I love using termius because I can use it to manage both my file system and ssh in one place.</p><p>If you are using your mac terminal, open the terminal and run the following command:</p><pre><code>ssh root@YOUR_SERVER_IP</code></pre><p>Ensure you replace the '<em><strong>YOUR_SERVER_IP</strong></em>' part to your VPS IP. If you are prompted to input your server password, input it, it may not be visible, but just type it. Hit on enter and you will be in your server command line like this:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!H2Ab!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e2ecd96-1732-4a71-b010-4538c5ebd461_497x42.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!H2Ab!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e2ecd96-1732-4a71-b010-4538c5ebd461_497x42.png 424w, https://substackcdn.com/image/fetch/$s_!H2Ab!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e2ecd96-1732-4a71-b010-4538c5ebd461_497x42.png 848w, https://substackcdn.com/image/fetch/$s_!H2Ab!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e2ecd96-1732-4a71-b010-4538c5ebd461_497x42.png 1272w, https://substackcdn.com/image/fetch/$s_!H2Ab!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e2ecd96-1732-4a71-b010-4538c5ebd461_497x42.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!H2Ab!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e2ecd96-1732-4a71-b010-4538c5ebd461_497x42.png" width="497" height="42" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2e2ecd96-1732-4a71-b010-4538c5ebd461_497x42.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:42,&quot;width&quot;:497,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;build SMTP server with Mailinabox&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="build SMTP server with Mailinabox" title="build SMTP server with Mailinabox" srcset="https://substackcdn.com/image/fetch/$s_!H2Ab!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e2ecd96-1732-4a71-b010-4538c5ebd461_497x42.png 424w, https://substackcdn.com/image/fetch/$s_!H2Ab!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e2ecd96-1732-4a71-b010-4538c5ebd461_497x42.png 848w, https://substackcdn.com/image/fetch/$s_!H2Ab!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e2ecd96-1732-4a71-b010-4538c5ebd461_497x42.png 1272w, https://substackcdn.com/image/fetch/$s_!H2Ab!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2e2ecd96-1732-4a71-b010-4538c5ebd461_497x42.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Then for <strong>termius</strong> click on add host add your server ip address and password seen as the right side of the sofrware as in the screenshot below: Click on connect and you will be in your command line.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fJUz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0681b7b-5685-4eb8-b7ae-73c913ab8145_1024x640.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fJUz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0681b7b-5685-4eb8-b7ae-73c913ab8145_1024x640.png 424w, https://substackcdn.com/image/fetch/$s_!fJUz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0681b7b-5685-4eb8-b7ae-73c913ab8145_1024x640.png 848w, https://substackcdn.com/image/fetch/$s_!fJUz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0681b7b-5685-4eb8-b7ae-73c913ab8145_1024x640.png 1272w, https://substackcdn.com/image/fetch/$s_!fJUz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0681b7b-5685-4eb8-b7ae-73c913ab8145_1024x640.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fJUz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0681b7b-5685-4eb8-b7ae-73c913ab8145_1024x640.png" width="1024" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d0681b7b-5685-4eb8-b7ae-73c913ab8145_1024x640.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:640,&quot;width&quot;:1024,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!fJUz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0681b7b-5685-4eb8-b7ae-73c913ab8145_1024x640.png 424w, https://substackcdn.com/image/fetch/$s_!fJUz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0681b7b-5685-4eb8-b7ae-73c913ab8145_1024x640.png 848w, https://substackcdn.com/image/fetch/$s_!fJUz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0681b7b-5685-4eb8-b7ae-73c913ab8145_1024x640.png 1272w, https://substackcdn.com/image/fetch/$s_!fJUz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd0681b7b-5685-4eb8-b7ae-73c913ab8145_1024x640.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Installing Mailinabox</h2><p>First switch to superuser elevated privilege by running the following command:</p><pre><code>&#9;
sudo -i</code></pre><p>Test whether port 25 is open on your VPS</p><pre><code>apt install telnet -y
telnet smtp.gmail.com 25</code></pre><p>You will see <strong>Connected</strong> success message. If you didn&#8217;t see the success message that means port 25 is blocked on your server and you have to email your hosting provider for unblocking or buy vps from companies that has port 25 open.</p><p>Next, set the hostname with the following command,</p><pre><code>hostnamectl set-hostname box.j-insights.info</code></pre><p>Replace<em><strong> j-insights.info</strong></em> with your domain name. Please leave the<strong> box</strong> as it is. After that, update the server with following command:</p><pre><code>apt update &amp;amp;&amp;amp; apt upgrade -y</code></pre><p>Now run the following command</p><pre><code>curl -s https://mailinabox.email/setup.sh | sudo bash</code></pre><p>Answer questions which will appear on your screen. If asked for email id type</p><p><em><strong>yourchoice@domainname.com</strong></em></p><p>not <em><strong>yourchoice@box.domainname.com</strong></em></p><p>At the end of installation you will asked for user name and password. Enter it and you are done.</p><h2>Finalizing Installation</h2><p>Now go to URL <em>https://box.j-insights.info/admin</em> and login. If any thing is not in green address there is an issue.</p><p>You can add users and find SMTP details in relevant menus inside mailinbox.</p><p>As you can see, to build SMTP server with Mailinabox is very straightfarward and easy. You just have to run a few command and you are up and running.</p><p>Use platforms like <strong><a href="https://www.mail-tester.com/">mail-tester</a></strong> to test your sending score before sending. You can also follow this article to understand the concept of <strong><a href="https://j-insights.com/postal-smtp-setup-ultimate-guide/">warmup</a></strong> before sending out any email. If you send out a lot of emails at once your emails will be blacklisted.</p>]]></content:encoded></item><item><title><![CDATA[Best VPS Providers with port 25 open.]]></title><description><![CDATA[In this article you will see the lists of VPS providers with port 25 open.]]></description><link>https://insightssss.substack.com/p/best-vps-providers-with-port-25-open</link><guid isPermaLink="false">https://insightssss.substack.com/p/best-vps-providers-with-port-25-open</guid><dc:creator><![CDATA[insights]]></dc:creator><pubDate>Mon, 23 Jun 2025 11:03:07 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!lfth!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd557f968-c917-4e38-bc98-7e970d0998c4_600x400.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lfth!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd557f968-c917-4e38-bc98-7e970d0998c4_600x400.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lfth!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd557f968-c917-4e38-bc98-7e970d0998c4_600x400.png 424w, https://substackcdn.com/image/fetch/$s_!lfth!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd557f968-c917-4e38-bc98-7e970d0998c4_600x400.png 848w, https://substackcdn.com/image/fetch/$s_!lfth!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd557f968-c917-4e38-bc98-7e970d0998c4_600x400.png 1272w, https://substackcdn.com/image/fetch/$s_!lfth!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd557f968-c917-4e38-bc98-7e970d0998c4_600x400.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lfth!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd557f968-c917-4e38-bc98-7e970d0998c4_600x400.png" width="600" height="400" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d557f968-c917-4e38-bc98-7e970d0998c4_600x400.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:400,&quot;width&quot;:600,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:32211,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://insightssss.substack.com/i/166585146?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd557f968-c917-4e38-bc98-7e970d0998c4_600x400.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lfth!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd557f968-c917-4e38-bc98-7e970d0998c4_600x400.png 424w, https://substackcdn.com/image/fetch/$s_!lfth!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd557f968-c917-4e38-bc98-7e970d0998c4_600x400.png 848w, https://substackcdn.com/image/fetch/$s_!lfth!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd557f968-c917-4e38-bc98-7e970d0998c4_600x400.png 1272w, https://substackcdn.com/image/fetch/$s_!lfth!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd557f968-c917-4e38-bc98-7e970d0998c4_600x400.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Before compiling this list, I contacted the support teams of these VPS providers, and they confirmed that port 25 is open on their VPS. It should be understandable that company policies are subject to change from time to time, but as of today, these lists remain valid. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://insightssss.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>To discuss the best VPS providers with port 25 open, let&#8217;s first understand what ports are in computer networking. According to <strong><a href="https://cloudflare.com/">Cloudflare</a></strong>, A port is <strong>a virtual point where network connections start and end</strong>. A computer&#8217;s operating system manages ports, which are software. In other words, ports are simply computer protocols that help to establish connections between different services over the Internet. So, ports are gatekeepers of the internet, and without them, no connections will be established. Let&#8217;s see the different ports and what they can do on the internet:</p><h2><strong>Ports and Connections</strong></h2><ol><li><p>To connect to a Linux machine via SSH, we need port 22 to be opened on the machine.</p></li><li><p>For establishing a Windows connection. The new default start port is 49152, and the new default end port is 65535.</p></li><li><p>To connect to a remote desktop protocol (RDP), we need port 3389 to be open.</p></li><li><p>To connect to web servers like Apache, we use Port 80. It is the default network port for web servers using HTTP. It operates on the application layer of the TCP/IP networking model and serves as the communication gateway for HTTP requests and responses between client computers and servers.</p></li><li><p>For establishing a DNS query, the standard port for DNS is port 53. DNS client applications use the DNS protocol to query and request information from DNS servers, and the server returns the results to the client using the same port. Port 53 is used for both TCP and UDP communication.</p></li><li><p>Similarly, to send emails, we need port 25 to be open for outgoing emails on the sending server. So, that is the reason you need port 25 open in your VPS server; if not, no email sending connections will be established, and you won&#8217;t be able to send any emails. So, before we explore Best VPS Providers with port 25 open, let&#8217;s see the challenges of open port 25.</p></li></ol><p></p><h2>VPS Providers with port 25 open.</h2><ol><li><p><strong><a href="https://clients.verpex.com/aff/?a_aid=refid&amp;a_aid=Jinsights">VERPEX</a></strong></p></li><li><p><strong><a href="https://www.anrdoezrs.net/click-100388623-15022370">CONTABO</a></strong></p></li><li><p><strong><a href="https://www.vpsbg.eu/aff/7cb495">VPSBG</a></strong></p></li><li><p><strong><a href="https://www.hostwinds.com/13983.html">Hostwinds</a></strong></p></li><li><p><strong><a href="https://www.ovhcloud.com/">OVH cloud</a></strong></p></li></ol><p><strong>Quick NOTE</strong>: As was said at the beginning, it should be noted that VPS providers change their policies from time to time and may decide to block their port 25 at any time. But these are the lists of Best VPS Providers with port 25 open:</p><h2><strong>Challenges of opening Port 25 by VPS Companies</strong></h2><p>According to <strong><a href="https://www.statista.com/statistics/456500/daily-number-of-e-mails-worldwide/">Statista</a></strong> in 2022, there were an estimated 333 billion emails sent and received daily around the world, with over 70% as spam. This figure is projected to increase to 392.5 billion daily emails by 2026. So, to protect the internet from spam most internet service providers block 25 by default.</p><p>Another reason why most VPS companies block port 25 by default is because, a spammer can easily pay for their IPs and get it all blacklisted as a result of spam activities. This will damage the reputation of their IPs, which means low sales for the VPS company. Anytime there is an unusual or spam traffic from your SMTP server, third party services like <em><strong><a href="https://www.spamhaus.org/">spamhaus</a></strong></em> will notify your ISP and you will get blacklisted and you have to follow instructional guide to remove it from blacklist. It takes time for submitted requests to be delisted, so don&#8217;t spam. Also, law enforcement can arrest and charge the VPS company for aiding spamming over the internet.</p><p>There are laws against spamming, and one of them is the <strong><a href="https://www.ftc.gov/business-guidance/resources/can-spam-act-compliance-guide-business">CAN-SPAM ACT of 2003.</a> </strong>The CAN-SPAM Act of 2003 is a U.S. law that sets the rules for commercial email. It establishes requirements for commercial messages and gives recipients the right to opt out of receiving them. It was passed to set national standards for commercial emails.</p><p>This is primarily to protect consumers from spam and ensure businesses follow honest practices in email marketing.</p><p>If you found more VPS Providers with port 25 open, comment them below  or  email me at support@<strong><a href="https://j-insights.com/">j-insights.com</a></strong> so that I can update this article to keep it beneficial to future readers.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://insightssss.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[How I fixed Mac Connected to Wi-Fi but No Internet.]]></title><description><![CDATA[This explains the steps I took solve my mac not connecting to the internet even while connected to the WIFI.]]></description><link>https://insightssss.substack.com/p/how-i-fixed-mac-connected-to-wi-fi</link><guid isPermaLink="false">https://insightssss.substack.com/p/how-i-fixed-mac-connected-to-wi-fi</guid><dc:creator><![CDATA[insights]]></dc:creator><pubDate>Sun, 22 Jun 2025 12:49:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/jiPIn8qcgT8" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I guess you faced the issue &#8216;Mac Connected to Wi-Fi but No Internet&#8217;? So, I was recording one of my courses on <strong><a href="https://www.udemy.com/course/email-marketing-build-own-smtp-and-send-unlimited-emails/?referralCode=392B263D91C08B9FDC01">Udemy</a></strong> when I encountered this issue. I noticed my Mac is still connected to the wifi network, but wasn&#8217;t accessing the internet. </p><p>The shocker came when I connected my brother&#8217;s phone to the same wifi network, and the internet was accessible. This gave me a clue, and I immediately suspected the issue must be from either my Mac or my ISP. Guess what? I was <strong>100%</strong> right. </p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://insightssss.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Immediately, I googled to see if I could find a solution. I found guides that suggest the issue to be a Mac update. Unluckily for me, that was not the case in my case.</p><p>Then I contacted my ISP, and they maintained that everything was fine from their end. I had to start trying out some common possible networking causes of disruption of internet resolution. I found out that the issue was actually a slow/misconfigured DNS server. My phone, through my mobile carrier, gave my Mac a bad DNS server. I made a YouTube video after resolving this issue to help those who may face this issue in the future, to be able to try this method out.</p><div id="youtube2-jiPIn8qcgT8" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;jiPIn8qcgT8&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/jiPIn8qcgT8?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>Go to <strong>system settings &gt; network &gt; wifi &gt; then view the wifi details &gt; click on DNS.</strong> Now you will find your default DNS server assigned to your Mac by your mobile carrier. In my own case, I saw something like 192. XXXXXXXX1. This was the DNS server IP assigned by my ISP for performing DNS lookups and queries. This DNS server is in charge of returning the relevant IP address of your queries.</p><p>Click on the plus Icon and add the Google global DNS (8.8.8.8) or the Cloudflare DNS, which is (1.1.1.1). Either one will work, provided the issue is a DNS server issue. So, I changed to the Google global DNS, and it worked fine for me. Now, you may be asking what the difference is between the Google global DNS, your default ISP DNS, Quad9 DNS, and the Cloudflare DNS. You can check the table at the end of <strong><a href="https://j-insights.com/mac-connected-to-wi-fi-but-no-internet/">this article</a></strong>.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://insightssss.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Learning to Learn: My Journey Beyond Memorization in Tech.]]></title><description><![CDATA[Beyond the Code: My Realizations on Becoming a Better Programmer.]]></description><link>https://insightssss.substack.com/p/learning-to-learn-my-journey-beyond</link><guid isPermaLink="false">https://insightssss.substack.com/p/learning-to-learn-my-journey-beyond</guid><dc:creator><![CDATA[insights]]></dc:creator><pubDate>Sat, 21 Jun 2025 08:53:27 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/93f3ade6-0a8e-477b-8f44-360226cad1d6_852x480.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!It6b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11dc46c6-d604-4cd8-b108-cdbb434baecb_852x480.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!It6b!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11dc46c6-d604-4cd8-b108-cdbb434baecb_852x480.png 424w, https://substackcdn.com/image/fetch/$s_!It6b!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11dc46c6-d604-4cd8-b108-cdbb434baecb_852x480.png 848w, https://substackcdn.com/image/fetch/$s_!It6b!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11dc46c6-d604-4cd8-b108-cdbb434baecb_852x480.png 1272w, https://substackcdn.com/image/fetch/$s_!It6b!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11dc46c6-d604-4cd8-b108-cdbb434baecb_852x480.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!It6b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11dc46c6-d604-4cd8-b108-cdbb434baecb_852x480.png" width="852" height="480" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/11dc46c6-d604-4cd8-b108-cdbb434baecb_852x480.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:480,&quot;width&quot;:852,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:155776,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://insightssss.substack.com/i/166453368?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11dc46c6-d604-4cd8-b108-cdbb434baecb_852x480.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!It6b!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11dc46c6-d604-4cd8-b108-cdbb434baecb_852x480.png 424w, https://substackcdn.com/image/fetch/$s_!It6b!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11dc46c6-d604-4cd8-b108-cdbb434baecb_852x480.png 848w, https://substackcdn.com/image/fetch/$s_!It6b!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11dc46c6-d604-4cd8-b108-cdbb434baecb_852x480.png 1272w, https://substackcdn.com/image/fetch/$s_!It6b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11dc46c6-d604-4cd8-b108-cdbb434baecb_852x480.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>It is common among new programmers to feel overwhelmed and caught up in the misconception that there is a perfect programmer out there with all the code in a language memorized and all problems solved in their head. This is simply a fallacy, and I was guilty of it too when I first started learning <strong><a href="https://www.javascript.com/">JavaScript</a></strong> in 2018.</p><p>I still remember very well a friend, <strong><a href="https://babatundeola.medium.com/">Tunde</a></strong> (a computer science student and a great programmer then at the University of Ibadan), with whom we lived together in Tedder Hall, who helped me to buy my first two courses on udemy: one on how to use autocad and the other a Javascript course.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://insightssss.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p>Along the way, I had issues with some concepts in JavaScript, which made me abandon the course, come back again, abandon it, and come back again. At some point, I had to meet and explain my inconsistency to him, and he gave me a word that stuck. That no programmer knows everything, he made clear to me. The paramount skill for any coder, he insisted, is learning how to learn. &#8216;<strong>Johee, &#8217;</strong> <em>h<strong>e then said, &#8216;you have to learn how to use Google to search and solve any problem that you fac</strong></em><strong>e</strong>.&#8217;</p><p>There is nothing new under the sun; any problem you face in programming or your career, it is very likely that someone somewhere has faced it and has written somewhere a guide on how they solved it. He introduced me to Stack Overflow and other great places, and how to ask questions the right way. Thankfully, today there are AI chatbots like Google Gemini and ChatGPT that can help you to even get information faster.</p><p>The second lesson I picked up along the way was that real progress and growth happened in the doing. I think this was what demotivated me the few times I had to abandon the course. Assuming I prioritize building projects and avoid information overload, I&#8217;d have gotten the motivation and drive I needed from within to continue, rather than needing external motivation from <strong>Tunde</strong>. The real progress happened when I went back to the previous HTML/CSS and JavaScript projects I skipped in the past. I came to understand that the real learning happens when you code up real projects rather than just packing information inside your head.</p><p>So, if you&#8217;re seeing this, it doesn't matter what field you are in; this applies. Don't strive to memorize and regurgitate information; this is not school, and nobody will chastise you for searching for information online. Once you understand what you want to do and the steps, you can always get the help you need.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://substack.com/refer/insights.9?utm_source=substack&amp;utm_context=post&amp;utm_content=166453368&amp;utm_campaign=writer_referral_button&quot;,&quot;text&quot;:&quot;Start a Substack&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Start writing today. Use the button below to create a Substack of your own</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://substack.com/refer/insights.9?utm_source=substack&amp;utm_context=post&amp;utm_content=166453368&amp;utm_campaign=writer_referral_button&quot;,&quot;text&quot;:&quot;Start a Substack&quot;,&quot;hasDynamicSubstitutions&quot;:false}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://substack.com/refer/insights.9?utm_source=substack&amp;utm_context=post&amp;utm_content=166453368&amp;utm_campaign=writer_referral_button"><span>Start a Substack</span></a></p></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://insightssss.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[How I Built an AI-Powered Blog Summarizer in 5 Minutes.]]></title><description><![CDATA[This is a test project I did with Python and Openai. I am so so excited as this is one of the many projectS I worked on interacting with LLMs.]]></description><link>https://insightssss.substack.com/p/how-i-built-an-ai-powered-blog-summarizer</link><guid isPermaLink="false">https://insightssss.substack.com/p/how-i-built-an-ai-powered-blog-summarizer</guid><dc:creator><![CDATA[insights]]></dc:creator><pubDate>Fri, 20 Jun 2025 17:51:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/TpEh9eSjjZg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In early 2024, I jumped at the opportunity to learn Python, web scraping, and major LLMs. I learned how to write a basic Python script and how to pass simple data to large language models like OpenAI, Google Gemini, ClaudeAI, Anthropic, etc. I work on a variety of interesting projects, which I am happy to share with you, one and many others, in the future.</p><p>In this read, you are gonna see how I built an AI-Powered blog summarizer with Python and OpenAI, and the good thing is that I am going to give all the code to you so that you can run it locally, parsing any blog URL of your choice and having your preferred summaized length, long, medium, short or SEO optimized presented to you. I&#8217;d also like to point out that if you don't like reading, I also made a YouTube video on how to do this easily. I&#8217;m embedding it below. You can check it out if you want.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://insightssss.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div id="youtube2-TpEh9eSjjZg" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;TpEh9eSjjZg&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/TpEh9eSjjZg?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div><p>To start this project, you need to download and install the <strong><a href="https://python.org/downloads/">Python compiler</a></strong> and a code editor <strong><a href="https://code.visualstudio.com/download">VScode</a></strong>.</p><p>Now, let&#8217;s see the structure of the tool or script pictorially below:</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!3pH-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45a284dd-2c2e-4a43-aedd-805143ee9ed8_1484x295.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!3pH-!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45a284dd-2c2e-4a43-aedd-805143ee9ed8_1484x295.webp 424w, https://substackcdn.com/image/fetch/$s_!3pH-!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45a284dd-2c2e-4a43-aedd-805143ee9ed8_1484x295.webp 848w, https://substackcdn.com/image/fetch/$s_!3pH-!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45a284dd-2c2e-4a43-aedd-805143ee9ed8_1484x295.webp 1272w, https://substackcdn.com/image/fetch/$s_!3pH-!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45a284dd-2c2e-4a43-aedd-805143ee9ed8_1484x295.webp 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!3pH-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45a284dd-2c2e-4a43-aedd-805143ee9ed8_1484x295.webp" width="1456" height="289" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/45a284dd-2c2e-4a43-aedd-805143ee9ed8_1484x295.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:289,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:17380,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://insightssss.substack.com/i/166413873?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45a284dd-2c2e-4a43-aedd-805143ee9ed8_1484x295.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!3pH-!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45a284dd-2c2e-4a43-aedd-805143ee9ed8_1484x295.webp 424w, https://substackcdn.com/image/fetch/$s_!3pH-!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45a284dd-2c2e-4a43-aedd-805143ee9ed8_1484x295.webp 848w, https://substackcdn.com/image/fetch/$s_!3pH-!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45a284dd-2c2e-4a43-aedd-805143ee9ed8_1484x295.webp 1272w, https://substackcdn.com/image/fetch/$s_!3pH-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F45a284dd-2c2e-4a43-aedd-805143ee9ed8_1484x295.webp 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><h2>Getting the Script File code.</h2><p>Copy the code below and paste it into your script file in VS Code. This connects to your prompt folder/file to run.  You can also check out the full version of this project <strong><a href="https://j-insights.com/build-an-ai-blog-summarizer-with-python/">here</a></strong>. </p><pre><code>import openai
import requests
from bs4 import BeautifulSoup
from readability.readability import Document  # Correct readability import


# --- Configuration ---
# Set your OpenAI API key
# Important: For production, store this securely (e.g., environment variable, secrets manager)
openai.api_key = "Add your API key here" 

# Direct import from blogmadeeasy.py since it's in the same directory (assuming blog_summary.py is in 'prompts' folder)
try:
    from blogmadeeasy import short_summary_prompt, medium_summary_prompt, long_summary_prompt, seo_summary_prompt
except ImportError as e:
    print(
        f"Error: Could not import prompts from blogmadeeasy.py. Please ensure the file exists and contains the necessary prompt variables. Details: {e}")
    # Fallback prompts if import fails (less ideal, but prevents script crash)
    short_summary_prompt = "Summarize: {blog_content}"
    medium_summary_prompt = "Summarize in detail: {blog_content}"
    long_summary_prompt = "Provide a comprehensive summary: {blog_content}"
    seo_summary_prompt = "Create an SEO-friendly summary: {blog_content}"


def fetch_blog_content(url):
    """
    Fetches the main textual content from a given URL using requests and readability.
    Includes a fallback if readability struggles.
    """
    try:
        headers = {
            'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
        }
        response = requests.get(url, headers=headers, timeout=15)
        response.raise_for_status()

        # --- FIX APPLIED HERE ---
        html_content = response.text  # Use .text to get decoded string content
        # --- END FIX ---

        # Attempt to extract main article content using readability
        doc = Document(html_content)
        article_html = doc.summary()

        if article_html:
            soup = BeautifulSoup(article_html, 'html.parser')
            text_content = soup.get_text(separator='\n', strip=True)
            if len(text_content) &gt; 100:
                return text_content
            else:
                print(
                    "Warning: Readability extracted very little content. Attempting fallback.")

        print("Attempting fallback content extraction...")
        soup = BeautifulSoup(html_content, 'html.parser')
        content_selectors = [
            'article', 'main', 'div.entry-content', 'div.post-content',
            'div[class*="content"]', 'div[id*="content"]'
        ]

        main_text_parts = []
        for selector in content_selectors:
            elements = soup.select(selector)
            for elem in elements:
                text = elem.get_text(separator='\n', strip=True)
                if len(text) &gt; 200:
                    main_text_parts.append(text)

        if main_text_parts:
            full_text = '\n\n'.join(main_text_parts)
            if len(full_text) &gt; 100:
                return full_text

        print("Could not reliably extract main content using either method.")
        return None

    except requests.exceptions.RequestException as e:
        print(f"Network or request error: {e}")
        return None
    except Exception as e:
        print(f"An unexpected error occurred during content extraction: {e}")
        return None


def generate_summary(blog_content, summary_type, model="gpt-4"):
    """
    Generates a summarized version of the blog post content using OpenAI.
    """
    if not blog_content:
        return "Error: No blog content provided for summarization."

    prompt_template = ""
    max_tokens_limit = 0

    if summary_type == "short":
        prompt_template = short_summary_prompt
        max_tokens_limit = 100
    elif summary_type == "medium":
        prompt_template = medium_summary_prompt
        max_tokens_limit = 250
    elif summary_type == "long":
        prompt_template = long_summary_prompt
        max_tokens_limit = 400
    elif summary_type == "seo":
        prompt_template = seo_summary_prompt
        max_tokens_limit = 120
    else:
        return "Error: Invalid summary type specified. Choose from 'short', 'medium', 'long', or 'seo'."

    prompt = prompt_template.format(blog_content=blog_content)

    if len(prompt) &gt; 12000:
        print("Warning: Blog content is very long. Truncating for API call to prevent exceeding token limit.")
        prompt = prompt[:12000] + "\n\n... (content truncated due to length)"

    try:
        response = openai.chat.completions.create(
            model=model,
            messages=[{"role": "user", "content": prompt}],
            max_tokens=max_tokens_limit,
            temperature=0.7
        )
        return response.choices[0].message.content.strip()
    except openai.APIError as e:
        print(f"OpenAI API Error: {e}")
        return f"Error communicating with OpenAI: {e}"
    except Exception as e:
        return f"An unexpected error occurred during summary generation: {e}"


if __name__ == "__main__":
    print("--- Blog Post Summarizer ---")

    sample_url = 'https://j-insights.com/mac-connected-to-wi-fi-but-no-internet/'
    blog_url = input(
        f"Enter the URL of the blog post (or press Enter for sample '{sample_url}'): ").strip()

    if not blog_url:
        blog_url = sample_url
        print(f"Using sample URL: {blog_url}")

    print("\nFetching blog content...")
    blog_content = fetch_blog_content(blog_url)

    if blog_content:
        print(f"\n--- Content fetched ({len(blog_content)} characters) ---")
        print("Snippet:\n", blog_content[:700] +
              "..." if len(blog_content) &gt; 700 else blog_content)
        print("\n----------------------------------")

        while True:
            summary_type = input(
                "\nChoose summary type ('short', 'medium', 'long', 'seo', or 'exit' to quit): ").lower().strip()
            if summary_type == 'exit':
                print("Exiting summarizer.")
                break

            if summary_type in ["short", "medium", "long", "seo"]:
                print(f"Generating {summary_type.upper()} summary...")
                generated_summary = generate_summary(
                    blog_content, summary_type)
                print(f"\n--- Generated {summary_type.upper()} Summary ---\n")
                print(generated_summary)
                print("\n----------------------------------")
            else:
                print(
                    "Invalid summary type. Please choose from 'short', 'medium', 'long', 'seo', or 'exit'.")
    else:

        print("\nFailed to retrieve blog content from the provided URL. Please check the URL and your internet connection.")</code></pre><div><hr></div><p>Now let&#8217;s explain each part of this code:</p><h2><strong>Importing necessary Libraries</strong></h2><p><strong>Import openai</strong>: This line tells Python that our script will use the <code>openai</code> library. This library provides the tools to communicate with OpenAI&#8217;s powerful AI models (like GPT-4).</p><p><code>import requests</code>: This line imports the <code>requests</code> library. This library is fantastic for making web requests. We use it to download the raw content of a web page from a given URL. Think of it as a specialized web browser that fetches pages just for your program.</p><p><strong>From bs4 import BeautifulSoup</strong>: This imports the <code>BeautifulSoup</code> class from the <code>bs4</code> library. <code>BeautifulSoup</code> is a powerful tool for parsing HTML and XML documents. Web pages are written in HTML, and <code>BeautifulSoup</code> helps us navigate through that HTML to find specific pieces of information or extract clean text. It&#8217;s like having a specialized pair of scissors and a map to cut out exactly what you need from a messy newspaper.</p><p><strong>From readability.readability import Document</strong>: This line imports the <code>Document</code> class from the <code>readability</code> library. This library is designed to extract the main, human-readable content from a web page, stripping away boilerplate like navigation, ads, and footers. It&#8217;s excellent for getting just the article text.</p><h2><strong>Defining API Key</strong></h2><p><strong>Openai.api_key = "..."</strong>: This line sets your secret key for accessing the OpenAI API. Every time your script asks the AI model to do something, it sends this key along so OpenAI knows it&#8217;s you and can charge your account (or use your free credits). <strong>It&#8217;s crucial to keep this key private!</strong></p><h2>Prompt file code</h2><pre><code># prompts/blogmadeeasy.py

# Prompt for a concise summary suitable for social media (e.g., Twitter, Facebook status)
short_summary_prompt = """
Summarize the following blog post in 1-2 concise sentences, focusing on the core message or most actionable tip. Make it engaging for a social media audience:
{blog_content}
"""

# Prompt for a medium-length summary suitable for platforms like Medium or a newsletter snippet
medium_summary_prompt = """
Create a 2-3 paragraph summary of the following blog post. Highlight the main points, key takeaways, and why the information is valuable to the reader. Aim for an informative yet digestible overview for a platform like Medium:
{blog_content}
"""

# Prompt for a detailed summary suitable for LinkedIn or as a more in-depth internal memo
long_summary_prompt = """
Provide a comprehensive summary of the following blog post, ensuring all essential information, major arguments, and concluding thoughts are captured. This summary should be detailed enough to stand alone as a repurposable article for platforms like LinkedIn, offering a thorough understanding without needing to read the original:
{blog_content}
"""

# Prompt for an SEO-optimized summary (e.g., for meta descriptions or blog post excerpts)
seo_summary_prompt = """
Generate a compelling and search engine optimized summary (meta description) for the following blog post, ideally under 160 characters. Include relevant keywords from the text naturally. The summary should entice clicks and accurately represent the article's content:
{blog_content}
"""</code></pre><p>This file contains the different summary types; the long, medium, short, seo optimized. Any of the summary prompt you picked will determine what kind of summary rendered to you along the loop. So this is summarily how you can easily Build an AI blog Summarizer with Python in minutes. If you face any issue pls submit a question in our <strong><a href="https://j-insights.com/community/">forum</a></strong> or ping me on <strong>support@j-insights.com</strong></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://insightssss.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Thanks for reading! Subscribe for free to receive new posts and support my work.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item></channel></rss>