Well, I did manage to figure out where I went wrong with FreshRSS. I was looking at the docker compose from the linuxserver folks, and they only listed a single volume in the compose file. When I hunted down the FreshRSS docker compose file I saw they were listing 4. I split the difference and went with 3.
- /volume1/docker/freshrss/config:/config
- /volume1/docker/freshrss/data:/var/www/FreshRSS/data
- /volume1/docker/freshrss/extensions:/var/www/FreshRSS/extensionsI’m pretty sure all you need is the first 2, but if it ain’t broke…
Anyway, I’ve been having a lot of fun tearing down and rebuilding all the docker containers several times over. Why? Well two things - first is getting tsdproxy working, and that forced me to update some other docker container configurations (labels for tsdproxy and homepage more on that in a minute.) So far every thing has survived and my persistent data has persisted.
The other reason is that one of the things I wanted to have for all my selfhosted stuff was a launch page. Having everything with a dedicated URL from my tailnet and tsdproxy is super helpful, and lets me connect to everything from almost anywhere by typing in the subdomain (tailscale MagicDNS does a sort of search domain for your tailnet automatically). But I want to just single click and BOOM I go straight to the service I want to access.
I had been using Heimdall previously, and it’s great but you have to manually update it when you add a new service (or at least that is how I’m pretty sure it was once but may have changed and I missed it). So I kagi’d around (yes, I pay for search, and it’s been mostly positive (#notSponsored, #notAReferralLink #butIWouldntTurnDownSponsorBucks )) for a docker integrated dashboard/launchpad thing and found Homepage. I do need to add about 4 labels to every docker-compose config file (plus 2 for tsdproxy) - but that creates whatever section I want the menu item to land in, gives the card a title and a little description, and links it to the tailscale address it got from the tsdproxy labels.
The menu card can tie into the docker socket and get memory, cpu and network stats for each container, along with a top level widget with that type of info for the server itself.
There are some other features, like customizing the theme or pulling data from an API, and I’m sure I’ll loop back around to do that eventually. I do have a weather station, might be nice to have that info on the launch page - might also just be easier to look outside.
Overall I’m pretty happy with the setup. I used the “add to homescreen” feature in iOS to make my homepage into an app like experience. (Fun fact, this does remove the URL bar from the webpage.) And as long as I have Tailscale connected on my phone I can get to any of the apps from anywhere I have network connectivity.
I’ve added KaraKeep to the stack, and set up the browser extension. I need to get used to using it, mainly so when I write about finding something online I’ve actually bookmarked it and can link it in the article. (d’oh) It has some ability to tie into an LLM for automatic tagging and article summarization. I’m trying to get lemonade set up on a system, so maybe I’ll hook the two together once I sort out my configuration issues. There’s also a plugin to connect it to Obsidian that I need to set up. No point in having a second brain and not putting that data into it.
One last tidbit for this post - I learned about this plugin for templates in NeoVim (which is my goto editor and IDE for most things including this blog) and I’ve figured out enough to put all the hugo related front matter into the files I use to write this blog. I need to dig in a bit more to set it to only apply to markdown files in the blog working directory, but that’s an adventure for another day. There is one unintended consequence of this, it adds the lastmod: [':git']
frontmatter, and that causes a local hugo serve command to throw errors if I haven’t added the post to my local git repo. Not just git add but actually doing a git commit because it needs a commit date to calculate against. (Or at least that’s my working theory for the moment.) Not sure if this will make me into a more diligent git committer or if that’s a good or bad thing. Time will tell.
