Adventures with Chyrp Lite: theming 🐦

Out of the box, Chyrp Lite gave me just about everything I needed to rebuild my blog from the broken pieces of WordPress, but it gave me something else as well: functionality similar to Tumblr, which I find that I like very much. It even includes two themes that are described as "tumbleblog" themes. I especially like the theme called Umbra, as I have always liked dark themes, though I may still change some of the background colors. For example, I may want to modify it so that the background is blue like my main website and the template that I wrote for making basic websites. Still, the default theme called Blossom and the similar Topaz theme had some elements I found missing from Umbra and Sparrow, which are the "tumblelog" themes. I really like how the tumblelog themes have the navigation bar across the top, but I find that they don't show my pages. Not to worry though, it is very easy to modify them.

One thing to note is that the first time I tried to modify a theme by adding my site description as a subheading at the top of the page, the modification didn't appear. I even logged into the server and tried restarting my web services to no avail. I found out though that the reason my modifications were not appearing was due to the fact that my theme layouts were cached. Once I removed the cache folders, my modifications appeared correctly, and the caches never came back. From that point, the elements I wanted in Umbra that are in Blossom were very easy to add. All I needed to do was to first copy Umbra's main folder to a folder of a different name, edit the info.php file to differentiate it from Umbra in my list of themes, then copy the parts of the sidebar that I wanted from Blossom and paste them into my modified Umbra. Now my pages and categories show up on all pages and posts, just as they did in Blossom and Topaz, except across the top instead of going down the side, and my related posts show up underneath the categories on post pages. I decided not to copy the recent posts, since the index page is already showing the five most recent posts, so I don't feel like I need to show the links across the top to posts that are already linked on their titles. Related posts looks useful on individual post pages though, so I kept that feature.

My theming modifications are not complete by any stretch, but this is much easier even than what I did back in the day with Tumblr, and the software is still in active development. I mean I've visited the git repository more than 5 times over the past couple of weeks, and every time I look at the latest commit, it is never more than two days old. As I write this post, the latest commit is 18 hours old. So I'm confident that my new favorite blogging software will continue to be developed and maintained for a good long time. I also have my choice of database back ends, easy theme customization, post types similar to Tumblr, exactly the extensions I need that are all tested and known to work, very little I don't find useful, Markdown posts and pages, categories and free-form tags, screen reader accessibility right out of the box, a nice comment system included, complete with a moderation queue, locally generated text-based math captchas to prevent spam instead of the dreaded image verifications or third-party services, just about everything I could want in a lightweight and compact package. To sum it all up very nicely, I ā¤ļø Chyrp Lite 🐦


I'm back!

It's been a very long time since I posted to my blog, but I'm back 😊

I had been considering moving this blog away from WordPress for a long time as well, but I guess it took actually losing it to an unexplainable "critical error" to finally get me to make the switch.

The Problem

I wanted to upgrade my server from Ubuntu 20.04 to Ubuntu 22.04, which normally is an easy process. But I have been managing most of my server's functions through the ISPConfig3 hosting control panel, and unfortunately it still does not support the latest Ubuntu LTS release after 6 months. Looking for alternatives, which are few in number, I stumbled upon Hestia Control Panel, which is a fork, or could probably be better described as the continuation, of the venerable Vesta Control Panel, but Hestia Control Panel is still very actively developed, and it supports PHP 8.0 and 8.1 as well as Ubuntu 22.04 LTS. Testing Hestia Control Panel on a couple of non-production servers first, I found that I like the ease of install, the cleaner interface and even the user directory structure of Hestia Control Panel much better than the ISPConfig 3 control panel I have been using for many years. So I decided to upgrade and migrate both my shared host and the server where I run my own websites to Ubuntu 22.04 and the Hestia Control Panel.

I had a few minor hiccups getting my sites and services installed and working, mostly due to differences between ISPConfig's concept of clients where each web domain is a user vs Hestia's concept of users that are real Unix user accounts on the system with their own web and email domains, DNS zones, etc. But in the end, all went fairly smoothly, right up until the time I tried to restore my blog site. Imagine my frustration after I restored the files and the database, opened up the website and was greeted with:

Critical Error

There has been a critical error on your website. Please check your site admin email inbox for instructions.

