I was asked some days ago how I am creating this website because it is very fast, seems not to be using WordPress and looks very custom. I will explain what is going on here.
- This website is static HTML.
- This website is WordPress.
- This website is very custom.
I am running a very hard modified version of a very old version of WordPress locally on my Notebook. I patched a lot of stuff for creating static HTML files from this installation. I afterwards are running a Shell script mostly using the mirror function of GNU wget (wget -m) for mirroring the local site http://hanez/ to a local directory and then sync it via rsync to my server. The local directory is a Git repository so I could always switch back to old versions of hanez.org.
So, this is WordPress but very hardly patched... What did I patched? I don't know all the modifications actually but most of it was patching all parts of the code to don't use the domainname in the URL's like href's or img sources spread around in the code. Locally my hostname is "hanez" in the web my hostname is "hanez.org" so that makes problems. I think it was mostly the RSS stuff where I needed to fix that. But that was very easy because the static content was created by following all links on the site. I am just using hanez.org as static string in all links in the RSS feed.
I also changed all path information so there is no "wp-admin", "wp-content" etc. URL part to some content anymore.
The photo gallery is completely written by myself. Many files are not created using WordPress, they are just plain HTML files. WordPress is including a head and a foot file provided by me and mostly don't uses the template directory. I think I modified and added some functions but I don't know them exactly anymore. It was mostly customizing the HTML output to be compatible to my CSS file and logical structure. I know there are some bugs but for me that is not important. I think it works very well and I am optimizing all the time. Maybe I will install a current version of WordPress in the future and create a patchset but I have no time for that now.
You think that sounds a little bit crazy because I am recreating all pages on every change on the site...? Yes, it is crazy but it takes nearly no time. This site is being generated and published in about 60 seconds (hasync0.81s user 0.45s system 2% cpu 56.384 total) without the photo gallery but this is a very special part. The photo gallery is using the Flickr API and this is very slow. Since I am uploading photos very rarely this is not a big problem to me and the gallery is only recreated when there are new files on Flickr.
I am syncing some directories to the server like "/images" or "/files" to make sure that files where I am linking to from other websites are still available in the net even if I am removing links to those files so "wget -m" will not mirror them anymore.
The most benefit for me releasing my website like this is, that my webserver is just a stupid copy of what I have running locally. There is no dynamic data creation on my server, there is no scripting language running and I don't need to make backups of /var/www. I also don't have to run a database on this server
Locally it is great to a have a simple interface for publishing information by still being totally free when integrating own stuff like the gallery. Even a mix of PHP and some small parts of Python code are running here... So, I am totally free when coding this site because I never will produce a monster running on a server and wasting CPU time just because everything is created dynamically but without sense...
One thing I shouldn't forget to mention is that I am running sometimes very crappy code in my WordPress installation but I don't need to care. I am the one and only person running this code. I know that's not a good practise but I am running PHP here and this could really make problems on public webservers. So security is in no way important when writing this website's code.... ;)
Greets from outer space... ;)
Posted in: website,
Tags: static, website, wordpress, php, wget, mirror,