Bye Bye TT-RSS

It was way back in 2013 that Google decided to shut down Google Reader. I had a rich list of RSS feeds that I read regularly and didn’t want to lose that experience, so I decided to switch to something I could host myself. At the time TT-RSS fit the bill nicely.

In the process of moving to a docker container managed server, I switched to the linuxserver.io tt-rss image. Then at one point I went to pull an updated version of the image and discovered it had been deprecated.

This resulted in my digging around a little to see what options I had to get a docker version of TT-RSS. I did find that there is a maintained version of a container build, but it seems to be only for development purposes. It didn’t feel like it was something I wanted to make use of.

As I dug deeper, I came across some dirty laundry. This didn’t really give me a good feeling about the TT-RSS project as a whole. Then I came across someone who was quite opinionated about TT-RSS. Well, this is the internet and there are lots of opinions out there. Still, I’d formed my own opinion along the way and decided that TT-RSS is no longer for me.

What next? Well, I decided to make that a completely different post which I’ll get up soon. The nice thing about many of the RSS feed readers, TT-RSS included – is that they support the export/import of your feeds. This makes it easy to switch.

Continue reading “Bye Bye TT-RSS”

Windows 10 Family Controls

We wanted to relocate the computer the kids were using to a more visible location in the house, this is generally a good idea since you want to be able to casually keep tabs on what they are up to online. The older Dell PC we had was the classic desktop box plus paired up with an older LCD monitor. The WAF was low.

One nice thing about the current state (slow death) of Moores Law is that even older machines are totally fine for most users. My personal desktop machine is a decade old, and aside from some minor (cheap) upgrades it’s still just fine. So of course I looked on the local used market to see if there were any computers that met the criteria. I came across a nice All In One Dell computer – this combines the screen and computer as a single unit.

Adding more RAM and swapping the hard drive for a SSD breathed new life into this 5 year old machine, it’s still a little plunky but can play minecraft and browse the web like a champ. The built in microphone and camera has been very useful lately as video conferencing for school is the new reality.

My go-to OS install is Ubuntu. For most use, this is just fine. It’s what I configured this new machine to run, but I then ran into the dreaded “need X program to run for school” problem. Windows 10 came with this hardware and was an easy choice to install to get things working. Overall, the windows experience isn’t so bad. You need an existing Windows machine to build a recovery USB from, but after that you can install it easily onto a new drive. I had thankfully kept the original hard drive around, allowing me to boot Windows to get this process started.

Windows 10 really, really, wants you to get a ‘cloud’ account and control everything through that. It is possible to setup a local only account, but only after you fail to connect to the internet. Of course I took this route, disconnecting the internet via a little bit of router firewall magic.

Now, I’d like to set restrictions on use. I want to avoid the kids doing a 5am wake-up so they can get a little quality computer time (minecraft/youtube) going while I sleep until a much more reasonable time of the morning.

While again, the easy path here is for Windows to just use the cloud based account (they call these Microsoft accounts) to manage the family controls, you can setup some limits for local only accounts. You do need to break out the command line to do this, and you can only pick “on the hour” granularity. So you can let them start at 7am, or 8am for example – but not 7:15 or even 7:30.

The local controls just let you set on/off times for access. You can’t control how many hours they can use. This is useful, but so very limited. I finally caved in and created a Microsoft account and linked the user to the cloud.

There are still limitations that leave some things to be desired. If the account doesn’t actually log off, they still count this as screen time. This leads to the hour and change we allow per day, to basically be used up soon after the first session of screen time starts (because who ever logs off?).

Granting more time is easy enough, Microsoft will send you an email (to your linked parent account) asking for more time. I’ve also seen improvements over the time we’ve used it – activity reports are starting to flow in now, and you can limit time per application. Spending and even access to the e-Store are built in as well.

One last thing in this Windows 10 setup. While Edge has now moved to a Chrome based browser, using the Microsoft supplied browser wasn’t my first choice. I will say that the Family controls are better (or maybe more deeply) integrated into the Microsoft browser. I’m still a fan of Chrome and the whole Google experience, this might be mis-guided at this point in time, but it still works ok. Getting Chrome installed is easy, and keeping the computer logged into a Google account lets me pull interesting data out of the use of that browser. I do want to prevent incognito browsing, and it turns out there is a way to do that with Chrome.