along with a link to a page that was supposed to help me troubleshoot problems with WordPress, but that in reality took me nowhere at all. So I looked in my error logs and I was able to track the problem to a host of various function calls that had too few arguments. Crazy I know, but those arguments must have been aimed at me instead of the functions that wanted them, seeing as how every time I wanted to load the site, it argued with me instead of loading the page I wanted. So I tried deleting and recreating the database, deleting all my WordPress files and performing a clean install, telling it to use the database I already created. If I told it to use the database I had already created and imported from my backup, the same critical error greeted me. But if I deleted the database, told the panel installer to perform a clean install and create the database automatically and then tried to restore the backup to the existing database, opening and even reloading the page a number of times showed me the same sample that I saw after the clean install. Apparently restoring my backup had absolutely no effect after installation. Of course just deleting and recreating the database and restoring the backup at that point greeted me with the infamous critical error again.

So I decided I would try to outsmart WordPress by importing my RSS feed into it. In a flash of uncanny brilliance, I headed right over to the Wayback Machine, plugged in https://kyle.ga and wouldn't you know, the calendar popped up and I was able to open a recent copy of my blog that they kept for me. From there, I just opened up the link to the feed, which took me to another calendar where I could select the latest version they had, which happened to be last built near the end of April 2016, which included my latest post up to now.

But wouldn't you know, the fun was far from over. I once again deleted the database and files and performed a fresh WordPress install. I then logged into my admin page and proceded to install the RSS import plugin. All went perfectly until I actually imported my feed. At this point, I received a rather nasty-looking email about something going wrong, and right there on the admin page, sitting pretty as you please was this really helpful message:

Critical Error

There has been a critical error on your website. Please check your site admin email inbox for instructions.

I know that insanity is doing the same thing many times expecting the same result, but call me crazy, I went through the whole process one more time, and you guessed it, the same pretty words appeared on my admin page and I got the same helpful email. So after 10 long and somewhat productive years, I have decided to break it off with WordPress. Buh-bye! It's not me, it's you! Let's not even be friends, OK?

Getting New Blogging Software

Imagine my surprise at how hard it is to find free and open source blogging software that is not WordPress, and is easy to install and use, with the added requirement that I need to be able to import the feed that the Wayback Machine preserved for me.

Ghost

In looking for good alternatives to WordPress, of course the first thing I found was the very popular Ghost. But the problem is that although it is free and open source, the last thing they want is to make it easy to self-host, because that of course would cut into their revenue stream, which is derived from their hosting service, and since I'm already paying for hosting, I don't need to double my hosting cost just for a blog that I can host on what I already have. Yes, they do have an official Docker image, but I didn't find it easy at all to get Docker going, especially since that would require a reverse proxy to yet another web server and all. So it may be easier than I think, but that seemed to be a non-starter, so I left it alone.

The Flat-File CMS

I stumbled upon this thread on Reddit that was 5 years old, but was looking for exactly the same thing I needed, so I thought it could maybe still help. I was right. In one of the many comments, someone mentioned Grav, and I found that in my Hestia installer, so I thought I would give it a shot. It was last updated about 6 to 8 months ago, but it did win awards for being one of the best flat-file content management systems for several years, so I gave it a shot. Well, it does look OK,and I think I could have found a plugin or theme to make it look like a blog, but in order to edit pages and create posts, I have to log into the server over ssh or use my panel's file manager to edit files on the server itself, and then I didn't get very far with the admin dashboard, as it kept trying to sell proprietary "premium" addons to the tune of $50/year and up. So I really felt like they wanted the open source software to be a marketing platform to hopefully get me to buy anything that would be useful, without giving me the freedom to study, modify or share the useful parts ... no good. There are other flat-file CMS's that probably can be made into decent enough blogs, but although they didn't try to upsell, it looked like I wouldn't be able to edit my posts or pages on the website itself, or wouldn't be able to import my RSS feed, although I may possibly come back to this at a later date; perhaps I missed something.

Static Site Generators

This same thread mentioned several static site generators as well that I tested. I tried Hugo, Nikola, and Pelican. I decided to avoid Jekyll, since it seems too closely affiliated with Microsoft's Github; I don't think it's just hosted there, and ... well ... Ruby ... I'm not a fan. The nice thing about static site generators is that they run on my local computer and then I deploy the generated website to my server via rsync. This does mean though that although I can edit my posts and pages the way I want using the editor I want, much like the flat-file CMS, I am pretty much tied to the computer, as there is no way to edit my files from a web interface or an app. They do however all have servers that show me the entire site as I build it, so that I can edit things that show up wrong before deploying the website. The other nice thing is that I can completely blow away a site generated with one static site generator and replace it with the same site generated with another.

Hugo

