{"id":1608,"date":"2025-02-19T12:44:55","date_gmt":"2025-02-19T07:14:55","guid":{"rendered":"https:\/\/lazytourer.com\/in\/?p=1608"},"modified":"2025-08-20T23:02:01","modified_gmt":"2025-08-20T17:32:01","slug":"self-host-wordpress-website-on-your-home-pc-computer-or-laptop","status":"publish","type":"post","link":"https:\/\/lazytourer.com\/in\/self-host-wordpress-website-on-your-home-pc-computer-or-laptop\/","title":{"rendered":"Self Host WordPress website on your Home PC Computer or Laptop"},"content":{"rendered":"\n<p>If you search the internet about this topic, you may find a vast majority of articles and videos are showing you how to install wordpress in your local windows computer with software suites like XAMP \/ LAMP or etc.<br><br>They are not wrong, as those methods will get you a working local wordpress website working within your computer. However, those installation methods are neither production ready nor they are secured enough to run an actual wordpress website and allow people accessing it from the internet.<br><br>In this article, we shall share an easy but detailed, technical and in-depth, step-by-step guide on how to install, setup, run, manage &amp; maintain a production ready, highly secured WordPress installation on a home computer. This is comparable to a VPS (Virtual Private Server) or dedicated server, which you may rent out from Cloud Hosting or VPS Hosting service providers to deploy your dedicated WordPress installation.<\/p>\n\n\n\n<p class=\"has-text-align-center has-white-color has-black-background-color has-text-color has-background has-link-color has-large-font-size wp-elements-aab99f8a69d44139fb6814b1b8d3b47d\"><strong>What is WordPress?<\/strong><\/p>\n\n\n\n<p>If you are reading this article, then surely know what is WordPress, right? But just in case if anyone is new here, who doesn&#8217;t know or needs further clarification to clean in any doubt.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f8de5b41103&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f8de5b41103\" class=\"aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"450\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/11\/WordPress-Logo_Small_01.png\" alt=\"\" class=\"wp-image-1609\" srcset=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/11\/WordPress-Logo_Small_01.png 800w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/11\/WordPress-Logo_Small_01-300x169.png 300w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/11\/WordPress-Logo_Small_01-768x432.png 768w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n<p>WordPress is a CMS (Content Management System) software. This is installed in a webhosting server. This gives you a ready made website structure which you can easily modify with lakhs of available themes and plugins to create your own website without the need of any coding knowledge. Similar to what you can do with Microsoft Word, just write things, then drag, drop and modify according to your need and what the theme or plugin you are using may allow.<br><br>WordPress software is not like what you can download and install, it needs &amp; depends on various other software function. These are called dependencies.<br><br>In this article, we shall share the entire process in an easy-to-understand way.<\/p>\n\n\n\n<p>Now in order to selfhost a WordPress website, you need have a few things before you can proceed. Without these prerequisites, you won&#8217;t be able to get this working.<\/p>\n\n\n\n<p class=\"has-text-align-center has-white-color has-black-background-color has-text-color has-background has-link-color has-large-font-size wp-elements-25758ccf8d77081661f43e31a79ea0b7\"><strong>Hardware Prerequisites <\/strong><\/p>\n\n\n\n<p>A website is always accessible, so you need to have a computer in home which is running 24&#215;7 along with power backup option like a home inverter along with an internet connection.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\">One PC \/ Laptop<\/td><td class=\"has-text-align-center\" data-align=\"center\">Internet Connection with Router<\/td><td class=\"has-text-align-center\" data-align=\"center\">Router<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">UPS \/ Inverter<\/td><td class=\"has-text-align-center\" data-align=\"center\">UPI \/ Credit \/ Debit Card<\/td><td class=\"has-text-align-center\" data-align=\"center\">Domain Name<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>You don&#8217;t need a very powerful PC, older computers or Mini PCs, old laptops or even your primary computer can also do this. Remember, if you shut down the PC, your website also shuts down.<\/p>\n\n\n\n<p class=\"has-text-align-center has-white-color has-black-background-color has-text-color has-background has-link-color has-large-font-size wp-elements-e5bd2755eacb093be1b51a02fc54b86c\"><strong>Software Prerequisites<\/strong><\/p>\n\n\n\n<p>We are going to use all legal software here. We won&#8217;t be using any hacked or cracked software.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\">Windows 10 \/ 11 Pro or Ent<\/td><td class=\"has-text-align-center\" data-align=\"center\">Microsoft Hyper-V<\/td><td class=\"has-text-align-center\" data-align=\"center\">Ubuntu Server 24 LTS<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">Docker \/ Docker Compose<\/td><td class=\"has-text-align-center\" data-align=\"center\">WordPress<\/td><td class=\"has-text-align-center\" data-align=\"center\">MySQL<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">PhpMyAdmin<\/td><td class=\"has-text-align-center\" data-align=\"center\">FileBrowser<\/td><td class=\"has-text-align-center\" data-align=\"center\">CloudFlare Tunnel<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Along with that, we also need a domain name. Just like our website, LazyTourer.com, you also need a domain name for your website. If you already have a domain, you can also use a subdomain of that.<\/p>\n\n\n\n<p class=\"has-text-align-center has-white-color has-black-background-color has-text-color has-background has-link-color has-large-font-size wp-elements-f580c0404780757c0209fb8ffdaa144e\"><strong>Deploying VM<\/strong><\/p>\n\n\n\n<p>Most of us, PC users in India, would be running Windows. <br><br>Therefore, we are focusing our guide on Windows. We have already written a step-by-step article on how to install Microsoft Hyper-V on Windows 10 or Windows 11 Computer (desktop or laptop). So follow that guide and create a basic VM and install Ubuntu Server 24 LTS in that VM. <\/p>\n\n\n\n<p class=\"has-text-align-center\"><strong>VM Deployment Guide -&gt; <a href=\"https:\/\/lazytourer.com\/in\/microsoft-hyper-v-for-home-server\/\">Microsoft Hyper-V for Home Server<\/a><\/strong><\/p>\n\n\n\n<p>You may use TrueNAS \/ Proxmox \/ VMWare \/ VirtualBox any other Hypervisor to deploy the VM. Process is same inside the VM so it doesn&#8217;t matter in which platform this VM is running.<\/p>\n\n\n\n<p>For our use, we are creating a Hyper-V VM with 2 Cores and 2GB RAM along with 16GB vDisk on our Desktop PC running AMD Ryzen 5 CPU along with Windows 11 Pro. For a lightweight and little traffic WordPress website, this is more than sufficient, in fact, our website with very low traffic can run with a single core and 1GB RAM too.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"688\" height=\"545\" src=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/VM_Config.jpg\" alt=\"\" class=\"wp-image-1715\" srcset=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/VM_Config.jpg 688w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/VM_Config-300x238.jpg 300w\" sizes=\"auto, (max-width: 688px) 100vw, 688px\" \/><\/figure>\n\n\n\n<p><strong>Pro Tip -&gt;<\/strong> During Ubuntu Server installation within your VM, while at the installation wizard, most of the things would stay default, just ensure to turn on the check box for &#8220;Install OpenSSH Server&#8221; for remote login.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f8de5b41cfb&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f8de5b41cfb\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"417\" height=\"260\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2023\/01\/Ubuntu_Install_02.jpg\" alt=\"\" class=\"wp-image-893\" srcset=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2023\/01\/Ubuntu_Install_02.jpg 417w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2023\/01\/Ubuntu_Install_02-300x187.jpg 300w\" sizes=\"auto, (max-width: 417px) 100vw, 417px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p class=\"has-text-align-center has-white-color has-black-background-color has-text-color has-background has-link-color has-large-font-size wp-elements-d7234da1cb610ee4eb5e4ec7ba548a6a\"><strong>Login &amp; Update Ubuntu Server<\/strong><\/p>\n\n\n\n<p>First step after installation of Ubuntu Server in your VM is to log in and update the Ubuntu Server. You can use your host PC or any computer within the same LAN network to remotely connect to this Virtual Machine running your Ubuntu Server. Just open up &#8220;Command Prompt&#8221; in Windows and type the following command,<br><br><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\"><code>ssh username@local.lan.ip.address<\/code><\/mark> -&gt; here, username is the user name of your Ubuntu Server user and local lan ip address is the local LAN IP of the Ubuntu Server VM. In our case, it is following,<br><br><code>ssh hunky@192.168.1.42<\/code><\/p>\n\n\n\n<p>The system will ask for the password, type the password (remember, for security reason, it won&#8217;t be visible) and log in to your Ubuntu Server. Once login, run these bellow commands one by one to update &amp; then reboot the system.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"754\" height=\"609\" src=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/VM_Login.jpg\" alt=\"\" class=\"wp-image-1716\" srcset=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/VM_Login.jpg 754w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/VM_Login-300x242.jpg 300w\" sizes=\"auto, (max-width: 754px) 100vw, 754px\" \/><\/figure>\n\n\n\n<p><code>sudo su<br><\/code><br><code>timedatectl set-timezone Asia\/Kolkata<\/code> -&gt; Adjusting the Time Zone for IST<br><br><code>apt update &amp;&amp; apt upgrade -y &amp;&amp; reboot<br><\/code><br><strong>Adjusting the Swap\/Page File<\/strong><br><br>After the update and reboot, log back into the VM, then copy, paste and run the following commands one by one,<br><br><code>sudo su<\/code><br><br><code>swapoff \/swap.img &amp;&amp; dd if=\/dev\/zero of=\/swap.img bs=1M count=512 &amp;&amp; chmod 600 \/swap.img &amp;&amp; mkswap \/swap.img &amp;&amp; swapon \/swap.img<\/code><br><br>With the above two commands, we are adjusting and setting up the swap \/ page file or swap memory to 512MB.<\/p>\n\n\n\n<p class=\"has-text-align-center has-white-color has-black-background-color has-text-color has-background has-link-color has-large-font-size wp-elements-487a089ce64cb9c69932313b6078fa71\"><strong>Installing Docker \/ Docker Compose<\/strong><\/p>\n\n\n\n<p>After the update and reboot, log back into your Ubuntu Server and run the following commands one by one to install Docker and then Docker Compose,<br><br><code>sudo su<\/code><br><br><code>apt install apt-transport-https ca-certificates curl software-properties-common -y<\/code><br><br><code>curl -fsSL https:\/\/download.docker.com\/linux\/ubuntu\/gpg | sudo gpg --dearmor -o \/usr\/share\/keyrings\/docker-archive-keyring.gpg<\/code><br><br><code>echo \"deb [arch=$(dpkg --print-architecture) signed-by=\/usr\/share\/keyrings\/docker-archive-keyring.gpg] https:\/\/download.docker.com\/linux\/ubuntu $(lsb_release -cs) stable\" | sudo tee \/etc\/apt\/sources.list.d\/docker.list &gt; \/dev\/null<\/code><br><br><code>apt update &amp;&amp; apt install docker-ce -y<\/code><br><br><code>reboot<\/code><\/p>\n\n\n\n<p class=\"has-text-align-center has-white-color has-black-background-color has-text-color has-background has-link-color has-large-font-size wp-elements-ef9a0e38c0d38edd29243b16f976136c\"><strong>WordPress Deployment<\/strong><\/p>\n\n\n\n<p>We are going to use the official Docker Container image from WordPress for this along with some other dependencies from their respective official docker images. Like, the MariaDB\/MySQL for database, phpmyadmin for database management, and a web-based file editor (FileBrowser) to access the wordpress files or database for DevOps requirements.<\/p>\n\n\n\n<p><strong>Creating the Directory Structure<\/strong> &amp; Deploying FileBrowser<br><br>We are going to put the containers within a single directory in your Ubuntu Server user home folder \/ directory. The default location of your home directory looks like this -&gt; \/home\/username. So we are going to create a folder for WordPress in there and create further few folders for each docker containers.<br><br>Login to your Ubuntu Server and run the following commands,<br><br><code>sudo su<\/code><br><br><code>cd \/home\/<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">username<\/mark><\/code> -&gt; replace this username with your ubuntu login username<\/p>\n\n\n\n<p>The copy paste this entire command and run it, remember to replace the username with your own ubuntu server user name before running it.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir -p wp\/fb &amp;&amp; cd wp\/fb &amp;&amp; cat &lt;&lt; 'EOF' &gt; docker-compose.yml\nservices:\n  filebrowser:\n    image: hurlenko\/filebrowser\n    container_name: filebrowser\n    user: \"${UID}:${GID}\"\n    ports:\n      - 8085:8080\n    volumes:\n      - \/home\/<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">username<\/mark>\/wp:\/data\n      - .\/:\/config\n    environment:\n      - FB_BASEURL=\/filebrowser\n    restart: always\nEOF<\/code><\/pre>\n\n\n\n<p>This command will create a docker compose file for file browser along with the configuration code inside that file. Now it is time to run the command to pull the official file browser container image and run it in your local ubuntu server. To do that, run the following commands,<br><br><code>sudo su<\/code><br><br><code>cd \/home\/<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">username<\/mark>\/wp\/fb<\/code> -&gt; Replace the <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">username<\/mark> with your own ubuntu server user name<br><br><code>docker compose up -d<\/code><\/p>\n\n\n\n<p>File Browser should now be installed and accessible locally (within your LAN Network) via any browser at http:\/\/Ubuntu.Server.LAN.IP:8085 <\/p>\n\n\n\n<p>Earlier the default username and password used to be admin \/ admin for filebrowser but now, they have changed the process and creates a random password for each deployment. To find the filebrowser login password, you need to run folloiwng command and copy the password from section <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">&#8220;User &#8216;admin&#8217; initialized with randomly generated password: xxxxxxxxxx<\/mark><\/p>\n\n\n\n<p><code>docker logs filebrowser<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"506\" src=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/FileBrowser_Password_01-1024x506.jpg\" alt=\"\" class=\"wp-image-1804\" srcset=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/FileBrowser_Password_01-1024x506.jpg 1024w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/FileBrowser_Password_01-300x148.jpg 300w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/FileBrowser_Password_01-768x380.jpg 768w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/FileBrowser_Password_01.jpg 1228w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>You can select that string using mouse highlighting and then press &#8220;enter&#8221; key in your keyboard to copy it. Now you have the password and user name is admin. So now we can login via http:\/\/ubuntu.vm.lan.ip:8085<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f8de5b4240a&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f8de5b4240a\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"907\" height=\"650\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/FileBrowser_Password_02.jpg\" alt=\"\" class=\"wp-image-1805\" srcset=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/FileBrowser_Password_02.jpg 907w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/FileBrowser_Password_02-300x215.jpg 300w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/FileBrowser_Password_02-768x550.jpg 768w\" sizes=\"auto, (max-width: 907px) 100vw, 907px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p>Ensure to change this password with your own to complete the file browser installation.<\/p>\n\n\n\n<p><strong>WordPress Docker Stack Deployment<\/strong><\/p>\n\n\n\n<p>Now we shall create the docker compose file to deploy WordPress along with all the dependencies from their official docker images. We shall be using WordPress \/ MariaDB (for SQL) \/ phpMyAdmin (DB Manager) \/ Redis Server (Caching)<br><br>Run the following commands to create the docker compose file along with the needed configuration code,<br><br><code>sudo su<\/code><br><br><code>cd \/home\/<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">username<\/mark>\/wp<\/code> -&gt; Replace the <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">username<\/mark> with your own ubuntu server user name<br><br>Now copy &amp; this entire command to create the docker compose file for WordPress stack. Remember to replace the passwords, which are written as &#8220;Change@Me&#8221; with your own.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cat &lt;&lt; 'EOF' &gt; docker-compose.yml\nservices:\n  # MariaDB Database\n  db:\n    image: mariadb:latest\n    container_name: wordpress_db\n    restart: always\n    environment:\n      MYSQL_ROOT_PASSWORD: <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">Change@Me<\/mark>\n      MYSQL_DATABASE: wordpress\n      MYSQL_USER: wordpress\n      MYSQL_PASSWORD: <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">Change@Me<\/mark>\n    volumes:\n      - .\/db_data:\/var\/lib\/mysql\n    networks:\n      - wordpress_network\n\n  # Redis Cache\n  redis:\n    image: redis:latest\n    container_name: wordpress_redis\n    restart: always\n    networks:\n      - wordpress_network\n\n  # WordPress Application\n  wordpress:\n    image: wordpress:latest\n    container_name: wordpress_app\n    restart: always\n    environment:\n      WORDPRESS_DB_HOST: db\n      WORDPRESS_DB_USER: wordpress\n      WORDPRESS_DB_PASSWORD: <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">Change@Me<\/mark>\n      WORDPRESS_DB_NAME: wordpress\n      WORDPRESS_CONFIG_EXTRA: |\n        define('WP_REDIS_HOST', 'redis');\n        define('WP_REDIS_PORT', 6379);\n        define('WP_CACHE', true);\n        define('WP_MEMORY_LIMIT', '256M');\n        define('WP_MAX_UPLOAD_SIZE', '250M');\n    volumes:\n      - .\/wordpress_data:\/var\/www\/html\n    ports:\n      - \"8000:80\"\n    depends_on:\n      - db\n      - redis\n    networks:\n      - wordpress_network\n\n  # phpMyAdmin for Database Management\n  phpmyadmin:\n    image: phpmyadmin:latest\n    container_name: wordpress_phpmyadmin\n    restart: always\n    environment:\n      PMA_HOST: db\n      PMA_ARBITRARY: 1\n      UPLOAD_LIMIT: 250M\n    ports:\n      - \"8080:80\"\n    depends_on:\n      - db\n    networks:\n      - wordpress_network\n\n# Define the network\nnetworks:\n  wordpress_network:\n    driver: bridge\n\n# Volumes for persistent data\nvolumes:\n  db_data:\n    driver: local\n    driver_opts:\n      type: none\n      device: .\/db_data\n      o: bind\n  wordpress_data:\n    driver: local\n    driver_opts:\n      type: none\n      device: .\/wordpress_data\n      o: bind\nEOF<\/code><\/pre>\n\n\n\n<p>Now run the following command for deployment and installation,<br><br><code>docker compose up -d<\/code><br><br>WordPress and phpmyadmin is how available at these following URL,<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\">File Browser<\/td><td class=\"has-text-align-center\" data-align=\"center\">phpmyadmin<\/td><td class=\"has-text-align-center\" data-align=\"center\">WordPress<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">http:\/\/Ubuntu.Server.LAN.IP:8095<\/td><td class=\"has-text-align-center\" data-align=\"center\">http:\/\/Ubuntu.Server.LAN.IP:8080<\/td><td class=\"has-text-align-center\" data-align=\"center\">http:\/\/Ubuntu.Server.LAN.IP:8000<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f8de5b42825&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f8de5b42825\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"648\" height=\"638\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/File_Browser.jpg\" alt=\"\" class=\"wp-image-1719\" srcset=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/File_Browser.jpg 648w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/File_Browser-300x295.jpg 300w\" sizes=\"auto, (max-width: 648px) 100vw, 648px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><figcaption class=\"wp-element-caption\">File Browser<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f8de5b42b91&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f8de5b42b91\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"599\" height=\"638\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/phpmyadmin.jpg\" alt=\"\" class=\"wp-image-1720\" srcset=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/phpmyadmin.jpg 599w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/phpmyadmin-282x300.jpg 282w\" sizes=\"auto, (max-width: 599px) 100vw, 599px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"648\" height=\"638\" src=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/WordPress_Install.jpg\" alt=\"\" class=\"wp-image-1721\" srcset=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/WordPress_Install.jpg 648w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/WordPress_Install-300x295.jpg 300w\" sizes=\"auto, (max-width: 648px) 100vw, 648px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p>Do not proceed with the installation of WordPress yet. Before we proceed, we need to configure our domain name and cloudflare tunnel.<\/p>\n\n\n\n<p class=\"has-text-align-center has-white-color has-black-background-color has-text-color has-background has-link-color has-large-font-size wp-elements-bcd78712ca0f61c866871ad5feebc767\"><strong>Domain Name<\/strong><\/p>\n\n\n\n<p>First step in this project is to register a domain name. In our case, although we have a domain name, but for this project, we are buying another domain name. It is <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">LazyTourer.PW<\/mark><br><br>So go ahead and register your domain name since everything else, like codes or configuration will need this domain name of yours.<br><br>Yes, if you are wondering, you can also use a subdomain on your existing domain to continue with this project.<\/p>\n\n\n\n<p class=\"has-text-align-center has-white-color has-black-background-color has-text-color has-background has-link-color has-large-font-size wp-elements-099e6c5ed1b2c05a7445e946c11a54d8\"><strong>CloudFlare Setup<\/strong><\/p>\n\n\n\n<p>You will need to create a free cloudflare account from cloudflare.com<br><br>The process is really simple like creating a new email account or such. Just feeling up the form and your account will be ready. Remember, they will offer many trials or this and that, do not activate any trial. Stay on the FREE cloudflare account only.<br><br>We are going to use three features of CloudFlare, <br><br>1. CloudFlare DNS Management<br>2. CloudFlare Tunnel<br>3. CloudFlare Given Fully Signed and verified SSL Certificate<br><br><strong>Adding domain to CloudFlare Dashboard<\/strong><br><br>Open the CloudFlare.com website and click login to enter your user name and password to sign into your Free CloudFlare account. In the main dashboard, at your right hand side, you can find an option to add a new site, click that.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f8de5b43138&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f8de5b43138\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"520\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/Login_page-1024x520.jpg\" alt=\"\" class=\"wp-image-1247\" srcset=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/Login_page-1024x520.jpg 1024w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/Login_page-300x152.jpg 300w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/Login_page-768x390.jpg 768w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/Login_page.jpg 1348w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f8de5b4346a&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f8de5b4346a\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"489\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/Adding_site-1024x489.jpg\" alt=\"\" class=\"wp-image-1248\" srcset=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/Adding_site-1024x489.jpg 1024w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/Adding_site-300x143.jpg 300w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/Adding_site-768x367.jpg 768w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/Adding_site.jpg 1346w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p>Enter your domain name and ensure to select the FREE plan and click continue. Remember, we only need the free plan, do not avail any trial or such options. Just select the free plan, that is sufficient for the project and our need.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f8de5b43831&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f8de5b43831\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"758\" height=\"602\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/Adding_stie_02.png\" alt=\"\" class=\"wp-image-1249\" srcset=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/Adding_stie_02.png 758w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/Adding_stie_02-300x238.png 300w\" sizes=\"auto, (max-width: 758px) 100vw, 758px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f8de5b43b46&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f8de5b43b46\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/Adding_Site_Free_Plan-1024x576.png\" alt=\"\" class=\"wp-image-1250\" srcset=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/Adding_Site_Free_Plan-1024x576.png 1024w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/Adding_Site_Free_Plan-300x169.png 300w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/Adding_Site_Free_Plan-768x432.png 768w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/Adding_Site_Free_Plan.png 1032w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p>On the next page, delete if any previous \/ existing DNS record is found. Ensure that there are no DNS records by deleting any such entries and continue to next step. In the next step, cloudflare will generate two NS record entry for your domain. Copy those two records into a notepad file. Then click continue in the bottom to complete the domain addition process.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f8de5b43edb&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f8de5b43edb\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"517\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/adding_site_delete_DNS-1024x517.png\" alt=\"\" class=\"wp-image-1251\" srcset=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/adding_site_delete_DNS-1024x517.png 1024w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/adding_site_delete_DNS-300x151.png 300w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/adding_site_delete_DNS-768x388.png 768w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/adding_site_delete_DNS.png 1280w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f8de5b441c8&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f8de5b441c8\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"532\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/adding_site_copy_ns-1024x532.png\" alt=\"\" class=\"wp-image-1252\" srcset=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/adding_site_copy_ns-1024x532.png 1024w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/adding_site_copy_ns-300x156.png 300w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/adding_site_copy_ns-768x399.png 768w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/adding_site_copy_ns.png 1222w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p><strong>Adding CloudFlare NS Records to your New Domain<\/strong><br><br>Process is very similar in every domain selling company or domain registrar but their website navigation would be little different. You can refer to their help section or simply search on how to change NS (Name Server) record for the domain registration company you have used. You need to delete the default NS entry for this new domain of yours and add the cloudflare given values. For our case, we have done so for this new LazyTourer.Online domain.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f8de5b4458b&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f8de5b4458b\" class=\"wp-block-image size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"426\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/domain_ns_entry_change-1024x426.png\" alt=\"\" class=\"wp-image-1253\" srcset=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/domain_ns_entry_change-1024x426.png 1024w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/domain_ns_entry_change-300x125.png 300w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/domain_ns_entry_change-768x319.png 768w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/domain_ns_entry_change.png 1292w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p>Usually it takes around 10\/15 mins for the records to get updated, but for some rare cases, it may take upto 48 hours for the records to update and the domain is shown active in your cloudflare account. You have to wait till the domain is shown active in your cloudflare account.<br><br>Once changes are applied, you can see your domain as active status in cloudflare account page.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f8de5b44914&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f8de5b44914\" class=\"aligncenter size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"686\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/Site_Active_01-1024x686.jpg\" alt=\"\" class=\"wp-image-1326\" srcset=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/Site_Active_01-1024x686.jpg 1024w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/Site_Active_01-300x201.jpg 300w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/Site_Active_01-768x515.jpg 768w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/Site_Active_01.jpg 1083w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n\n\n<p><strong>Creating CloudFlare Tunnel<\/strong><br><br>Click &#8220;Zero Trust&#8221; on the left side menu of CloudFlare page. It will launch a new window, there on left side menu click &#8220;Network -&gt; Tunnel&#8221;. Click Add tunnel and select &#8220;Cloudflared&#8221; tunnel option and click next.<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f8de5b44c51&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f8de5b44c51\" class=\"aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"722\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/Tunnel_Creating_01.jpg\" alt=\"\" class=\"wp-image-1328\" srcset=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/Tunnel_Creating_01.jpg 1024w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/Tunnel_Creating_01-300x212.jpg 300w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/Tunnel_Creating_01-768x542.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f8de5b44fd4&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f8de5b44fd4\" class=\"aligncenter size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"633\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/Tunnel_Creating_02.jpg\" alt=\"\" class=\"wp-image-1329\" srcset=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/Tunnel_Creating_02.jpg 1024w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/Tunnel_Creating_02-300x185.jpg 300w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2024\/08\/Tunnel_Creating_02-768x475.jpg 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><\/div>\n<\/div>\n\n\n\n<p>Now enter a name of the tunnel as per your liking and click next \/ save tunnel. This will bring you to the tunnel installation page. We are running Ubuntu Server in our VM, so we need the &#8220;debian&#8221; installation code.<\/p>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f8de5b4539f&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f8de5b4539f\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"771\" height=\"639\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/CloudFlare_Tunnel_01.jpg\" alt=\"\" class=\"wp-image-1723\" srcset=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/CloudFlare_Tunnel_01.jpg 771w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/CloudFlare_Tunnel_01-300x249.jpg 300w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/CloudFlare_Tunnel_01-768x637.jpg 768w\" sizes=\"auto, (max-width: 771px) 100vw, 771px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p>Now click that little copy button in that, follow the on screen instructions if needed to copy the entire code. Remember the entire code is super long and hidden, so copy using that little button given in the web page and run it in your Ubuntu Server.<\/p>\n\n\n\n<p><strong>Creating Domain \/ Sub Domains \/ Public Host Names<\/strong><\/p>\n\n\n\n<p>As of now, the tunnel setup is done but we need to create the domain \/ sub domains for our services (Main WordPress website, File Browser and phpmyadmin) for traffic routing and external web access. So at the bottom of the tunnel installation page of CloudFlare website, click next to proceed for public host name creating.<br><br>We need to Create following 3 public host names for our operations. In our case, with our domain LazyTourer.Online it looks like this,<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>URL<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Service<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Local Connection<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">lazytourer.pw<\/td><td class=\"has-text-align-center\" data-align=\"center\">WordPress Main Website<\/td><td class=\"has-text-align-center\" data-align=\"center\">localhost:8000<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">files.lazytourer.pw<\/td><td class=\"has-text-align-center\" data-align=\"center\">File Browser<\/td><td class=\"has-text-align-center\" data-align=\"center\">localhost:8095<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">db.lazytourer.pw<\/td><td class=\"has-text-align-center\" data-align=\"center\">phpmyadmin<\/td><td class=\"has-text-align-center\" data-align=\"center\">localhost:8080<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>Add 3 public host names under this tunnel with following details,<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>Sub Domain<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Domain<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Path<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Type<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>URL<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">blank\/empty<\/td><td class=\"has-text-align-center\" data-align=\"center\">your.domain<\/td><td class=\"has-text-align-center\" data-align=\"center\">blank\/empty<\/td><td class=\"has-text-align-center\" data-align=\"center\">HTTP<\/td><td class=\"has-text-align-center\" data-align=\"center\">localhost:8000<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">files<\/td><td class=\"has-text-align-center\" data-align=\"center\">your.domain<\/td><td class=\"has-text-align-center\" data-align=\"center\">blank\/empty<\/td><td class=\"has-text-align-center\" data-align=\"center\">HTTP<\/td><td class=\"has-text-align-center\" data-align=\"center\">localhost:8085<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">db<\/td><td class=\"has-text-align-center\" data-align=\"center\">your.domain<\/td><td class=\"has-text-align-center\" data-align=\"center\">blank\/empty<\/td><td class=\"has-text-align-center\" data-align=\"center\">HTTP<\/td><td class=\"has-text-align-center\" data-align=\"center\">localhost:8080<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f8de5b456fd&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f8de5b456fd\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"736\" height=\"501\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/CloudFlare_Tunnel_03.jpg\" alt=\"\" class=\"wp-image-1725\" srcset=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/CloudFlare_Tunnel_03.jpg 736w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/CloudFlare_Tunnel_03-300x204.jpg 300w\" sizes=\"auto, (max-width: 736px) 100vw, 736px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n\n\n\n<p class=\"has-text-align-center has-white-color has-black-background-color has-text-color has-background has-link-color has-large-font-size wp-elements-c3ffbfedc680cf645b24b89974274484\"><strong>Access Via Web<\/strong><\/p>\n\n\n\n<p>Once you have created all three public host names, now your wordpress along with File Browser and phpmyadmin is available for outside web access. You can now access &amp; proceed with the installation for WordPress via URL https:\/\/your.domain<\/p>\n\n\n\n<p>Dont forget to change the default password of your File Browser. The default user name &amp; password is admin\/admin. So login via URL files.your.domain and change the password.<\/p>\n\n\n\n<p class=\"has-text-align-center has-white-color has-black-background-color has-text-color has-background has-link-color has-large-font-size wp-elements-1554902bdc61810c0702ad0cf194f16d\"><strong>Maintenance and Updates<\/strong><\/p>\n\n\n\n<p>There are 3 main things to update in this deployment. Operating System and Software \/ Docker Containers \/ WordPress Internal (Plugins \/ Themes).<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><strong>WordPress Internal<\/strong><br><br>WordPress internal stuff, like themes and plugins can be updated from WordPress Internal admin dashboard. You can keep this in auto update mode and WordPress itself will update the stuff in background or you may manually update the installed stuff from wordpress admin panel.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure data-wp-context=\"{&quot;imageId&quot;:&quot;69f8de5b45b7d&quot;}\" data-wp-interactive=\"core\/image\" data-wp-key=\"69f8de5b45b7d\" class=\"wp-block-image size-full wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"545\" height=\"470\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/WordPress_Updates.jpg\" alt=\"\" class=\"wp-image-1729\" srcset=\"https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/WordPress_Updates.jpg 545w, https:\/\/lazytourer.com\/in\/wp-content\/uploads\/2025\/02\/WordPress_Updates-300x259.jpg 300w\" sizes=\"auto, (max-width: 545px) 100vw, 545px\" \/><button\n\t\t\tclass=\"lightbox-trigger\"\n\t\t\ttype=\"button\"\n\t\t\taria-haspopup=\"dialog\"\n\t\t\taria-label=\"Enlarge\"\n\t\t\tdata-wp-init=\"callbacks.initTriggerButton\"\n\t\t\tdata-wp-on--click=\"actions.showLightbox\"\n\t\t\tdata-wp-style--right=\"state.imageButtonRight\"\n\t\t\tdata-wp-style--top=\"state.imageButtonTop\"\n\t\t>\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewBox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\" \/>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p><strong>Docker Container Updates<\/strong><br><br>We have two docker compose configuration file where two different container stacks are running with multiple container images from each compose file. For updating, one needs to update both. For this, you need to login to your Ubuntu Server via CLI again and run these following commands for each container<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><strong>File Browser<\/strong><br><br>Run these commands one by one,<br><br><code>sudo su<\/code><br><br><code>cd \/home\/<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">username<\/mark>\/WordPress\/FB<\/code> -&gt; Replace this user name with your own<br><br><code>docker compose stop &amp;&amp; docker compose pull &amp;&amp; docker compose up -d<\/code><\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p><strong>WordPress Stack<\/strong><br><br>Run these commands one by one,<br><br><code>sudo su<\/code><br><br><code>cd \/home\/<mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">username<\/mark>\/WordPress<\/code> -&gt; Replace this user name with your own<br><br><code>docker compose stop &amp;&amp; docker compose pull &amp;&amp; docker compose up -d<\/code><\/p>\n<\/div>\n<\/div>\n\n\n\n<p><strong>Ubuntu Server (OS) Update<\/strong><br><br>To update the Ubuntu Server, run these following commands one by one,<br><br><code>sudo su<\/code><br><br><code>apt update &amp;&amp; apt upgrade -y &amp;&amp; reboot<\/code><\/p>\n\n\n\n<p class=\"has-text-align-center has-white-color has-black-background-color has-text-color has-background has-link-color has-large-font-size wp-elements-772271aef077a59130e30c947d6b6bd3\"><strong>Backups<\/strong><\/p>\n\n\n\n<p>There are two ways of backing up. <br><br>First you can backup the Hyper-V VM vDisk and restore it anywhere or any computer or server running Hyper-V. Secondly, you can manually download the MySQL database dump via phpmyadmin and WordPress files via File Browser.<\/p>\n\n\n\n<p class=\"has-text-align-center has-white-color has-black-background-color has-text-color has-background has-link-color has-large-font-size wp-elements-3ba304c96d77facced41bf15ba0ceac3\"><strong>Conclusion<\/strong><\/p>\n\n\n\n<p>We have shown you a detailed, step by step, easy to understand technical guide and tutorial on how to self host a highly secured and production ready wordpress in your home computer (PC or Laptop) with any Indian home internet connection. Now the question is should you really consider hosting your own website in your PC?<\/p>\n\n\n\n<p><strong>Electricity Cost<\/strong><br><br>The PC running the VM and website software needs to run 24&#215;7, always on. As otherwise, turning off the PC running the VM means turning off your website. A typical Home Desktop PC may consume around Rs. 250\/300 of electricity per month. If you are already running a home server, then it makes sense to just deploy another VM but as otherwsie, you are looking at around Rs. 300\/- of electricity bill per month for running your PC non stop 24&#215;7<br><br><strong>Domestic Internet Speed<\/strong><br><br>Your websites performance depends on internet speed, mainly the upload speeds. AirFiber or low speed home plan connections may perform poorly due to slow upload speed. You would need a good fiber to home broadband connection with good upload speeds.<\/p>\n\n\n\n<p class=\"has-text-align-center has-white-color has-black-background-color has-text-color has-background has-link-color has-large-font-size wp-elements-15877304c65a6d988089682e5f0ce393\"><strong>Comment \/ Question?<\/strong><\/p>\n\n\n\n<p>If you have any comments, question or suggestion on this, feel free to drop in below.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you search the internet about this topic, you may find a vast majority of&#8230;<\/p>\n","protected":false},"author":1,"featured_media":1729,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"[]"},"categories":[14],"tags":[],"class_list":["post-1608","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology"],"_links":{"self":[{"href":"https:\/\/lazytourer.com\/in\/wp-json\/wp\/v2\/posts\/1608","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lazytourer.com\/in\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lazytourer.com\/in\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lazytourer.com\/in\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lazytourer.com\/in\/wp-json\/wp\/v2\/comments?post=1608"}],"version-history":[{"count":51,"href":"https:\/\/lazytourer.com\/in\/wp-json\/wp\/v2\/posts\/1608\/revisions"}],"predecessor-version":[{"id":1811,"href":"https:\/\/lazytourer.com\/in\/wp-json\/wp\/v2\/posts\/1608\/revisions\/1811"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lazytourer.com\/in\/wp-json\/wp\/v2\/media\/1729"}],"wp:attachment":[{"href":"https:\/\/lazytourer.com\/in\/wp-json\/wp\/v2\/media?parent=1608"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lazytourer.com\/in\/wp-json\/wp\/v2\/categories?post=1608"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lazytourer.com\/in\/wp-json\/wp\/v2\/tags?post=1608"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}