Maybe I’ll pivot to the Microsoft browser at one point, it would give us even more Family control features.

WordPress migration

I’ve been slowly working on upgrading the server that hosts this website (along with other things such as email, news reader, backups, etc). I started a hard for me to believe 3 years ago. Somewhere along the way I experienced some sort of issue with the ASUS motherboard and after a few attempts to get it fixed via the RMA process, I ended up moving to a Gigabyte based motherboard. I’ve even done a hard drive swap since I started the upgrade process.

I started with a basic Linux install, layered on some useful system utilities and most importantly docker. Most of this is covered in the rebuild post. After that, I try to manage all of the “services” I want to run in containers. I’m cheating a bit and the containers are fairly monolithic, but this is fine for my needs as I’m primarily using containers as a way of managing the software versions vs. trying to build a scalable collection of micro-services.

When I initially started, I figured that I’d use the wordpress container. Now, as I run several wordpress based sites from lowtek, I was just going to run multiple containers and front it all with nginx to distribute the traffic, with of course nginx in a container too.

Along the way trying to get this setup to work, I learned a few valuable lessons about docker networking. The short version of this is if you want docker containers to be able to easily work with each other, create a docker user defined bridge network and make sure all of the containers you want to talk between each other are attached to that network. Now container A can talk to container B using the container name as the local DNS name and things just work.

WordPress generally doesn’t talk https, it’s really just http. This didn’t seem like a problem because nginx is pretty easy to setup with https and let’s encrypt to provide an always secure connection. Unfortunately since wordpress is running as a container itself, it doesn’t really know that it’s setup in a sub-directory nor that the correct URL for it is https. There are simple hacks you can do to the wp-config.php file to make this work, and I did finally succeed in getting all the bits happy. However, when I looked back at what I’d created – it didn’t make sense for the complexity I was dealing with. My nginx needed to reverse proxy to the wordpress containers. Each wordpress install needed extra magic to make it aware of where it was really running, and upgrades to wordpress were wonky because upgrading the container doesn’t really upgrade a running install (the files on disk are what matter).

So I bailed, and just installed wordpress into my nginx deployment. This was pretty straight forward. I added a MySQL container to host the data store for wordpress and everything fell together nicely. I just did a backup of the database on my old server, and an import on the new one.

Nginx makes it very easy to run a full https website. The linuxserver.io project has a well maintained image that includes let’s encrypt and everything I wanted. Unfortunately many links were to http:// – including images. Chrome, and I assume other browsers will follow, is starting to become more strict about mixed content pages. Also, Google search results tend to favour secured sites over non.

I found a good post that covered moving wordpress to a new URL, which is sort of what I want to do. I’m moving from http://lowtek.ca/roo to https://lowtek.ca/roo.

The key commands are:

This feels pretty scary, so two things. (1) I want to back up my database, and (2) I’d like to see what it is I’m about to replace.

Backup is actually really easy (this is why containers are cool).

To keep things a bit more brief, I’ll lay out the steps I took to success for the second part.

This only took care of one set of the links. I needed to also do post_content in wp_posts and meta_value in wp_postmeta. Reviewing my blog postings, nearly all of the posts/pages are now fully https with no warnings from Chrome about mixed content.

There were a few standouts. A couple of Creative Commons images I’d linked to needed to get fixed to use https. During the trip down memory lane I found a few busted posts due to images I’d linked which were no longer hosted at that location. I also came across the sad fact that some of my friends who used to host stuff, have let those expire or have changed it significantly enough the information I was linking to doesn’t really exist anymore.

This got me thinking about the state of the web today, and the fact that social media sites have taken over the websites people used to maintain themselves. It’s great to be able to easily communicate with friends and others via things like Twitter, Facebook or Instagram but it’s also unfortunate that there is a lack of diversity in how people are expressing themselves. There is also a lot less control you have over the information once you give it to one of these platforms to host for you. Maybe we’ll see the pendulum swing back a little.