• 3 Posts
  • 96 Comments
Joined 13 days ago
cake
Cake day: October 31st, 2026

help-circle











  • XMPP hosted via Raspberry Pi.

    The setup is:

    • Prosody provides the XMPP server.
    • Converse.js provides web client / PWA.
    • Conversations for Android clients
    • Coturn provides TURN services for calls and NAT traversal.
    • Tailscale provides remote access without exposing the XMPP server directly to the public internet.

    (nb: also configured Message Archive Management (MAM) for chat history, private multi-user chat rooms (MUC), HTTP File Upload for media, and Jingle signalling for audio/video calls).

    The server is designed to be accessible over our LAN. When away from home, family members connect through Tailscale (I really should just use Android actions and geofencing to auto launch Tailscale, but on my kids devices, I just leave Tailscale enabled. I don’t think it hits the battery too hard). Tailscale can only connect to XMPP and we keep our XMPP to family only, with me manually adding devices to Tailscale as I need to.

    As for why? Because I get joy from hosting my own shit, having control over it, having it work when other stuff falls over. My stuff falls over too, but I know WHY and HOW to fix it, and that’s how I prefer it. I want to get to the point that if the internet dies tomorrow, I shrug my shoulder and barely notice.

    My goal is to replace all cloud based services we use and I’m about 85% of the way there. I have a much larger goal too…but that’s a story for a different time.

    PS: I’m mildly irritated about Tailscale use, so I’m looking at getting off that teat as well eventually for a self hosted solution. There are some issues with Headscale and I don’t want to punch holes in firewall if I can avoid it. Still thinking on it.

    PPS: Meshtastic, Reticulum etc all seem super cool…but until there’s interoperability simple enough for normies…good luck getting buy in. I struggle to convince the fam to use XMPP (weird issues with android clients, Tailscale drop outs etc).




  • “Guide” is doing a lot of heavy lifting there. There’s an infinity of difference between asking an AI to make something and using an AI to do the scutt work, looking over the code it made, running IRL tests, asking “why X? Why not Y?”, swearing at it like a junior dev, asking it to fix a,b,c then finally getting acceptable code.

    And even with all that - when you set it up correctly - it’s still faster than doing it yourself (in certain circumstances).

    It feels more like doing project management / “software engineering” than clacking the keys. It’s amazing how different LLMs approach the same task though; I find Codex to be much more by the book than Claude, for example. The Qwen’s are like Labradors - eager to please, clumsy, crash into things a lot. GLM and Kimi are different again. Etc.

    You can’t let anything just “make me X, make no mistakes”. By the time you type in a ticket (with GO/NO GO gates, acceptance criteria etc) you might be looking at 500-1000 lines of text (which is why a re-usable template and procedures are important). You need repeatable procedures, acceptance tests - the lot.

    And so it goes.