Well, Hugo was rather nice, since its test server actually built my site immediately as I made any changes to the source files. This real-time build seems to be unique to Hugo, although deployment doesn't take it into account; it still requires a build. I did rather like the theme I chose, as I found one called Arabica, but Hugo seems to have a bit of a learning curve to get the site into a useful state. No, I don't want to have to manually download a theme, and I don't really want my whole site to be a git repository either. Having the options is nice, but I didn't want to have to start from zero and try to find stuff, I just wanted to look at the options available and have a place to start. Well, I stuck with it long enough to try to find out how to import my feed, and well, that was a bit more difficult than I liked as well, so I abandoned it for now.

Nikola

I started playing with this maybe a year or so back, but didn't really get into it much. I like Tesla, but I didn't wanna have to be Tesla to figure out my blogging software. Well, it turns out it's not so difficult as all that after all. It is a bit longer and more involved process than logging into my blog's admin panel, writing a post and submitting it, and it does still tie me to the computer to actually post something, but I do have the option to use a text editor on my phone, or even NextCloud Notes, to write my post anywhere, connect my phone to my computer, or sync it to my SkyDisk, and then just put the file in the right place on the computer and rebuild and deploy the website, which takes less than 5 seconds in total. The best thing about Nikola is that I was able to import my 10-year-old RSS feed that hasn't seen a post in 5 years right into it, and it very happilly copied every post in its original HTML format right where it needed to be. I will need to fix a few links probably, and there are some posts with no titles and it just wrote in "No Title" for those, but overall, it went very smoothly, and even the music I had recorded still plays with no issues at all. Thanks to the WayBack Machine preserving my feed for me, I have every post I wrote on my blog going all the way back to 2012, and they still even have the share buttons that I probably need to go ahead and remove, or replace with either a Nikola plugin or a theme mod that I'm certain is available. The only glitch I found was that after I imported my feed, I could only post in HTML format, as for some reason, installing the plugin somehow disabled the Markdown compiler. So I cheated a little and just created a new site configured for The Kyle File and moved all those posts from the old site to the new site, and I can write posts and pages in Markdown once more.

But now we have a problem. Nikola, like other static site generators, integrates with very few comment systems, and only two of them can be self-hosted. I tried for hours to get Commento working, even though they tell me it's supposed to "just work." Yeah so much for that. I guess if just works if you want to fool around with Docker and such, but their dependencies are so old that if you want to use it without all the container mess, it's impossible. I spent hours and hours trying to figure out why it was unable to authenticate to the Postgresql database it had me create, only to find out that it relied on a version of Postgresql that was like 3 years old, and couldn't even talk to the version in Ubuntu 22.04. So my only other choice was Isso. What a mess! I pounded on that thing for days trying to get it working, and no joy whatsoever. I even tried putting it on a different server, but no matter what I did, I only saw a comments header with nothing underneath it, and no way to write a new comment. Project abandoned. Seems Nikola makes great websites with nothing other than Markdown text, but if I want a blog and don't want to rely on a third-party proprietary comment system or an open source comment system that is near impossible to self-host, Nikola makes for a lackluster blog.

Pelican

Well, that was a non-starter. All I wanted to do was to import my feed. But anything that didn't have a title was simply thrown away. It didn't ask me what to do with it, it didn't even just create "No Title" or "Empty Title" posts. It simply trashed everything it didn't know what to do with. I spent all of 10 minutes on it before it went to bye-bye-ville.

Enter the Bird

The Reddit thread I have referenced here gave me one more option to try. It's not a flat-file CMS, nor is it a static site generator. It's just a plain old simple blog, although it can be extended to create all kinds of things. Its primary purpose though is blogging, so knowledge of theming is important to go beyond the blog. This really nice little web app is called Chyrp Lite. Although it does require a database, the first question it asks is whether your database is MySQL, Postgresql or SQLite3. So based on how easy it is to move an SQLite3 database from one computer to another, or to copy it, or whatever, since it's a file and doesn't require a TCP connection to a server in order to access it, I chose the SQLite3 database. The rest of the installation ran very smoothly, and my new blog site ran very fast. The main hurdles had yet to be jumped however: importing my feed and allowing comments.

Well, here I thought we were gonna have another non-starter when it came to importing the feed. There is an importer, but it wants an Atom feed, and all I had was RSS. Of course it complained about that, so I tried converting the feed to Atom. Same old story, it didn't like it. So I let Nikola, which had happily converted my RSS feed to separate HTML posts, generate an Atom feed for me. Strangely, Chyrp Lite didn't like that either. Either it had errors about invalid keys I couldn't understand, or it complained about the export file being invalid.

