view the rest of the comments
Selfhosted
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:
-
Be civil.
-
No spam.
-
Posts are to be related to self-hosting.
-
Don't duplicate the full text of your blog or readme if you're providing a link.
-
Submission headline should match the article title.
-
No trolling.
-
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.
-
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:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
In a weird way, for most people Docker is just used to compensate for problems that Windows used to have but doesn't really anymore. Often on Linux when you install something it gets dumped into a shared prefix like
/usror/usr/localor has dependencies on libraries that are installed into/libor/usr/libor/usr/local/lib. If the libraries are versioned correctly, it's usually not a big problem that the applications are sharing components, but sometimes shared files conflict with each other and you end up with something similar to the old Windows DLL hell, especially if applications are not officially packaged for the distro you're running. Using a container image avoids this because only the correct libraries and support files are in the image, and they're in a separate location so they can easily be swapped without impacting other applications that might be using similar files.However, on Windows these days it's highly discouraged for programs to install things into common directories like that. Usually when you install an application it installs everything it needs into its own directory. For the things that Microsoft puts into shared directories, there's a system called SXS that's supposed to prevent conflicts with incompatible versions. It's not perfect because there are still cases where you can get interactions, but it's pretty uncommon now.
That's a good point. I run all my server type apps on FreeBSD which avoids dependency issues by versioning things that aren't compatible. for instance you can install php7.4 or 8.1 as packages php74/php81 and different things that require those are compiled to look for the right library. I kinda wish linux would consider the same thing but idk if individual distro maintainers would want that kind of extra work