Yet again, Claude is down. Yet again, my local models just keep working. A case study in why the complexity of self-hosted AI is worth it.
Why I Run Local Models
Yet again, Claude is down. Yet again, my local models just keep working. A case study in why the complexity of self-hosted AI is worth it.
How to run Claude Code CLI in a Docker container so it can work on your code without running loose on your machine.
Needs must when the devil drives, and what I needed was a meeting-time countdown clock…
It’s been a while since I last wrote here. So long that I’m not sure the site build system actually still works - which is kinda why I’m writing this post; I’ve just migrated my git repositories to self-hosted Gitlab CE (this site uses a ‘gitops’ style of build and deploy using Gitlab CI and ArgoCD), and I need to check the whole thing still works - which means, I need to write something. The excuse for waiting so long is boring: I got a new job about a year ago, and it’s been busy.
But it hasn’t just been work keeping me busy; I’ve also been busy migrating all my digital ‘stuff’ onto self-hosted or European alternatives.
Well, unless you’ve been hiding under a rock, you’ll have noticed the President of the United States telling Europe that using US providers is a sign of weakness - and who am I to argue with such a towering intellect? So, over the past year, I’ve been quietly migrating everything I can to EU-based providers or self-hosted solutions. The challenge, as with any migration, has been finding suitable replacements that don’t compromise on functionality or reliability.
I’ve got quite a few migrations under my belt now, and I plan to document them properly in future posts:
VPS and Object Storage: Moving from Google Cloud Platform and AWS to Scaleway. Why Scaleway? Because they’re European, they’re GDPR-compliant, and their pricing is actually reasonable.
Cloud Storage: Ditching Google Drive and OneDrive for a self-hosted Nextcloud instance. Actually, I’ve been using Nextcloud for a few years now - but now I’ve migrated everything off Google and Microsoft, and am using it 100% - and as the storage backend for some of the solutions below.
Git Hosting: Migrating from GitLab.com to my own self-hosted GitLab instance. This post is the test run for that migration’s GitOps workflow. I might make this my first topic for more detail - because Dear God, the Gitlab Helm chart is badly documented…
Social Media: Trading Reddit for Lemmy on Kubernetes. Honestly, I’m still not sure about this one - ditching social media entirely seems an even better idea, and I can’t claim to be entirely Reddit-free yet either. But, suck it and see; first impressions are that it’s a more interesting social space than my experiments with Mastodon a few years ago, anyway.
Note Taking and Generally Organising Life: Moving from Notion to Joplin. Is the Joplin UI better than Notion? Absolutely not; but it is extremely nice to know where my data is being held (on my own servers!), and it’s not as if Notion was perfect either (their MCP implementation is completely broken, for a start.)
Collaboration Tools: Replacing Google Docs and Miro with Collabora and Nextcloud Whiteboard. Actually, replacing Google Docs (which is awful) isn’t the hard part here. The one service I really can’t find a good replacement for is Canva; on the one hand, Canva are as far as I know Australian (and Australia hasn’t threatened to annex any parts of Europe yet) so this isn’t top of my priorities, on the other it would be great to find a good open-source replacement.
So, in a world where the Internet is rapidly becoming overrun with the same old AI-generated SEO-optimised slop, I will endeavour to write up “How To” documents for some of the above, for any humans that do stumble this way to read. I can’t promise no AIs will be harmed in its generation (actually, writing up some more about current local-hosted AI models is also on the to-do list,) but I can promise it won’t be optimised. At all.
Photographs from this weekend’s Bucharest International Air Show at Baneasa Airport
Photographs taken in the National Museum of Natural History and Science in Lisbon. Which is DEFINITELY haunted.
A selection of photographs from Fatima, Portugal
Exposing Kubernetes services to the Internet securely using Cloudflare tunnels and a dedicated Ingress controller.
Some photographs taken in and around Bangkok this October.
Part two of the quest to deliver AI applications on-demand from Kubernetes. In this one, we’ll deploy a typical AI application, and configure it to scale up (and down to zero) on demand.