Everyone (and their mother) have been trying to convince me that I should use one of my less loaded servers to be a Fediverse node. However, all Fediverse software packages I checked only support being installed on complicated systemd + Docker machines. My servers don’t have either of those, because neither systemd nor Docker even exist on OpenBSD and illumos.

I know that it would be possible to manually install (e.g.) Lemmy, assuming that I won’t ever need official support, but I wonder why the world outside a limited subset of the Linux ecosystem is - at most - an afterthought for Fediverse developers.

How can I help to change that?

  • Ugh, I wanted to make a few sublemmys but if it’s that much work, forget it. One thing that’s lacking around here are the shitposting subreddit equivalents. r/Copypasta, r/shittyaskreddit, r/okbuddyretard, that kind of thing.

  • 80/20 rule.

    When you are creating something like Lemmy, where you want wide uptake, you need to pander to the masses.

    The /r/selfhosted surveys show around half of self-hosters mostly or exclusively use docker. A significant portion of the rest can use docker if needed.

    If you’re in the 20% that isn’t covered by the most common setup, then it can be frustrating. But supporting that 20% takes as much effort as supporting the other 80% (see 80/20 rule), and when things are new it’s just not where the effort should be focused.

    So you have all those servers, but why can’t you install debian or ubuntu server on one of them?

    You could also get a $2/month VPS and run it on that. Beehaw is run on something similar (though apparently $12 a month, but a lot more users).

    •  rhabarba   ( @tux0r@feddit.de ) OP
      link
      fedilink
      English
      51 year ago

      So you have all those servers, but why can’t you install debian or ubuntu server on one of them?

      I could. Personal opinion: Linux is frustrating to use for me, and I prefer my servers to bring me joy.

      •  Mersampa   ( @Mersampa@beehaw.org ) 
        link
        fedilink
        English
        8
        edit-2
        1 year ago

        You don’t have to host a node if you don’t want to.

        But if you do, you may find it’s surprisingly easy to set one up with very little technical knowledge. Docker has benefits in containerizing, yes, but it also makes things easy (which is why it’s so popular).

        In most cases you just install Linux, run through the docker install process (many VPS providers can do these first two parts for you), download a pre-made docker-compose.yml file from whichever service you are trying to run, then run “docker compose up -d” and it just works.

        Running more services on the same machine, adding a reverse proxy, etc, require a bit more work. But once you have those set up it’s simple to integrate further services running in docker.

        But let me reiterate my first point - just because others are asking you to do something, doesn’t mean you have to do it :)

        •  rhabarba   ( @tux0r@feddit.de ) OP
          link
          fedilink
          English
          71 year ago

          This question is not as easy to answer as it seems.

          Eleven years ago - that was before systemd - I was still using Linux on one of my desktops (Fedora) and my only server at the time (Debian). Independently of each other, both systems refused to start after an upgrade, so I had to replace them; on the desktop I ended up with Windows for a long time (in the meantime I’ve switched to macOS), on the server a FreeBSD worked first. From FreeBSD I later migrated to OpenBSD and illumos, all three systems have their own merits and solve problems that the other systems have.

          As to the “OpenBSD vs. Linux” question, I’ll be brief:

          • OpenBSD just works. No need to be careful during installation, no surprising problems with the init system after an upgrade.
          • OpenBSD’s man pages are exemplary, Linux could take a leaf out of its book.
          • OpenBSD largely adheres to standards. The GNU tools do not always do so. This is a pity, especially with the C compiler.
          • Because the OpenBSD team maintains a complete system and not just a part of it, OpenBSD does not look like a patchwork, but is self-contained, which also has positive effects on security. OpenBSD itself advertises its good security statistics, not entirely irrelevant for servers.
          • sysupgrade is a great tool that has no equal.

          I think this list could be continued.

          • Thanks for your answer, being fairly out of the loop on all of this it’s quite interesting to hear. I’ve also experienced a number of upgrade pains. I’m quite diligent with storing important data external to the OS, but it still sucks when the only real option is to nuke the drive and install again.

          • @tux0r @strudel6242 I don’t wanna be that person, but ‘btw i use arch’ and I think you might like Arch Linux (or Gentoo if you aren’t keen on systemd, the only difference being with Gentoo you compile most stuff yourself, whereas with Arch you only compile some stuff yourself) But both Distros have minimal overhead, aren’t junk (like Ubuntu) and have very broad and active support for a lot of stuff. Especially with the AUR, there is almost nothing I can’t get on Arch

            •  rhabarba   ( @tux0r@feddit.de ) OP
              link
              fedilink
              English
              5
              edit-2
              1 year ago

              I even had a Gentoo installation before I bought a MacBook. (I had a variety of laptops at some point.) However, I also broke Gentoo - by updating the kernel. Apparently my configuration was insufficient somewhere, anyway it didn’t boot up anymore.

              I like Gentoo, but it still carries some shortcomings of the Linux ecosystem. On top of that, the necessary compiling of (almost) the whole system takes more productivity than expected.

  • I have set up my Mastodon and Lemmy instances on my VPS using YunoHost.

    On the plus side, it makes setting up server software ridiculously easy. It took me about an hour with each app.

    The downside is the packages are community-supported, and often run a version or two behind the official release. For example I’m still on Lemmy 0.16.7. Still, I think it’s a great option if you want a more hands-off experience.

  • I wonder why the world outside a limited subset of the Linux ecosystem is - at most - an afterthought for Fediverse developers.

    I hate to break this to you, but OpenBSD is an antiquated OS masquerading as a modern one, and OpenBSD’s lack of willingness to support modern standards results in the difficulty you’re having.

    OpenBSD feels like it’s been duct taped together for decades. Anything “new” seems to just be, “sorry, not possible.” The OpenBSD kernel doesn’t support WiFi 5GHz. The OpenBSD kernel doesn’t support even the minimum subset of isolation features in order for Docker to function properly. Why? Because OpenBSD refuses to add these features to their kernel. There are very likely other syscalls and basic features any given open source project needs, even if it’s not being run in Docker, that simply do not exist under OpenBSD due to the very limited kernel it provides.

    You’re upset because open source projects don’t support a platform that is old and developer-hostile. Turn your frustrations on OpenBSD - these projects would gladly support OpenBSD if they could.

    •  Juniper   ( @juni@skein.city ) 
      link
      fedilink
      English
      11 year ago

      Calling OpenBSD “ducked taped together” feels rather crassly inaccurate. I won’t pretend it’s particularly modernized, but thats not a requirement for a lot of people using it. For many use cases, including many of mine, OpenBSD is easily the most consistent and quality Unix environment out there.

      OpenBSD has, for a very long time, had their own isolation features, and have their own implementation of a myriad of modern kernel functionality. What they explicitly do not have is clones of Linux syscalls, which is why things like Docker (and Wayland, for that matter) do not work. And while unfortunate, I do not believe every Unix-like should be forced to imitate the Linux syscall API, as that is exactly what leads to the “duct taped” feeling other Unix-likes suffer from.

      That said, I also do not blame FOSS developers for deprioritizing OpenBSD as a platform, as it is one of the smallest actively maintained Unix systems, and time is not infinite.

    •  rhabarba   ( @tux0r@feddit.de ) OP
      link
      fedilink
      English
      11 year ago

      I hate to break this to you, but OpenBSD is an antiquated OS masquerading as a modern one, and OpenBSD’s lack of willingness to support modern standards results in the difficulty you’re having.

      Ok, let us assume for a moment that “modern” is the same thing as “great”: why do people still use Linux’s terminal, which emulates an actual 70s line printer, although there have been superior input capabilities since the 80s?

      • That’s irrelevant to this discussion. I was talking about OpenBSD’s lack of kernel features and driver support.

        As for the Linux vs OpenBSD terminal comment, I feel like you’re grasping. What does OpenBSD’s terminal do better? We have had augmentations on top of the Linux terminal for years, adding things like auto complete and syntax suggestions that the 80’s could never have dreamed of.

        •  rhabarba   ( @tux0r@feddit.de ) OP
          link
          fedilink
          English
          11 year ago

          What does OpenBSD’s terminal do better?

          Nothing (well, depending on whether you like the ksh), and I never said it was. The point is that a terminal is not modern either, it’s actually the exact opposite of modern, yet you’re happy with it.

          I was talking about OpenBSD’s lack of kernel features and driver support.

          OpenBSD has more reliable WiFi on a ThinkPad than Linux has ever had - at least for me. It seems that “lack” is a highly subjective term.

  •  Rentlar   ( @Rentlar@lemmy.ca ) 
    link
    fedilink
    English
    61 year ago

    Not that I wouldn’t want a Lemmy server to be easier to host and set up, but perhaps the difficulty is one of the things keeping troll and bot servers out in addition to good and common sense moderation.

  •  dan   ( @dan@upvote.au ) 
    link
    fedilink
    English
    51 year ago

    It’s “annoyingly hard” because you’re not using modern tooling. If Docker is unavailable on your preferred OS, then that OS is stuck in the past. Simple as that.

    Docker makes it easy to install a program, including all its dependencies, in a repeatable way. Since you’re familiar with BSD, it’s similar to jails except with better isolation, fewer security holes/issues, and the software you want to run is preinstalled. Docker containers are essentially mmutable which makes upgrades easy - just throw away the old container and replace it with the new version. (persistent files are stored separately, in “volumes”)

    You can of course manually install the same software by looking at the Dockerfile and manually performing the same steps, but there’s no guarantee that it’d work well on an unsupported OS.

    •  rhabarba   ( @tux0r@feddit.de ) OP
      link
      fedilink
      English
      11 year ago

      It’s “annoyingly hard” because you’re not using modern tooling.

      Calling Docker “modern” is a stretch, as it’s not much more than glorified Solaris Zones, but please enlighten me: Which feature of a federated web application requires modern tooling?

      Since you’re familiar with BSD, it’s similar to jails

      OpenBSD does not have jails.

      except with better isolation

      How so?

      fewer security holes/issues

      Actually, not using Docker prevents a number of security holes/issues.

      and the software you want to run is preinstalled.

      If you grab an image with it. You could as well just grab a tar archive with it… with less side effects.

      Docker containers are essentially mmutable which makes upgrades easy

      And security patches impossible.

      •  dan   ( @dan@upvote.au ) 
        link
        fedilink
        English
        31 year ago

        Calling Docker “modern” is a stretch, as it’s not much more than glorified Solaris Zone

        And yet the OS you’re using doesn’t support it. Hmm.

        OpenBSD does not have jails.

        Sorry, I didn’t realise that these are FreeBSD-specific (I guess? I’m not too familiar with BSD)

        Which feature of a federated web application requires modern tooling?

        Deployment. All web apps and APIs are moving towards containerization - Docker for smaller scale deployments, and Kubernetes for large-scale deployments.

        except with better isolation How so?

        I didn’t think jails had CPU, memory, or process limits similar to what cgroup2 provides, but it looks like this functionality was added to FreeBSD at some point. Sorry for the incorrect information.

        Actually, not using Docker prevents a number of security holes/issues.

        Sure, Docker has had a few issues, but overall it’s more secure to run your apps in Docker containers. If an app gets compromised, the attacker will generally be stuck inside the Docker container rather than getting access to your entire system. If you’re worried about (very rare) container escape security holes, using unprivileged containers helps - You can run the app inside the container as an unprivileged user, and you can also run the entire Docker container as an unprivileged user on the host system.

        And security patches impossible.

        Security patches are easier than if you used a tar archive to install the software. With a tar archive you threw into /opt or whatever, the app and its config/data are often stored together, so you need to be mindful of things like not overriding customized config files. Since Dockers containers are immutable and all the actual data is stored elsewhere, it’s always safe to delete the container and replace it with a patched version.

        •  rhabarba   ( @tux0r@feddit.de ) OP
          link
          fedilink
          English
          11 year ago

          And yet the OS you’re using doesn’t support it.

          It would, but Docker doesn’t support it. I’m not sure how this means that the OS was worse.

          Sorry, I didn’t realise that these are FreeBSD-specific

          They are, including its descendants (that includes the FreeBSD 4.8 fork DragonFly BSD).

          Deployment.

          How is “run this black box of arbitrary software, requiring a kernel module and numerous services” a superior deployment than tar xf application.tgz? Just because people do it, people could still do the wrong thing. Not every website is Facebook.

          Sorry for the incorrect information.

          No problem. I was genuinely curious.

          Sure, Docker has had a few issues, but overall it’s more secure to run your apps in Docker containers.

          Docker imposes additional attack vectors to the underlying system, a (for example) backdoored PHP application running inside an OpenBSD chroot (OpenBSD runs its built-in web server inside chroot by default, so web applications can never reach anything outside the web folder anyway) does not, if I understand you correctly. I know that you consider the 1979 technology chroot to be not modern, but I wonder which security feature is missing.

          Since Dockers containers are immutable and all the actual data is stored elsewhere, it’s always safe to delete the container and replace it with a patched version.

          What if nobody maintains the container anymore, although the software itself is still maintained?

  • Not sure about other companies, but at the few I’ve been developing for lately it was just way easier to setup a nice pipeline and developer environment with standard Linux systems + docker, so path of least resistance.

    If you could troubleshoot your way through and write up a guide I’m sure any of the projects would take a PR. My guess is just a lack of devs experienced in the area or that they have limited time to even investigate the possibility.

  • The ever-changing landscape of new software.

    I took a look at the manual [Lemmy] installation and it doesn’t seem to terrible… a few scripts and you can get updates, even…

    I’m with you, tho; while I run a few services on Docker, ansible and the like - I prefer to spin things up in a normal filesystem that I can look at, touch and see operating.

    We’re continuing to move away from the norm… UGH.

    • pAULIE42o
    • . . . . . . . . . . .
    • /s
  • That’s an interesting question. The percentage of servers (with the exception of routers, and other consumer appliances) that run OpenBSD (and variants) is actually extremely low when compared to the amount of servers running Linux. That being said you CAN set it up yourself, rust can easily compile to a binary that works with openbsd by using the target x86_64-unknown-openbsd.

    As another commenter said here, *BSD is very far behind the developments of Linux, when compared to developer experience. And realistically, unless you’re a huge organization that can dedicate a team of engineers just to manage your system, perhaps because your business is one of those antiquated companies that hate the GPL, or you’re someone who likes getting into the weeds, there is no reason to ever use *BSD in a modern system.

    •  rhabarba   ( @tux0r@feddit.de ) OP
      link
      fedilink
      English
      4
      edit-2
      1 year ago

      And realistically (…) there is no reason to ever use *BSD in a modern system.

      In my very personal opinion, there are a few not entirely unimportant advantages to using OpenBSD over Linux (and I suppose users of the other free BSDs have similar lists, but I no longer use any other free BSD):

      • Culture. Basically, “shut up and hack”. Not wasting the time of project members with dissolute thoughts about social interference, but devoting themselves exclusively to improving the technology so far, leads to the fact that (much like NetBSD) all sorts of technical achievements came out of OpenBSD, including OpenSMTPD, OpenSSH and LibreSSL. Linux to me often seems more like a support group than a technical project.
      • Predictability. The Linux community seems to constantly need new completely different approaches to everyday things. The systemd debacle with numerous reports of computers no longer starting (or shutting down) is not yet over, and there is already debate about the now-but-really future of the desktop. Many Linux distributions do not know anything like an “upgrade”, the normal approach to a new version is “download the installation DVD and start it”. In OpenBSD it is essentially three commands (sysupgrade, reboot, sysmerge) - and it has never happened to me that after rebooting I was suddenly sitting in front of a completely different system. Yes, all this may not be cool - but predictability seems to me to be a not entirely irrelevant feature (also and especially for large companies).
      • History. Linux is a clone of Minix, which is itself essentially a clone of BSD, which was not yet free software in 1991. You might as well use the original, right? ;-)

      edit: See also my previous answer for further advantages.

      To quote Linus Torvalds:

      If 386BSD had been available when I started on Linux, Linux would probably never had happened.


      The GPL licence is not a free licence, rather the opposite. But let’s assume that the licence debate is actually relevant: Why should a company that needs to make money selling software be “antiquated” simply because (for example) some of its algorithms are trade secrets?

      • Indeed, each system bears its distinctive advantages and drawbacks, and the optimal choice often hinges on the specific requirements of the task at hand. Nonetheless, I believe that OpenBSD’s utility is limited in contemporary scenarios.

        Culture

        It’s undeniable that OpenBSD has spawned important technologies under its “shut up and hack” mantra, cultivating an environment conducive to technical breakthroughs. Conversely, the Linux ecosystem too has been a breeding ground for major projects, Docker and Git being just a couple of examples. The ethos within each community can differ considerably, contingent upon the project or distribution. The widespread popularity of Linux may attract a varied spectrum of users, some less technically adept than the typical OpenBSD user. However, that doesn’t mean it’s short on technologically adept contributors.

        Predictability

        I’ve chosen to make peace with systemd, seeing it as a necessary compromise, as it has become the preferred choice amongst the developer community. Unless one fancies rewriting systemd .unit files each time something needs to be installed (which I don’t), the practical choice is to work with it.

        Concerning the upgrading process, many Linux distributions today offer smooth upgrades without necessitating a complete reinstall. Your encounter may rely on the particular distribution you’re using. Perhaps it’s been a while since you last used Linux. I haven’t come across a distro that requires a complete overhaul in quite some time. Rolling release distros are now increasingly prevalent and are even suggested for novices.

        With nixos, which is my distribution of choice for the foreseeable future, I have an attribute that your OpenBSD system lacks: reproducibility. I can transfer a handful of configuration files to a brand new computer and replicate my system precisely, encompassing all my installed packages and configurations, including those in $XDG_CONFIG_HOME. It will literally recreate the same exact environment.

        History

        And both of them are inspired by Unix, what’s your point? :P

        Why should a company that needs to make money selling software be “antiquated” simply because (for example) some of its algorithms are trade secrets?

        I think we’re not gonna agree on this, but I believe that all code that matters should be FOSS, there is no reason for a company to keep their algorithms as trade secrets, and if anything being open source can only improve the world, not hinder it.

        •  rhabarba   ( @tux0r@feddit.de ) OP
          link
          fedilink
          English
          1
          edit-2
          1 year ago

          Unless one fancies rewriting systemd .unit files each time something needs to be installed (which I don’t), the practical choice is to work with it.

          The last Linuces I deliberately played with :-) were Gentoo and Void, both being non-systemd distributions by default. The point is that, if Linux was about choice (at least that’s what I’m told rather often than not), a particular init system should not be a component on which other components depend.

          At least none of the services on my servers demanded systemd just yet. Maybe I’m a minority.

          I can transfer a handful of configuration files to a brand new computer and replicate my system precisely, encompassing all my installed packages and configurations, including those in $XDG_CONFIG_HOME. It will literally recreate the same exact environment.

          Sounds like a glorified rsync to me. I can imagine how this could come in handy if you have a whole set of identical machines that should serve the exact same purpose. I never had this situation in my own environments yet.

          And both of them are inspired by Unix, what’s your point? :P

          The D in BSD means distribution. BSD was Unix until the early 90s. Admittedly, today’s BSD is quite a different piece of software than 4.xBSD, especially given that both macOS and OpenBSD started with (a version of) it.

          I believe that all code that matters should be FOSS

          So do I, and the BSD license is a FOSS license. That does not necessarily mean that you are allowed to sell my code - or that I must not sell mine. Nobody said that FOSS requires “free of charge”. And if you spend quite a lot of money, I’m even sure that Microsoft will gladly sell you the Windows code. I a way, all code is free - it only depends on your bank account.

          • The point is that, if Linux was about choice (at least that’s what I’m told rather often than not), a particular init system should not be a component on which other components depend.

            I mostly agree with this, but there is nothing I (or anyone) can do to change that without significantly hindering my user experience, and the benefits are minor. That’s akin to saying that you prefer gopher as a protocol, so you won’t use HTTP. Gopher is better according to some, but the world has decided on their protocol of choice already, there is no reason to fight it.

            Sounds like a glorified rsync to me. I can imagine how this could come in handy if you have a whole set of identical machines that should serve the exact same purpose. I never had this situation in my own environments yet.

            Come on man, that’s not what it is, I may have explained it wrong, but imagine being able to define the entire structure of your OS (including every tool installed, with your preferences) in a simple config file.

            So do I, and the BSD license is a FOSS license. That does not necessarily mean that you are allowed to sell my code - or that I must not sell mine. Nobody said that FOSS requires “free of charge”. And if you spend quite a lot of money, I’m even sure that Microsoft will gladly sell you the Windows code. I a way, all code is free - it only depends on your bank account.

            I knew we weren’t gonna agree on this, haha.

            I agree on one thing, free doesn’t mean free of charge. It’s my firm belief that one ought to contribute financially to open-source projects from which one derives substantial benefits. However, I also maintain that code should be open and accessible to all, without any monetary charge.

            In the case of windows, for example I would want the code to be open and available to anyone. I would even accept a situation where the code is completely available, albeit under a highly restrictive license. This license could permit you to study and learn from the code, but prohibit any actions such as creating your own version or selling it. This way, open-source principles are upheld, while Microsoft’s rights are protected.

            •  rhabarba   ( @tux0r@feddit.de ) OP
              link
              fedilink
              English
              21 year ago

              Gopher is better according to some, but the world has decided on their protocol of choice already, there is no reason to fight it.

              Yet, Gopher is still relevant. There are more than two operating systems for a reason. I know, “Worse is better” (I presume that you know that essay). People who need more than macOS and Windows are a minority. Which minority inside that minority is “the world”?

              imagine being able to define the entire structure of your OS (including every tool installed, with your preferences) in a simple config file.

              That sounds useful, indeed.

    • there is no reason to ever use *BSD in a modern system.

      Pfsense/OPNsense has been running on my router for… I can’t even remember how long ago I built it. The BSD family of OSs are great pieces of opensource software and they absolutely have niches they excel at. Use the best tool for the job, and don’t fall prey to marketed loyalty.

    •  zkikiz   ( @zkikiz@lemmy.ml ) 
      link
      fedilink
      English
      21 year ago

      BSD isn’t Linux though, a lot of these packages are entire systems that need many packages and are only supported in one main configuration. Otherwise instead of making social networking software you’re catering to a hundred different environments. There’s no real reason to run BSD for this stuff besides being a diehard tinkerer.

  • Most of these projects are FOSS, so you have two options. Either ask the devs for OpenBSD support (but try installing everything on OpenBSD to see what goes wrong). Or try modifying the program yourself to add OpenBSD support.

    Developers of these projects often target Linux, since it is by far the most used server kernel/OS. *BSD is not nearly as common.

    The only way to potentially change that industry wide is to have enough people stubbornly use *BSD and help implement *BSD support for Linux specific tools they use.

    Official support is often only provided with a docker setup as it standardizes bundled libraries and other needed blobs. This makes it easier to support many Linux distros.

  •  Freeman   ( @freeman@lemmy.pub ) 
    link
    fedilink
    English
    3
    edit-2
    1 year ago

    There is no “official support” for this. Is FOSS. You are on your own to run it. If my instance breaks I can’t just run to the Devs of the project to help fix it. It’s on me.

    It’s a project run by two people. And to be fair to them they chose one of the most OS agnostic methods to help build it. You don’t need to use a specific distro, just tools.

    You can port what’s needed over to BSD and do a PR to merge it, even if it’s just a BSD_Jails.md file. But it’s gonna take some know how.

    Building a Lemmy instance on pretty much any Linux box is fairly easy and well documented though.

    On a personal note, imho it does no good to be an OS evangelist. It’s as true for MacOs or Windows as it does for BSD. Use a tool for its strengths. I have BSD running my firewalls and even some storage, Linux running stuff, windows for things it excels at, and macos for stuff it works for.

    •  rhabarba   ( @tux0r@feddit.de ) OP
      link
      fedilink
      English
      11 year ago

      I agree with you and I really don’t want to sound like “finally use a decent system, unworthy Linux user”. However, this sword has two edges: I don’t necessarily want to be fobbed off with “Install Linux, you backward fool” either.

      •  Freeman   ( @freeman@lemmy.pub ) 
        link
        fedilink
        English
        2
        edit-2
        1 year ago

        That’s fair. Id be interested to see a bsd port personally. You probably can do it without docker. But whether all the parts are ported is another question (ie pictrs). You may be able to compile them from source though. I’ve never used BSD for web apps, mostly just firewalls, storage and routing.

        I did run FreeBSD as a desktop for a while some years back.