Reviewing InvoiceNinja 5 Self-Hosted

It’s been a whirlwind year working with InvoiceNinja 5, a web-based accounting package you can run in the cloud, or on your own server (self-hosting). Think of it as Freshbooks, but running on your own servers. I’ve run through self-hosting every version available, testing with dummy data, pulling out my hair, migrating from Quickbooks and […]

Updating Docker containers safely

For anyone who runs one or more docker applications, a huge challenge is to keep containers running smoothly with updated images. You could force updates with tools like Watchtower, but these may just automatically break your applications. Here are some of the ways I make sure docker applications stay up-to-date while failing as little as possible. This only covers docker run/create and docker-compose (for now). Here’s what I do.

The best books I read in 2020

A year has come to an end, and with it, a year of reading. This year I’ve read more than 120 books published in several generations. Reading old, new, printed paper, electronic, or audiobook, I work hard to make use of a spare moment to dig in. With my reading, I’ve also tried to review books more here and most recently on Instagram at @cwlmedia. Reviews and not-taking, in general, can be challenging on the best of days, but doing it has helped me make better sense of books I read and pass on thoughts to others. So many of the books I choose to read are good, but some really do rise above and are worthy of more attention. So, without further delay, here are the best book I read this year.

Fun with Discourse on Docker

Discourse is a popular forum tool available as a self-hosted open-source tool. It can be installed bare-metal on Linux, but the Docker installation is one that I found most interesting. Unlike most Docker-implemented tools, Discourse has a script that runs outside of the docker containers (on your base machine) to set up the tool. This monolithic script (./discourse-setup) seems to do many of the things that docker-compose does, but obviously worse. I’m no fan of doing things this way; especially when the base alternative is nowhere on their site. My challenge this time was to build a basic docker-compose.yml that would get Discourse running in a test environment. Here’s what I did.

Resetting a Unifi Controller’s admin password

If you use Unifi gear, you know that it can proliferate quite fast. Couple that with cameras, a second network for cameras, and you have a growing need for more Unifi controllers to manage devices. The best approach is to, uhm, unifi controllers into a cloud-based setup – but you can’t always do that. When controllers get isolated on networks, you may find that you’ve lost the administrator password for one. Here’s how you can reset it so long as you have root shell access to the machine running your controller.


Let me reflect on this, I thought. That seemed like the most important thing I could do after reading Greenlights by Matthew McConaughey. Both a memoir and a book of advice, McConaughey is clear in his book not to call it ‘self-help.’ The titular greenlights being a metaphor for life’s moments that work. How every red light is bound to turn green eventually. It’s a cool and clever idea. I like it.

The strange regression of Unifi and its NVR

The UNVR-4 appears to be designed to evade any sense that it was built for business. Let me take you into the issues I encountered while setting up. Given a robust product, these issues would have been uncovered and I’d have moved on to the next thing. But, because of Unifi’s extremely minimalist design, getting at details was difficult.

What a lot of people are saying

Given the election season of 2020, I wanted to dive deeper into the divisions that have stricken the U.S. I thought this book might shed some light on issues of the day. A Lot of People Are Saying: The New Conspiracism and the Assault on Democracy by Russell Muirhead, Nancy L. Rosenblum felt like the right book for today’s wild political climate.