Dropserver Progress - October 2024

This is the progress report for Dropserver for October 2024. Here is last month’s report.

Dropserver 0.13.3 released

As I mentioned last month I released ds-host and ds-dev version 0.13.3 with support for Deno 2.

I updated to 0.13.3 on my personal instance of ds-host, which happened without a hitch. I am still using Deno 1.x because I haven’t updated all my apps to work with Deno 2.

Update Leftovers and Shopping List for Deno 2

The changes to Leftovers and ShoppingList for Deno 2 were trivial in nature (though I still wish there were none). I did have to submit a one-line PR for deno-sqlite that removes a TypeScript error. The patch was merged and a new release tagged in a couple of days so I could use it right away. Nice!

Commit ba5446a for Leftovers. Commit 51b753c for ShoppingList.

I packaged and published each which reminded me that an automated packaging and distribution system using GitHub Actions (or similar) would be a nice addition.

Getting the new versions installed on my instance was trivial thanks to the work I did earlier on app distribution and installation.

ds-dev Screencast

I upgraded my screen-casting setup this Summer, so it was time to record my first proper video. It walks you through some of the experience of using ds-dev to develop an app for Dropserver.

Have a look at it in the app development tutorial page here.

I realized after publishing it and listening to it using headphones that the keyboard makes a booming sound when I type on it. I’ll try to fix that for the next one.

Vacation 🏖️

I took one week (plus weekends) off this month for a family reunion. One week is short enough that when I get back to work it doesn’t feel like I have left too long, so I was able to get right back to it.

Back to Tailscale Integration

Last month I thought the next big task would be to capture user info from the tailnet backend and merge that with appspace users. This is definitely looming, but there are a number of other details that need to be sorted out first.

I started on some basics like capturing various aspects of node status and reflecting it live on the ds-host frontend. This helps me understand what is happening with the node as it goes through various states. I’ll package the UI up better later, I consider this debugging output for now.

I’m finding Tailscale integration to be tricky to get right because data about each node (such as its URL, ability to use HTTPS etc..) comes from the Tailscale backend, and can change at any time.

Example: when creating a node, you can set a host name, like “leftovers” and the resulting URL will be https://leftovers.tailxyz123.ts.net. But! it might actually be leftovers-1.tail... Or it might start as “leftovers”, but it can be changed at any time from the Tailscale UI. So ds-host can express preference but it’s the backend that controls and can change things at any instant.

This is one reason I spent time last month working on a more solid events system using Server-Sent Events and I am taking the time to build out the events that carry Tailscale data all the way to the frontend. Things can change at any second, and I don’t want users to get into confusing situations because the data they see in the Dropserver UI (like the URL of the node) is no longer correct.

I am getting a handle on all of this. In fact I recorded a quick screencast to show the dynamic URL in action:

(Note the lack of booming keyboard sounds thanks to this trick!)

I’ll be doing more of this kind of work: absorbing data from the tailnet and merging it with ds-host’s view.

Keep On Keepin' On

Difficult day today in the US. But we keep going. One day at a time. See you next month.

Olivier Forget

Los Angeles, USA
RSS Email Mastodon

Aerospace Engineer turned sofware developer and bootstrappin' entrepreneur.