{"id":128,"date":"2025-03-23T17:48:39","date_gmt":"2025-03-23T17:48:39","guid":{"rendered":"http:\/\/wickenfix.it\/?p=128"},"modified":"2025-03-28T22:57:10","modified_gmt":"2025-03-28T22:57:10","slug":"creating-a-self-hosted-website","status":"publish","type":"post","link":"https:\/\/wickenfix.it\/index.php\/creating-a-self-hosted-website\/","title":{"rendered":"Creating a self-hosted website"},"content":{"rendered":"\n<div class=\"wp-block-group alignwide is-layout-flow wp-block-group-is-layout-flow\">\n<div class=\"wp-block-group is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-2a24861a wp-block-group-is-layout-flex\" style=\"border-top-color:var(--wp--preset--color--accent-6);border-top-width:1px;padding-top:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40)\">\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\" style=\"flex-basis:66.66%\">\n<p>If you want to build a website, but don&#8217;t want to pay the monthly fees for a hosting service, this is the guide for you.<br><br>As most web-servers are lightweight in terms of resource usage, you can use old hardware such as a laptop, or a mini PC like a Raspberry Pi. Or, you can build a VM if you have a hypervisor environment.<\/p>\n\n\n\n<div class=\"wp-block-buttons is-content-justification-center is-layout-flex wp-container-core-buttons-is-layout-a89b3969 wp-block-buttons-is-layout-flex\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"#adguard-tutorial\">Skip to the tutorial&#8230;<\/a><\/div>\n<\/div>\n\n\n\n<p>I&#8217;ll go over how to set up WordPress, a free CRM, which allows you to easily manage the pages of your website and use free templates to build good looking webpages.<\/p>\n\n\n\n<p>Exposing a web-server to the internet can be dangerous if you don&#8217;t have the correct security in place. This guide will show you how to configure Cloudflare to proxy and tunnel web traffic, so you don&#8217;t need to expose ports to the internet. The free version of Cloudflare also provides some great analytics and extra Web Application Firewall (WAF) services to further protect your server.<\/p>\n\n\n\n<p>Having your web-server proxied by Cloudflare does introduce some issues with WordPress, this guide covers how to fix them safely. <\/p>\n\n\n\n<p>This guide is build for Ubuntu Server 24.04, once you have installed that OS, head to the tutorial:<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"535\" src=\"https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/84d68ba0ae38f89b52232ae64eae918cde58a98e_2_1024x535.png\" alt=\"\" class=\"wp-image-153\" srcset=\"https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/84d68ba0ae38f89b52232ae64eae918cde58a98e_2_1024x535.png 1024w, https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/84d68ba0ae38f89b52232ae64eae918cde58a98e_2_1024x535-300x157.png 300w, https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/84d68ba0ae38f89b52232ae64eae918cde58a98e_2_1024x535-768x401.png 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-xx-large-font-size\" id=\"adguard-tutorial\">Tutorial<\/h2>\n\n\n\n<p>Once you have an Ubuntu Server 24 Operating System ready:<\/p>\n\n\n\n<div style=\"height:var(--wp--preset--spacing--30)\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-group is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-2a24861a wp-block-group-is-layout-flex\" style=\"border-top-color:var(--wp--preset--color--accent-6);border-top-width:1px;padding-top:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40)\">\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-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:40%\">\n<h3 class=\"wp-block-heading\">Step 1:<\/h3>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:60%\">\n<div class=\"wp-block-columns is-not-stacked-on-mobile is-layout-flex wp-container-core-columns-is-layout-7255d826 wp-block-columns-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--40)\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Update your server.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update &amp;&amp; sudo apt upgrade -y<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-2a24861a wp-block-group-is-layout-flex\" style=\"border-top-color:var(--wp--preset--color--accent-6);border-top-width:1px;padding-top:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40)\">\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-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:40%\">\n<h3 class=\"wp-block-heading\">Step 2:<\/h3>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:60%\">\n<div class=\"wp-block-columns is-not-stacked-on-mobile is-layout-flex wp-container-core-columns-is-layout-7255d826 wp-block-columns-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--40)\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Install Apache2.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install apache2<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-2a24861a wp-block-group-is-layout-flex\" style=\"border-top-color:var(--wp--preset--color--accent-6);border-top-width:1px;padding-top:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40)\">\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-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:40%\">\n<h3 class=\"wp-block-heading\">Step 3:<\/h3>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:60%\">\n<div class=\"wp-block-columns is-not-stacked-on-mobile is-layout-flex wp-container-core-columns-is-layout-7255d826 wp-block-columns-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--40)\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Ensure Apache installed correctly by browsing to the servers IP address, you should see a screen like this:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"813\" height=\"647\" src=\"https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/image-3.png\" alt=\"\" class=\"wp-image-134\" srcset=\"https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/image-3.png 813w, https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/image-3-300x239.png 300w, https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/image-3-768x611.png 768w\" sizes=\"auto, (max-width: 813px) 100vw, 813px\" \/><\/figure>\n\n\n\n<div style=\"height:58px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-2a24861a wp-block-group-is-layout-flex\" style=\"border-top-color:var(--wp--preset--color--accent-6);border-top-width:1px;padding-top:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40)\">\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-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:40%\">\n<h3 class=\"wp-block-heading\">Step 4:<\/h3>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:60%\">\n<div class=\"wp-block-columns is-not-stacked-on-mobile is-layout-flex wp-container-core-columns-is-layout-7255d826 wp-block-columns-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--40)\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Install MariaDB, an SQL server.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install mariadb-server mariadb-client<\/code><\/pre>\n<\/div>\n<\/div>\n\n\n\n<p>Run the secure installation script.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mariadb-secure-installation<\/code><\/pre>\n\n\n\n<p>MariaDB is a fork of MySQL, a database server which will be used by WordPress.<\/p>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-2a24861a wp-block-group-is-layout-flex\" style=\"border-top-color:var(--wp--preset--color--accent-6);border-top-width:1px;padding-top:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40)\">\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-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:40%\">\n<h3 class=\"wp-block-heading\">Step 5:<\/h3>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:60%\">\n<div class=\"wp-block-columns is-not-stacked-on-mobile is-layout-flex wp-container-core-columns-is-layout-7255d826 wp-block-columns-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--40)\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Install the server-side scripting language PHP.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt install php php-mysql<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-2a24861a wp-block-group-is-layout-flex\" style=\"border-top-color:var(--wp--preset--color--accent-6);border-top-width:1px;padding-top:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40)\">\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-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:40%\">\n<h3 class=\"wp-block-heading\">Step 7:<\/h3>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:60%\">\n<div class=\"wp-block-columns is-not-stacked-on-mobile is-layout-flex wp-container-core-columns-is-layout-7255d826 wp-block-columns-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--40)\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Open mysql to create a database and user.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mysql -u root -p<\/code><\/pre>\n<\/div>\n<\/div>\n\n\n\n<p>Run the following commands, remembering the semi-colon at the end, to create a database and user. Replace &#8216;Database&#8217; with something similar to your domain name, and &#8216;User&#8217; to whatever username you want. Use a secure password, as this database will control access to your server.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>CREATE DATABASE Database;\nCREATE USER 'User'@'localhost' IDENTIFIED BY 'Password';\nGRANT ALL ON Database.* TO 'User'@'localhost';\nFLUSH PRIVILEGES;\nEXIT;<\/code><\/pre>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-2a24861a wp-block-group-is-layout-flex\" style=\"border-top-color:var(--wp--preset--color--accent-6);border-top-width:1px;padding-top:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40)\">\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-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:40%\">\n<h3 class=\"wp-block-heading\">Step 8:<\/h3>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:60%\">\n<div class=\"wp-block-columns is-not-stacked-on-mobile is-layout-flex wp-container-core-columns-is-layout-7255d826 wp-block-columns-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--40)\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Now it&#8217;s time to download and install WordPress.<br>Navigate to the website root directory.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cd \/var\/www\/html\/<\/code><\/pre>\n\n\n\n<p>Use wget to download the WordPress installation files. <em>If you don&#8217;t have wget installed already, install it with <code>sudo apt install wget<\/code><\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo wget https:\/\/wordpress.org\/latest.tar.gz<\/code><\/pre>\n<\/div>\n<\/div>\n\n\n\n<p>Extract the compressed files.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo tar xf latest.tar.gz<\/code><\/pre>\n\n\n\n<p>This will extract all files to the <code>\/var\/www\/html\/wordpress<\/code> directory. For easy management and less hassle, move the contents into the root directory.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo mv \/var\/www\/html\/wordpress\/* \/var\/www\/html\/ &amp;&amp; sudo rmdir wordpress<\/code><\/pre>\n\n\n\n<p>Edit the filesystem permissions to make Apache the owner.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo chown -R www-data:www-data \/var\/www\/html<\/code><\/pre>\n\n\n\n<p>To install WordPress fully, browse to the IP address of your server. You should see a WordPress installation screen.<\/p>\n\n\n\n<p>Enter the Database name, username and password you created for the mysql database, and run the installation.<\/p>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-2a24861a wp-block-group-is-layout-flex\" style=\"border-top-color:var(--wp--preset--color--accent-6);border-top-width:1px;padding-top:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40)\">\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-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:40%\">\n<h3 class=\"wp-block-heading\">Step 9:<\/h3>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:60%\">\n<div class=\"wp-block-columns is-not-stacked-on-mobile is-layout-flex wp-container-core-columns-is-layout-7255d826 wp-block-columns-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--40)\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Go to the Cloudflare dashboard <a href=\"https:\/\/dash.cloudflare.com\/\">https:\/\/dash.cloudflare.com\/<\/a> and make an account if you haven&#8217;t already.<\/p>\n\n\n\n<p>You will need to adopt your domain into Cloudflare, go to &#8216;Account Home&#8217; and select &#8216;Add a domain&#8217;.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"337\" height=\"130\" src=\"https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/image-4.png\" alt=\"\" class=\"wp-image-137\" style=\"width:285px;height:auto\" srcset=\"https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/image-4.png 337w, https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/image-4-300x116.png 300w\" sizes=\"auto, (max-width: 337px) 100vw, 337px\" \/><\/figure>\n\n\n\n<p>Type in your domain name, and hit &#8216;Continue&#8217;.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"551\" height=\"478\" src=\"https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/image-5.png\" alt=\"\" class=\"wp-image-138\" style=\"width:429px;height:auto\" srcset=\"https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/image-5.png 551w, https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/image-5-300x260.png 300w\" sizes=\"auto, (max-width: 551px) 100vw, 551px\" \/><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p>From here, Cloudflare will guide you though changing your nameservers, although the process will be different depending on your registrar. Once you make the change, it can take a few hours for it to propagate. In the meantime, navigate to &#8216;Zero Trust&#8217;.<\/p>\n\n\n\n<p>We are now going to set up a Cloudflared tunnel. This will not only allow you to tunnel traffic to your web-server, but also allow you remote access if you wish, using Cloudflare WARP, or the 1.1.1.1 app.<\/p>\n\n\n\n<p>Navigate to &#8216;Networks&#8217; and select &#8216;Create a tunnel&#8217;.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"926\" height=\"310\" src=\"https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/image-6.png\" alt=\"\" class=\"wp-image-139\" srcset=\"https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/image-6.png 926w, https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/image-6-300x100.png 300w, https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/image-6-768x257.png 768w\" sizes=\"auto, (max-width: 926px) 100vw, 926px\" \/><\/figure>\n\n\n\n<p>Select &#8216;Cloudflared&#8217; as the tunnel type&#8217;.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"433\" height=\"221\" src=\"https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/image-7.png\" alt=\"\" class=\"wp-image-140\" style=\"width:435px;height:auto\" srcset=\"https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/image-7.png 433w, https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/image-7-300x153.png 300w\" sizes=\"auto, (max-width: 433px) 100vw, 433px\" \/><\/figure>\n\n\n\n<p>Give your tunnel a name, and hit next.<br>Select the &#8216;Debian&#8217; environment, with your CPU architecture.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"261\" src=\"https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/image-8-1024x261.png\" alt=\"\" class=\"wp-image-141\" srcset=\"https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/image-8-1024x261.png 1024w, https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/image-8-300x77.png 300w, https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/image-8-768x196.png 768w, https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/image-8.png 1355w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Copy the left hand box into you server terminal, and wait for the connector to appear in the bottom box.<\/p>\n\n\n\n<p>Once it appears in there, hit next to add a route. If you want remote access into your network, set this as the network subnet using CIDR notation, such as 192.168.1.0\/24.<\/p>\n\n\n\n<p>If you only want traffic for your web-server to be routed down this tunnel, set the route to the IP address of you server with a \/32 notation.<\/p>\n\n\n\n<p>Once your nameservers have been moved to Cloudflare, edit your tunnel, select &#8216;Public Hostname&#8217; and hit &#8216;Add a public hostname&#8217;.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"671\" height=\"189\" src=\"https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/image-9.png\" alt=\"\" class=\"wp-image-142\" srcset=\"https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/image-9.png 671w, https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/image-9-300x85.png 300w\" sizes=\"auto, (max-width: 671px) 100vw, 671px\" \/><\/figure>\n\n\n\n<p>If you want this webserver to be served on &#8216;www.&#8217;, then add that as a subdomain. If not, leave it blank. Select your domain in the dropdown, and then type the local IP address of your server into the URL field below. In the service type dropdown, select &#8216;HTTP&#8217;. Don&#8217;t worry, Cloudflare will proxy the website in HTTPS with a Cloudflare certificate.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"196\" src=\"https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/image-11-1024x196.png\" alt=\"\" class=\"wp-image-144\" srcset=\"https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/image-11-1024x196.png 1024w, https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/image-11-300x57.png 300w, https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/image-11-768x147.png 768w, https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/image-11.png 1368w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-2a24861a wp-block-group-is-layout-flex\" style=\"border-top-color:var(--wp--preset--color--accent-6);border-top-width:1px;padding-top:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40)\">\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-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:40%\">\n<h3 class=\"wp-block-heading\">Step 10:<\/h3>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:60%\">\n<div class=\"wp-block-columns is-not-stacked-on-mobile is-layout-flex wp-container-core-columns-is-layout-7255d826 wp-block-columns-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--40)\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>As I said before, proxying with Cloudflare does break some parts of WordPress. However, this fix for this issue is also an incredible security feature. We will make the WordPress admin panel only accessible from your internal network.<\/p>\n\n\n\n<p>This means that the admin panel won&#8217;t be proxied, meaning nothing gets broken, but it also means that the admin panel logon page is not exposed to the internet!<\/p>\n\n\n\n<p>To do this, we will first create a DNS rewrite on your DNS server (usually your home router). You will need to research how to do this for your specific vendor, however the rule should essentially say:<br>Any DNS requests to &#8216;yourdomain.com&#8217; get sent to the internal IP address of your web-server.<\/p>\n\n\n\n<p>To test this once it&#8217;s in place, open a command prompt or terminal, and use the following command, replacing domain.com with your domain:<br>Windows: <code>nslookup domain.com<\/code><br>Linux: <code>dig domain.com<\/code><\/p>\n\n\n\n<p>This should respond with the internal IP address of your server.<\/p>\n\n\n\n<p>Go back to the admin panel of WordPress and navigate to Settings -&gt; General.<\/p>\n\n\n\n<p>In the &#8216;WordPress Address&#8217; and &#8216;Site Address&#8217; boxes type in &#8216;<code>http:\/\/[yourdomain]<\/code>. Again, Cloudflare will handle the HTTPS, so you must use http.<\/p>\n\n\n\n<p>You should now be able to locally navigate to your domain to use the WordPress admin console at <code>http:\/\/[yourdomain]\/wp-admin<\/code>.<\/p>\n\n\n\n<p>You should also be able to navigate to the domain over the internet on a device that does not use the DNS server you just changed.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-vertical is-content-justification-stretch is-layout-flex wp-container-core-group-is-layout-2a24861a wp-block-group-is-layout-flex\" style=\"border-top-color:var(--wp--preset--color--accent-6);border-top-width:1px;padding-top:var(--wp--preset--spacing--40);padding-bottom:var(--wp--preset--spacing--40)\">\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-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:40%\">\n<h3 class=\"wp-block-heading\">Step 10:<\/h3>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-top is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:60%\">\n<div class=\"wp-block-columns is-not-stacked-on-mobile is-layout-flex wp-container-core-columns-is-layout-7255d826 wp-block-columns-is-layout-flex\" style=\"margin-top:var(--wp--preset--spacing--40);margin-bottom:var(--wp--preset--spacing--40)\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p>Due to the issues posed by proxying, we need to install a plugin that will fix an issue caused by editing over HTTP. The &#8216;XXX plugin fixes these issues.<\/p>\n\n\n\n<p>Install the plugin &#8216;<strong>SSL Insecure Content Fixer<\/strong>&#8216; and configure the following settings:<\/p>\n\n\n\n<p>Content type: Content<\/p>\n\n\n\n<p>HTTP detection: HTTP_X_FORWARDED_PROTO<\/p>\n<\/div>\n<\/div>\n\n\n\n<p>This will prevent issues loading images etc.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>If you want to build a website, but don&#8217;t want to pay the monthly fees for a hosting service, this is the guide for you. As most web-servers are lightweight in terms of resource usage, you can use old hardware such as a laptop, or a mini PC like a Raspberry Pi. Or, you can [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-128","post","type-post","status-publish","format-standard","hentry","category-guides"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Creating a self-hosted website - wickenfix.it<\/title>\n<meta name=\"description\" content=\"Website hosting fees can get expensive, lets create a self-hosted website using WordPress and Cloudflare!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/wickenfix.it\/index.php\/creating-a-self-hosted-website\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Creating a self-hosted website - wickenfix.it\" \/>\n<meta property=\"og:description\" content=\"Website hosting fees can get expensive, lets create a self-hosted website using WordPress and Cloudflare!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/wickenfix.it\/index.php\/creating-a-self-hosted-website\/\" \/>\n<meta property=\"og:site_name\" content=\"wickenfix.it\" \/>\n<meta property=\"article:published_time\" content=\"2025-03-23T17:48:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-28T22:57:10+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/84d68ba0ae38f89b52232ae64eae918cde58a98e_2_1024x535.png\" \/>\n<meta name=\"author\" content=\"matt\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"matt\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"TechArticle\",\"@id\":\"https:\/\/wickenfix.it\/index.php\/creating-a-self-hosted-website\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/wickenfix.it\/index.php\/creating-a-self-hosted-website\/\"},\"author\":{\"name\":\"matt\",\"@id\":\"https:\/\/wickenfix.it\/#\/schema\/person\/b57f92b7c9415dbb605e843355e7cb1b\"},\"headline\":\"Creating a self-hosted website\",\"datePublished\":\"2025-03-23T17:48:39+00:00\",\"dateModified\":\"2025-03-28T22:57:10+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/wickenfix.it\/index.php\/creating-a-self-hosted-website\/\"},\"wordCount\":1049,\"publisher\":{\"@id\":\"https:\/\/wickenfix.it\/#organization\"},\"image\":{\"@id\":\"https:\/\/wickenfix.it\/index.php\/creating-a-self-hosted-website\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/84d68ba0ae38f89b52232ae64eae918cde58a98e_2_1024x535.png\",\"articleSection\":[\"Guides\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/wickenfix.it\/index.php\/creating-a-self-hosted-website\/\",\"url\":\"https:\/\/wickenfix.it\/index.php\/creating-a-self-hosted-website\/\",\"name\":\"Creating a self-hosted website - wickenfix.it\",\"isPartOf\":{\"@id\":\"https:\/\/wickenfix.it\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/wickenfix.it\/index.php\/creating-a-self-hosted-website\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/wickenfix.it\/index.php\/creating-a-self-hosted-website\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/84d68ba0ae38f89b52232ae64eae918cde58a98e_2_1024x535.png\",\"datePublished\":\"2025-03-23T17:48:39+00:00\",\"dateModified\":\"2025-03-28T22:57:10+00:00\",\"description\":\"Website hosting fees can get expensive, lets create a self-hosted website using WordPress and Cloudflare!\",\"breadcrumb\":{\"@id\":\"https:\/\/wickenfix.it\/index.php\/creating-a-self-hosted-website\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/wickenfix.it\/index.php\/creating-a-self-hosted-website\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/wickenfix.it\/index.php\/creating-a-self-hosted-website\/#primaryimage\",\"url\":\"https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/84d68ba0ae38f89b52232ae64eae918cde58a98e_2_1024x535.png\",\"contentUrl\":\"https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/84d68ba0ae38f89b52232ae64eae918cde58a98e_2_1024x535.png\",\"width\":1024,\"height\":535},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/wickenfix.it\/index.php\/creating-a-self-hosted-website\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/wickenfix.it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Creating a self-hosted website\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/wickenfix.it\/#website\",\"url\":\"https:\/\/wickenfix.it\/\",\"name\":\"wickenfix.it\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/wickenfix.it\/#organization\"},\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/wickenfix.it\/#organization\",\"name\":\"wickenfix.it\",\"url\":\"https:\/\/wickenfix.it\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/wickenfix.it\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/cropped-Picture1.png\",\"contentUrl\":\"https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/cropped-Picture1.png\",\"width\":512,\"height\":512,\"caption\":\"wickenfix.it\"},\"image\":{\"@id\":\"https:\/\/wickenfix.it\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/wickenfix.it\/#\/schema\/person\/b57f92b7c9415dbb605e843355e7cb1b\",\"name\":\"matt\",\"sameAs\":[\"http:\/\/10.0.200.10\"],\"url\":\"https:\/\/wickenfix.it\/index.php\/author\/matt\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Creating a self-hosted website - wickenfix.it","description":"Website hosting fees can get expensive, lets create a self-hosted website using WordPress and Cloudflare!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/wickenfix.it\/index.php\/creating-a-self-hosted-website\/","og_locale":"en_GB","og_type":"article","og_title":"Creating a self-hosted website - wickenfix.it","og_description":"Website hosting fees can get expensive, lets create a self-hosted website using WordPress and Cloudflare!","og_url":"https:\/\/wickenfix.it\/index.php\/creating-a-self-hosted-website\/","og_site_name":"wickenfix.it","article_published_time":"2025-03-23T17:48:39+00:00","article_modified_time":"2025-03-28T22:57:10+00:00","og_image":[{"url":"http:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/84d68ba0ae38f89b52232ae64eae918cde58a98e_2_1024x535.png","type":"","width":"","height":""}],"author":"matt","twitter_card":"summary_large_image","twitter_misc":{"Written by":"matt","Estimated reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"TechArticle","@id":"https:\/\/wickenfix.it\/index.php\/creating-a-self-hosted-website\/#article","isPartOf":{"@id":"https:\/\/wickenfix.it\/index.php\/creating-a-self-hosted-website\/"},"author":{"name":"matt","@id":"https:\/\/wickenfix.it\/#\/schema\/person\/b57f92b7c9415dbb605e843355e7cb1b"},"headline":"Creating a self-hosted website","datePublished":"2025-03-23T17:48:39+00:00","dateModified":"2025-03-28T22:57:10+00:00","mainEntityOfPage":{"@id":"https:\/\/wickenfix.it\/index.php\/creating-a-self-hosted-website\/"},"wordCount":1049,"publisher":{"@id":"https:\/\/wickenfix.it\/#organization"},"image":{"@id":"https:\/\/wickenfix.it\/index.php\/creating-a-self-hosted-website\/#primaryimage"},"thumbnailUrl":"http:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/84d68ba0ae38f89b52232ae64eae918cde58a98e_2_1024x535.png","articleSection":["Guides"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/wickenfix.it\/index.php\/creating-a-self-hosted-website\/","url":"https:\/\/wickenfix.it\/index.php\/creating-a-self-hosted-website\/","name":"Creating a self-hosted website - wickenfix.it","isPartOf":{"@id":"https:\/\/wickenfix.it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/wickenfix.it\/index.php\/creating-a-self-hosted-website\/#primaryimage"},"image":{"@id":"https:\/\/wickenfix.it\/index.php\/creating-a-self-hosted-website\/#primaryimage"},"thumbnailUrl":"http:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/84d68ba0ae38f89b52232ae64eae918cde58a98e_2_1024x535.png","datePublished":"2025-03-23T17:48:39+00:00","dateModified":"2025-03-28T22:57:10+00:00","description":"Website hosting fees can get expensive, lets create a self-hosted website using WordPress and Cloudflare!","breadcrumb":{"@id":"https:\/\/wickenfix.it\/index.php\/creating-a-self-hosted-website\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/wickenfix.it\/index.php\/creating-a-self-hosted-website\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/wickenfix.it\/index.php\/creating-a-self-hosted-website\/#primaryimage","url":"https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/84d68ba0ae38f89b52232ae64eae918cde58a98e_2_1024x535.png","contentUrl":"https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/84d68ba0ae38f89b52232ae64eae918cde58a98e_2_1024x535.png","width":1024,"height":535},{"@type":"BreadcrumbList","@id":"https:\/\/wickenfix.it\/index.php\/creating-a-self-hosted-website\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/wickenfix.it\/"},{"@type":"ListItem","position":2,"name":"Creating a self-hosted website"}]},{"@type":"WebSite","@id":"https:\/\/wickenfix.it\/#website","url":"https:\/\/wickenfix.it\/","name":"wickenfix.it","description":"","publisher":{"@id":"https:\/\/wickenfix.it\/#organization"},"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/wickenfix.it\/#organization","name":"wickenfix.it","url":"https:\/\/wickenfix.it\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/wickenfix.it\/#\/schema\/logo\/image\/","url":"https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/cropped-Picture1.png","contentUrl":"https:\/\/wickenfix.it\/wp-content\/uploads\/2025\/03\/cropped-Picture1.png","width":512,"height":512,"caption":"wickenfix.it"},"image":{"@id":"https:\/\/wickenfix.it\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/wickenfix.it\/#\/schema\/person\/b57f92b7c9415dbb605e843355e7cb1b","name":"matt","sameAs":["http:\/\/10.0.200.10"],"url":"https:\/\/wickenfix.it\/index.php\/author\/matt\/"}]}},"_links":{"self":[{"href":"https:\/\/wickenfix.it\/index.php\/wp-json\/wp\/v2\/posts\/128","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wickenfix.it\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wickenfix.it\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wickenfix.it\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wickenfix.it\/index.php\/wp-json\/wp\/v2\/comments?post=128"}],"version-history":[{"count":12,"href":"https:\/\/wickenfix.it\/index.php\/wp-json\/wp\/v2\/posts\/128\/revisions"}],"predecessor-version":[{"id":212,"href":"https:\/\/wickenfix.it\/index.php\/wp-json\/wp\/v2\/posts\/128\/revisions\/212"}],"wp:attachment":[{"href":"https:\/\/wickenfix.it\/index.php\/wp-json\/wp\/v2\/media?parent=128"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wickenfix.it\/index.php\/wp-json\/wp\/v2\/categories?post=128"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wickenfix.it\/index.php\/wp-json\/wp\/v2\/tags?post=128"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}