Perfect Todos

Not a ton of progress. I replaced the large logout button with a dropdown. Nothing crazy.

The image shows a white rectangular button with the text "Log Out" displayed in black letters.

For now, I'm using a Shoelace web component for this. There will probably be a couple of other things there in the future. I still haven't figured out the best way to handle the flash of unstyled content when using web components. Right now, I fade it in when it gets defined:

sl-dropdown {
    opacity: 1;
    transition: opacity 500ms;

    &:not(:defined) {
        opacity: 0;
    }
}

I don't love this, so I might try something more like what the Shoelace creator recommends on GitHub. My problem is that not every page has web components, let alone the same web components. So I would need to find a way to register the components I'm using on each page. It’s kind of annoying.

Perfect Finances

This is a little app my wife and I use to keep track of our spending. I fixed a little timezone issue this week. Transaction dates are stored in the DB as UTC. We live in ET, -5 hours right now. This would result in some transactions showing up in an unexpected month. I still store them as UTC, but now I display them as ET and adjust my query to adjust dates so transactions show up correctly. Win.

Watchtower

I've been manually updating containers on my Synology when I make changes to my apps. It’s not a ton of work, but still more than I'd like. I set up Watchtower on my Synology to keep a couple of containers up to date. But out of the box, it can only update public images. So it was of limited use to me.

That changed this week.

First, I set things up so it could pull my private images from GitHub. This was pretty simple with a config file. So now Watchtower would check every hour if there were new images. This was better, but still not ideal. I would like more immediate updates.

I'm not sure why this didn't come up when I was Googling for solutions, but turns out Watchtower has a HTTP API Mode. It exposes an /update An endpoint that triggers Watchtower to check for new images! This is exactly what I wanted.

Now, my GitHub action will build a new image, publish it to my private registry, and then use… curl I used to hit my Watchtower container and tell it to check for updates. Within a couple of minutes, after pushing to GitHub, my changes are deployed. Chef's kiss.