Making a website is both easier and harder than it seems.
What I mean by this is that if you have very specific behaviour you’d like your website to follow, then you will probably have to follow one of three routes:
- Learn programming and do it yourself
- Pay someone to build your website for you
- Subscribe to a website builder that can do it
However if you want to make something simple, say a online CV or portfolio, it does not have to be that hard, although it may be tedious depending on the specific site.
Basically, you build a WordPress site, export it, and then host it on Cloudflare as a “page”.
The cost for this is the price of a domain or free if you don’t mind a link that looks like ” xxxxxxxx.pages.dev “
So how do you actually do this?
- Download LocalWP
- Start it up
- Go into


If you want to make your own theme, here are some useful YouTube tutorials.
- Create your own WordPress theme (Visual editor) (My choice)
- WordPress theme development tutorial (includes a little coding)
Other guides if you really want to understand how to host your own website.
Here’s the full walkthrough as clean, actionable steps you could follow start to finish:
1. Set the WordPress domain during install
- When TurnKey asks:
Enter domain to serve WordPress... - If you have a real domain pointed at the server → type it plain, no
http:// - If it’s local/internal (like this setup) → enter the container’s IP address instead
2. Find your container’s IP (if needed)
pct exec <CTID> -- ip a
Look for the inet line under eth0. (Or check Proxmox UI → container → Summary tab.)
3. Remove the “Powered by TurnKey Linux” footer
a2dismod substitute
service apache2 restart
4. Fix slugs that don’t match page titles
- Open the page/post in wp-admin
- Find the Permalink field (Block editor: sidebar → Page/Post tab; Classic editor: under the title)
- Edit the slug manually to match the title
- Update/save
- (Optional but recommended if the site is live) Install a redirect plugin like Redirection so old URLs 301 to the new ones
5. Set up a real WP-Cron trigger for Simply Static
- Test the endpoint first:
curl -vk https://192.168.3.127/wp-cron.php
- Open the crontab:
crontab -e
- Press
iif in vi/vim to enter insert mode - Add this line:
*/5 * * * * curl -sk https://192.168.3.127/wp-cron.php >/dev/null 2>&1
- Save:
- nano:
Ctrl+O→Enter→Ctrl+X - vi/vim:
Esc→:wq→Enter
- nano:
- Confirm it saved:
crontab -l
- Wait a few minutes, then re-check Simply Static — the WP-Cron warning should clear
6. Stop “Forbidden” errors on fast page refresh
- Confirm the cause:
apache2ctl -M | grep evasive
- Either loosen the limits:
nano /etc/apache2/mods-available/evasive.conf
Raise DOSPageCount, DOSSiteCount; lower DOSBlockingPeriod
or disable it entirely (fine for an internal-only LAN site):
a2dismod evasive
- Restart Apache either way:
service apache2 restart
That’s the full sequence from initial install through to a clean, exportable, cron-reliable WordPress setup. Let me know if you want this saved as a text file you can keep for reference.

