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).
XMPP hosted via Raspberry Pi.
The setup is:
(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).