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. https://www.npmjs.com/package/peertube-plugin-livechat to provide XMPP chat for PeerTube, or anecdotal discussions e.g. https://github.com/jitsi/jitsi-meet/issues/7601 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.

  • themachine@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    ·
    4 months ago

    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.

    • utopiah@lemmy.worldOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      4 months ago

      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.

      • irmadlad@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        4 months ago

        … 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.

        • utopiah@lemmy.worldOP
          link
          fedilink
          English
          arrow-up
          2
          ·
          4 months ago

          Do you have a specific use case for two containers that you want to talk to each other?

          Sure, for example once a Jitsi Meet meeting ends (more than 1 person in a room in, everybody gone), save the chat log to CopyParty e.g. WebDAV push to /meetingname_date.txt would be enough to be useful. It’s something we tend to do manually on a regular basis.

          road map of what you are trying to accomplish before hand, and run it by the dev teams.

          Yes no rush and I can code so I would be able to test before suggesting anything.

          As I’m thinking about it, I wonder if your solution might be automation?

          I don’t touch AI but I do think conventions, e.g. not “just” an API but SWAGGER, specific filesystem on mountpoints, etc could facilitate this.

          • irmadlad@lemmy.world
            link
            fedilink
            English
            arrow-up
            1
            ·
            4 months ago

            I don’t touch AI

            Automation doesn’t always mean AI. The app I mentioned, n8n, has two versions: with and without. The plain n8n app is very capable of doing a ton of stuff.

            • utopiah@lemmy.worldOP
              link
              fedilink
              English
              arrow-up
              2
              ·
              4 months ago

              The plain n8n app is very capable of doing a ton of stuff.

              Sorry if I’m a bit slow but what does it actually do? I skimmed through “automations” earlier this morning and I mostly found paid-for GenAI related stuff.

              • irmadlad@lemmy.world
                link
                fedilink
                English
                arrow-up
                1
                ·
                4 months ago

                You’re not slow…sheesh.

                The version I’m using does not include AI, basically because I don’t have the equipment to run AI 100% local, and n8n AI makes you tap public AI outlets. Both versions are available. The community version of n8n is open-source.

                A workflow:

                spoiler

                n8n is a workflow automation platform that gives technical teams the flexibility of code with the speed of no-code. With 400+ integrations, native AI capabilities, and a fair-code license, n8n lets you build powerful automations while maintaining full control over your data and deployments.

                There are over 400 different integrations: https://n8n.io/integrations Of course, the AI stuff you can skip. And when you get to the point of proficiency, you can build your own templates and workflows.

                For instance, here is a workflow designed to automatically convert media: https://noted.lol/self-running-video-encoder-bash-n8n/

                Another example is pulling logs: https://noted.lol/system-log-dashboard-n8n/

                There are literally endless things you can integrate and build with n8n.

                https://n8n.io/

                https://noted.lol/tag/n8n/