Blogging 101

Tim Forsythe


Published: December 4, 2024

Updated: December 13, 2025

Created: April 15, 2026

 

Have you ever wanted to have an online blog so that you can spout off about your inner demons, or maybe just share a few photos and ideas, but were disillusioned by the complexity of applications like or the expense of ? If so, then I've got you covered. In this article, I'll describe in detail how to use a popular free web server to host your blog. The article will describe how to configure it, how to build a sample blog and deploy it, all in just a few steps, and without having to know how to write code or run a web server.

If you don't already have a hosting service, follow this link.


Going Online


Have you ever wanted to setup a web server for hosting a website, any website? If so, I've got you covered.

Tim Forsythe ยท December 3, 2024

Build Your First Blog

The first step in creating your blog is to Download Slimlines. Once you've downloaded the distribution ZIP file, extract it into any folder of your choice. It will copy its files into a subfolder ( slimlines ) — it has no install process. You can move subfolder without affecting operation. To uninstall, simply delete the subfolder. Slimlines runs on both Windows and Mac OS. It is a Windows x64 console application, but can run on a Mac in a BootCamp partition (or so I've been told).

Once extracted, open the build configuration file ( /slimlines/build.xml ) with any text editor and update the <SiteTitle> and <SiteDescription>.

<Setup>
  <SiteTitle>       Bob Biggs Blog                        </SiteTitle>
  <SiteDescription> Bob Biggs takes to task timely topics </SiteDescription>
</Setup>

Next, run the build file ( /slimlines/build.bat ) to build your blog in HTML. Your blog will be built using the a basic configuration. Later you can look through the documentation at the available configuration options, but for now let's keep this as simple as possible. Your HTML files will be saved into the ouptut folder ( /slimlines/html ). If the folder does not already exist, Slimlines will ask your permission to create it. When the build is complete, you can double-click the open.html file to load your blog into your default browser to review it.

Build Your Database

The next step is to build your blog as a database for deployment on your web server. To do this, you will need to open the database configuration file ( /slimlines/db.xml ) with any text editor and set the $HOST_NAME$ to the web server's domain name. You will then need to set the $SUBFOLDER$ to the subfolder where you want your blog to reside.

<Placeholder> <Find> $HOST_NAME$     </Find> <Replace> bobbiggs.heliohost.us </Replace> </Placeholder>
<Placeholder> <Find> $SUBFOLDER$     </Find> <Replace> blog                  </Replace> </Placeholder>

Now that you've set your placeholders for building a database, you can run the database build file ( /slimlines/build-db.bat ) to build it. Slimlines will save your database and its support files into the subfolder you specified ( i.e. /slimlines/blog ). If the folder does not already exist, Slimlines will ask your permission to create it. Your database is now built and ready to deploy.

Deploying Your Database

The next step is to copy your files to the web server. Select the public_html folder in the Home Directory of your server's file system, and drag and drop the entire output folder into it.

Once that is done, the folder structure on your server should look like the following:

/home/bobbiggs.heliohost.us
    /public_html
        /blog
            .htaccess
            includes.php
            blog.sqlite
            pdodriver.php
            router.php
            /plugins

That's it, you are done. You can access your blog online via your domain ( https://bobbiggs.heliohost.us/blog ).

Cleanup

If you have or will be obtaining a personal domain name, such as bobbiggs.com, you will need to update your Domain Name Service to have it point to HelioHost's name servers, ns1.heliohost.org and ns2.heliohost.org, and you will need to setup a domain alias. Heliohost does not yet expose this option to its users, so you will need to use the Discord chat (purple button, lower right) to request that the admins do this for you. If you do not have your own personal domain name and would like to obtain one, I can recommend Namecheap. I use them for all my DNS services and they are indeed cheap, costing about $17/year per domain name. You can also transfer existing domains to their service. New users are often offered steep discounts. Once you have a domain name, you will need to edit your configuration file to add the <Domain> placeholder, rebuild and redeploy.

<Setup>	
  <Domain> https://bobbiggs.com/$SUBFOLDER$ </Domain>
</Setup>

Updating Your Blog

Updating your blog is now as easy as modifying your configuration file, rerunning your database build file and then recopying the output folder onto your server's public_html folder.

A note on the support files: Slimlines requires several support files for deployment. Virtually every website on the Internet does something similar, so it's worthwhile to provide a brief explanation on what they are used for and how they work. The first support file is the HTACCESS file ( .htaccess ). This file is always the first file loaded when you access a URL on the Internet. The purpose of this file is to route your request to the appropriate handler, in this case the ROUTER ( router.php ). I've added additional code to HTACCESS to prevent visitors from accessing and downloading certain types of files, such as your database file, configuration files and directory-level error logs, or from reading your server's directories directly. It also forces the use of https and removes www. from the start of all URLs. The INCLUDES file ( includes.php ) is generated by Slimlines and its sole purpose is to store the path to your database file ( blog.sqlite ) for use by the ROUTER. The PDODRIVER file ( pdodriver.php ) includes the functions needed by the ROUTER to read data from your database. Finally the ROUTER does the remainder of the housekeeping. It parses the URL request and reads the page elements from your database, assembles them into a coherent page and then presents the page to the requesting browser. Some of its other roles are handling user authentication, page decompression and displaying alerts. It should not be necessary to modify any of these files.
Comments