Then I remembered something very important. It seems I still had a blog at Tumblr that had apparently been kept updated all the way up to the time I stopped blogging in 2016. By this point, I saw that there was an extension to Chyrp Lite that is disabled by default that is a migrator from WordPress, Tumblr, TextPattern and Movable Type. Well, since I had Tumblr already, I gave it a shot. Bad, bad, bad! Nothing but errors! It complained about my Tumblr URL being invalid, even though I was logged in and looking right at it. I was ready to throw in the towel and get WordPress back, since I knew it could import from Tumblr.

WordPress Fails Again

I love my new hosting panel and the way it organizes things. I can put several full public_html.* directories inside the main folder of my web domain, and just rename the one I want to use to be called just public_html. If I want to go back to something I used previously, I just rename public_html to public_html.whatever and rename public_html.oldsite to public_html. So this is what I did. I renamed public_html to public_html.chyrplite and created a new empty public_html directory and let my Hestia Panel install WordPress for me. But then when I tried to import my Tumblr, it asked for keys that I already saw and was able to copy and paste, but it complained about the authorization signature not matching the expected value. Well, I thought this was due to the fact that when I initially connected The Kyle File, I had it on a different domain. So I went and registered a new app, just like WordPress told me I would need to do. Nope! Again, the new authorized signature didn't match the expected value. So I had one of two options as I saw it. I could rebuild one post at a time into Chyrp Lite from the backup that i was able to download successfully from Tumblr, or I could just put my Nikola site back up, say to heck with comments, and just never touch it again, leaving it up for historical purposes only, even though the Internet Archive already had a decent enough historical copy.

The Puzzle Is Solved

So I tried one more time to find a way to export Tumblr to something I could import into Chyrp Lite, since I had pretty much decided that this is what I wanted; despite its import issues, it really looked like the best of everything I had tried up to now. And so I somehow stumbled upon this article. Who would have thought that even though importing tumblr to self-hosted WordPress doesn't work, even though they have both been owned by the same company for nearly three years now, transferring Tumblr to wordpress.com would work so well? As it turns out, the feed I got from the Wayback Machine was only about a tenth of the posts that I had actually made over the years. So I successfully got my Tumblr imported into a WordPress site hosted at wordpress.com, but not visible to the public, and then immediately trashed the "Hello World" post they put on every site, and went in and got my media and my xml file. I was able to switch back to Chyrp Lite very easily, and then tried to import the WordPress xml. Well, it complained again, but this time it was because I had a trashed post that I didn't delete. I simply deleted the item from the xml file using a text editor, and the import was quite successful. After just a little more time to figure out why the comment form wasn't being displayed, I traced that to a permission issue, simply granted the permissions to my visitors that I wanted, that allows anyone to post a comment if they solve the easy math problem that pops up, and just like I wanted, comments appear in the moderation queue for me to approve, deny or delete. And even after all my posts have been imported, this blog runs much much faster than my WordPress blog. So now I can delete all my other attempts, along with my wordpress.com site, and maybe even my Tumblr as well, especially since my posts to Talkabout can show up on here as well, since it supports XMLRPC.

Conclusion

I know it's been quite a while, but I'm back on a blog, hosted on my own server using Chyrp Lite, and I don't think I'll be looking for new blogging software any time soon. It runs very fast, offers a fair number of client/server-based or file-based database options, it's clean and simple, easy to use, and most importantly, it follows w3c accessibility standards for use with assistive technologies right out of the box. What's not to love! I have 13-year-old posts that made it onto the new blog, and hope to be able to post for the next 13 years or more. Just keep my new favorite blog software updated and I'll be happy.

Update

