Skip to main content


Interoperability between self-hosted services


Plenty of us are using Docker, Podman, Incus, chroot jails, etc to isolate services.

It has become good practice and it makes setting up yet another service, usually, so convenient.

Some services like YunoHost, StartOS, Cloudron and others try to facilitate the process.

What I haven't seen though is a way to facilitate interoperability BETWEEN services we self-host. Sure there are plugins for each service, e.g. npmjs.com/package/peertube-plu… to provide XMPP chat for PeerTube, or anecdotal discussions e.g. github.com/jitsi/jitsi-meet/is… to embed PeerTube on Jitsi Meet.

So... how do YOU do it? How do you make on self-hosted service with another? Do you check after each one you install in the plugin category? Do you write your own plugins or extensions? Do you have a design pattern (e.g. Swagger API discovery with token generation per service, "cheat" via sockets, use a dedicate new service or even host) which you repeat?

I do ask because I bet most of you have a moment like this :

  • Hey how about we start this new project together?
  • Yes, let's change the World!
  • OK let's write manifesto.md
  • Where are we going to host it?
  • Hmmm we could use my Cryptpad instance...
  • OK but I don't get notification on my GMail, could we use GoogleDocs instead?

So... I feel like FLOSS self-hosting is honestly on-par functionality-wise with proprietary solutions. I might be bias but it's rare when I think "Damn... that's cool, shame I can't have it at home". I can nearly always (in fact I have a hard time thinking of an example) self-host functional equivalent solutions myself. The ONE thing that I feel is often missing is integration which relies on interoperability.

How do YOU it?

PS: this isn't about ntfy, PeerTube, HA or any specific service to a specific problem, it's about HOW to facilitate, when one wants to, already great services work together.

This entry was edited (8 hours ago)
in reply to utopiah

My process typically goes:
ooh, shiny new service!
If it has a docker compose, I'll read up a little more on it, then set it up.
At that point, I'll cry a bit in having to change my nginx config, because it's new and unsupported, figure out what's actually needed, then realize I didn't set it up with authentik or even check if it was supported.
Usually I'll dig around and someone got something close, so I'll set it up that way, and if it works, great! If not, dig through the documents.

Any further interoperability is luck based.

(I'm currently trying to get element-call working before I open it to my family, the whole matrix stack is leaving me scarred )

in reply to Tolookah

Yes I can relate to the process.

Any further interoperability is luck based.


Unfortunately I can relate to that, hence the question here :D

in reply to utopiah

Can't say I've run into a need for such consideration yet. Excluding stacks explicitly meant to work together to some degree most of my services are an island to themselves and I like it that way. Then as far as notifications are concerned pretty much every supports at least email or ntfy.sh.
in reply to themachine

most of my services are an island to themselves


same

and I like it that way.


... well that's the part I'm challenging. I was thinking like this but I'm wondering if that could be improved.

PS: I use ntfy and like it, that was just an example.

This entry was edited (8 hours ago)
in reply to utopiah

… well that’s the part I’m challenging. I was thinking like this but I’m wondering if that could be improved.


Do you have a specific use case for two containers that you want to talk to each other? There are some Docker containers that will cozy up, but as you point out, there are some that don't. Maybe it would be worth the time to consult with the dev teams of said containers, and see if they have any suggestions or ways to go about it. It would seem to me that would be your best point to deviate from. Couldn't hurt. I would create a defined road map of what you are trying to accomplish before hand, and run it by the dev teams. Just give them a little time to respond. They are real people with real lives too.

As I'm thinking about it, I wonder if your solution might be automation? Something like n8n might allow cross container exchanges. Of course, those data points have to be present for you to tap them tho.

This entry was edited (4 hours ago)
in reply to utopiah

It sounds like you're describing Home Assistant? HA has a ton of integrations into a lot of self-hosted services not just IoT devices.
in reply to yaroto98

Well I do have Home Assistant, been running it for years, but HA is solely for ... well home assisting (or IoT). HA as integrations but let's say I want to use HA with ... any of my other services, e.g. CopyParty to maybe store logs and makes them available or PeerTube to have videos from my camera, I can look at HA integrations, or CopyParty... issues maybe, or PeerTube npm registry.

My point being that HA is a good example with integrations but it's just one example. If I do take this example seriously though, is there a mechanism beside manual search in the list of integration that would list integrations with my services directly?

in reply to utopiah

re #HomeAssistant integrations, you can also look at what is available under #HACS library, search or ask for help in any of the community forums for #HA such as community.home-assistant.io or on reddit, discord , git hub. It integrates nicely with #homebridge and also with containerized systems e.g., docker, portainer.
in reply to utopiah

#YunoHost, #StartOS, #Cloudron, #coopcloud, #uncloud and the people that write the recipies for the applications running on them are the answer.

Modelled solutions that check for related applications as they install are the way that encourage more people to self host by making installation, configuration, backup, update and removal easier.

Selfhosted reshared this.

in reply to abeorch

Thanks, are you saying there is a mechanism in place, e.g. does YunoHost suggests plugins or integrations for services it manages?
in reply to utopiah

Hmmm we could use my Cryptpad instance...
OK but I don't get notification on my GMail


😡 ntfy.sh 😡

in reply to artyom

eh... yes thanks and I do actually have ntfy (I also warmly recommend it) but this was just an example.