this post was submitted on 19 Nov 2025
28 points (93.8% liked)

Selfhosted

61451 readers
610 users here now

A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.

Rules:

Detailed Rules Post

  1. Be civil.

  2. No spam.

  3. Posts are to be related to self-hosting.

  4. Don't duplicate the full text of your blog or readme if you're providing a link.

  5. Submission headline should match the article title.

  6. No trolling.

  7. Promotion posts require active participation, with an account that is at least 30 days old. F/LOSS without a paywall has exceptions, with requirements. See the rules link for details. Tags [CBH] or [AIP] are required, see the links in Rule 8 for details.

  8. AI-related discussions and AI-involved promotional posts have additional requirements for tagging, as noted in Rule 7 and the AI & Promotional Post Expanded Rules post, and find example disclosures here.

Resources:

Any issues on the community? Report it using the report flag.

Questions? DM the mods!

founded 3 years ago
MODERATORS
 

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.

you are viewing a single comment's thread
view the rest of the comments
[โ€“] non_burglar@lemmy.world 3 points 8 months ago (1 children)

APIs. Or the ends are achieved by sharing data between apps in common data storage. But I prefer to be a tourist in my infrastructure, I no longer hand-bomb changes to systems.

My design pattern is essentially to integrate more and more of the container creation into config. Right now I'm using ansible and it's nice. More automation means troubleshooting has fewer variables.

I had issues yesterday with a package upgrade across several containers, and it ended up being two config changes. I cycle the apps and done. That's it.

[โ€“] utopiah@lemmy.world 1 points 8 months ago

Indeed and for PeerTube for example it has an API, cf https://docs.joinpeertube.org/api-rest-reference.html which I did use. It also provides SWAGGER so that could facilitate integration with others services also providing APIs. I was starting to think that the meta service could have read only public only token generated for each new service and provide a SWAGGER endpoint to facilitate using the API of more than 1 service.