Probably my last blog post powered by Roller
So I have been working away in the background on the migration of my blog away from the Apache Roller powered blog platform that I currently use. One of the issues that annoyed me, and I never got around to fixing (although it would probably have been easy to fix), is the fact that all my posts appear at a URL that includes the word "blog" twice. It was redundant, and irritated me, and because I never fixed it, removing that means that when I migrate the blog I'll need to set up a redirect for the old links to still work, which also annoys me, but is the cost of this migration I suppose. So I am going to do a review of the process, what I wanted to do, how far I have got, how I did it, and what is left to do.
Blog Migration Progress
I said I was going to migrate my blog some time ago, off of Apache Roller that it currently runs on, and onto Jekyll (probably). Well since then I've basically not done a lot, but I have now hit a minor milestone. I have managed to migrate my blog content to a new Jekyll site. It's not ready for me to publish it yet, I still have a lot to learn about how to use and set up Jekyll, I either want to match the URL layout of my current blog as much as possible, or at the very least map out the URL rewrites I'm going to need so that any links continue to work. But for this milestone I needed to get the content out of the Roller database, and into Jekyll, and for that I found the RSS importer not quite up to what I wanted. So in the true spirit of open source, I took the available tools, I hacked around with them, and I got something that worked for me, and then as I may not be the only one that needs this, I raised a pull request.
So I Registered a Domain as a Joke
As a bit of an in joke with people I work with I registered bettercatfood.com. But the joke has since been made, and now I have a domain, and nothing useful to put on it. So I've decided to allow other people decide what goes on it. Obviously I have informed the people I work with first. And I'm only going to give write access to the repo to people I trust, which grants them the ability to not only raise a pull request, but also to merge that pull request, and merges into the master branch will deploy that code to the servers hosting the site. But even if I don't grant you write access you can still raise a pull request, and as long as there is a reasonable justification for it (which absolutely doesn't have to be serious) I'll probably merge it. The host is currently configured to only serve static content, so server side scripting won't work.
Lets see how bad of an idea this is. What's the worst that can happen?
Building A git Repository Server using Gitea on Debian
I normally shy away from giving a set of instructions for how to do something. There are two reasons for this, often there are already better instructions than I could write out on the internet already, and also it is very easy to give incomplete, or incorrect, instructions, that when blindly followed leave people in a situation that is bad, and that they don't know is bad. However I need to have faith in my own knowledge, and I need to stretch myself.
So with this in mind, following Microsoft's purchase of Github I have finally got around to building my own git server. This is something I have wanted to do for some time, but have always shied away from. Well now I have done it, and I have also written a guide for others to follow on how to do the same.
Code Repositories
I have started to look into rebuilding my blog based on jekyll. Part of this will mean changing code, which will need version control. As I mentioned when talking about my new hosted website this can be done in git. That git repository is just a local repository though (not counting the copies pushed up to the server). It's probably about time I had some public code repositories (not including the professional ones I have worked on, those have always been kept separate from my personal identity). However it looks like Microsoft are buying GitHub. The timing isn't great, but I'm a resourceful sysadmin, maybe it's time to host my own. Also the timing could be worse I could be invested in hosting the repositories with GitHub. So I'm going to look into Gitea as an option for hosting my own code repository. I'll let you know how it goes.
Migrating My blog
My blog is powered by Roller, a java based blog platform, and it works reasonably well for me. However I want to move my blog to be hosted off my home connection, which rather means paying for hosting that can run a Java app, and if I wish to use to use multiple servers for redundancy, I will have to set up replication of the database somehow. These are complications I do not need, and add to the maintenance overhead of my blog somewhat. So what do I need?
First Attempt at Responsive Design
So I have a new website, and if I'm going to redo the design at all the first thing I need to do is look at responsive design. A web page that has an appropriate layout regardless of the screen size it is displayed on would be an improvement on what I had before. So I've made an attempt at responsive design, and it works as I want it too, I still need to work on colours, and look and feel, but I do at least now know the basics of responsive design. This stuff is not easy, and I'm sure I have a lot yet to learn, and I'm probably not doing it in the best way possible, but lets not get ahead of ourselves.
So now that I have learned a little about responsive design I have taken what I have learned and applied it to my current site. There were some teething issues with the different layout needed for my blog, but I've worked those out mostly. Some of the jokey and less serious styles (that only people who know me will know how to get too) still need to be fixed, but I can work on those later. For now, I have a responsive website!
Hosted Website
So I mentioned that I had registered a new domain recently. I also mentioned that I was going to host a website for this on the virtual private servers I have for my mail servers. I had a couple of prerequisites that needed meeting before setting this up.
New gTLD domain
I have always been sceptical of the new generic top level domains, I saw them as ICANN shamelessly cashing in on something it had the power to control. Because of this I have until now avoided them. However my current domain name is quite long, and I have for a long time wanted something shorter, but the good ones that may be applicable to me have all been taken.
But the time has come to admit that the new generic top level domains are here to stay, so I have swallowed my pride, and found that most of the good names are gone already anyway. But one was available that was suitable, so I have registered stewart.zone. I'm going to use it to set up a website that isn't hosted on my home connection. For this I'm going to use the hosted virtual servers I already have for my mail servers, but that is going to need me to set up a backup process for them, as they will no longer just be mail servers, so rather than trust my ability to reconfigure a new server from scratch I'm going to trust in my ability to back up the configurations in a sensible way, and save myself the trouble of having to manually rebuild their configurations if they go wrong.
Also this will give me an opportunity to build a website that isn't quite so ugly, and also isn't lumbered with some of the "features" of my current site that I haven't had the heart to do away with, but are a bit rubbish. Once this is done successfully I'll look at migrating my current site over to the new hosts, and the new design, and then I won't need to open up firewall rules on my router any more.
Mail Server Update
So in a previous blog post I set up postfix and dovecot by sort of following an online guide. Well the author of that guide has updated it for debian stretch. This doesn't help me much, as I already built my mail servers on debian stretch by adapting his previous guide. But some of the changes do interest me. I have been meaning to set up DKIM and DMARC, and the new guide includes instructions on doing so. The new guide also includes instructions for setting up clamav, which wouldn't hurt. However the instructions for clamav depend on using a new anti-spam tool, and I am actually getting on with spamassassin, on top of this the new anti-spam tool is not in the debian default repositories, which puts me off somewhat. They do provide an APT repository for stretch though which eases this concern a little. The new tool also supports some features I may be interested in, including greylisting shared across hosts by using redis (a piece of software I may be a little familiar with) a possibility that intrigues me. I am going to read this new guide, and decide if there is anything I wish to take from it, if so I shall almost certainly write a new blog post on the matter, if not I probably won't.