In the original version of this article, I mentioned how difficult it was to self-host some software, e.g. Isso Comments and the Ghost blogging software. However, because Hestia Control Panel runs an out-of-the-box nginx reverse proxy to Apache configuration by default, it is much easier to set up non-PHP web software than I had initially thought. All I ended up having to do was to copy the nginx default templates for both regular http and for ssl, giving them the name I wanted, edit the ssl template to proxy pass to http://localhost:<port> specifying the port I chose for the web server built into the software I wanted to run, then choose that template in the advanced settings for the web domain. I was able to see Isso comments on a Nikola test blog, and I was able to very easily set up several other web applications written in Go, including gitea with very minimal difficulty. I did try Ghost initially once I figured out how this reverse proxy thing worked, but this still gave me nothing but trouble, as apparently the version of node.js available from the Ubuntu 22.04 repositories is far older than what Ghost requires, and I had already decided to run Chyrp Lite here, so I just didn't try much harder to get that working. Still, seeing how easy it really was to get the reverse proxy working as expected on my current setup opens up a whole new world of web applications I can run quite easily now. As I mentioned, I already spun up my very own gitea site, so I can move off Gitlab or just let it lay dormant now; I can manage my own git repositories, even for my websites, all on my own server, using entirely free open source software. As for the blog, I put too much time into exporting, migrating, importing and updating everything in Chyrp Lite to even continue looking at any other solutions, and I know that I have found the best for my needs already, so I'm definitely sticking with this. I'm just very happy that I am able to do much more with my server space than I initially thought possible; this experience has taught me much.


This time, it's personal

First, I must apologize if this violates anyone’s copyrights or anything, but I just found this on the internet and felt I had to do something with it. I use this track solely out of respect, admiration and love of the music.

This started out as an instrumental version of Purple Rain, recorded on a rather old tape in I believe 1984. It’s just a keyboard and strings, and as far as I can tell, I think Prince may actually be playing the keyboard on this recording. If you listen closely at the end, you can hear his voice counting off for the strings to come in, and the strings that play right afterward sound very much like the end of the album and movie version.

It may not be commonly known, but initial versions of Purple Rain had 4 verses, even though only 3 were performed regularly, and only 3 ended up on the movie soundtrack. This track was recorded with 4 verses, though the 3rd verse doesn’t really fit with the post 1999 lyrics that I saw him perform, and that are the more meaningful lyrics to me personally. So with the utmost respect and love, I sang the 3 verses with post 1999 lyrics, and have written a fourth verse from the heart.


In memory of the greatest Artist of all time

On Thursday, April 21, 2016, God took away from this world the greatest musician and performer who ever blessed us with his gifts and talents. I have heard words like devastated and shocked used to describe the feelings people had when they heard the news, but to this day I have no words that come close enough to describe the great hole left in music by the passing of THE ARTIST, Prince.

Upon hearing the news, I immediately shut down my music page and left only a link to an index of my previously recorded tracks. However, now that I have something worthy of sharing, I have brought the entire page back, with the addition of probably his most well-known song. Special thanks to Ameritz and Google for this amazing version, which is the only full length backing track I could find, and is actually quite close to the version from the movie soundtrack, although I used Prince’s lyrics from just prior to the year 2000 rather than the original 1984 lyrics, as the 2000 lyrics just felt right in this case.

Prince, I hope you can hear this where you are. I’m not even in your musical league, but I do hope I knocked this one out of the park for you. In any case, I did give it all I had to give, so I hope you’re listening, and I hope you like it. There’s more to come.


Black Lives Matter, and I am officially an extremist

I just heard what some would call disturbing news on the radio. Apparently, people like me who support and believe in the Black Lives Matter movement and what it stands for are essentially extremists and paid protesters. Well then I am officially coming forward as an extremist, as I am not getting paid to stand in support of the #BlackLivesMatter movement, and I wholeheartedly support what it represents. When my family has to live in terror because a police officer can shoot or torture one of them to death, then I will wear the extremist title proudly, because #BlackLivesMatter! When my church family has to live in terror because an armed terrorist can enter a place of worship and kill nearly everyone there, and when terrorists can burn up churches in the name of racism, I will wear the extremist title proudly, because #[BlackLivesMatter](https://plus.google.com/explore/BlackLivesMatter! When my friends have to live in fear because someone who doesn’t even work for law enforcement can shoot them down in the street because they think they shouldn’t be where they are, wearing what they are wearing, I will wear my extremist badge of honor, because Black lives matter! And when someone can set off a bomb in a public place in the name of Alah and be called a terrorist, but someone shooting up a church is simply disturbed or mentally ill, and the shooting is at best called a hate crime, and will never be tried as the federal capital charge of domestic terrorism that it is, then I will wave my extremist flag for all the world to see, because Black lives matter! So if supporting a movement that celebrates the lives of Black people in America is extremism, then I am more than happy to be called an extremist. Go ahead and call me whatever names you like. It won’t change the facts, and to those of you who would say that all lives matter, I guess mine no longer does, because I wholeheartedly support the movement that celebrates and raises awareness of the importance of the lives of my family and my friends, and I know how little extremist lives matter to some. BLACK LIVES MATTER!