1. 73
    1. 24

      Good self-hosted software really needs to have leak-proof abstractions. Too many leaks means too much admin intervention, which is in short supply for hobbyists.

      Gitea is one that does this well IMO. A single binary, a single config file, and a single data directory are all key. Contrast this with my MediaWiki instance that needs a dozen packages installed, config is split between httpd.conf and LocalSettings.php, and data is split between the static files and database files. Not as bad as some, but still not ideal.

      1. 3

        Configuration woes are exactly why I’m considering writing my own web server instead of using Apache or Nginx. My needs are simple:

        • Static files only.
        • TLS (that kind of sucks but I don’t have a choice).
        • Content negotiation for languages (some of my posts are dual English/French).
        • Nice to have: cache everything in RAM (my website is that small).

        Then maybe one day I’ll stare into the SMTP abyss.

        1. 24

          You sound like a person who is yet to discover the warm convenience of https://caddyserver.com/

          1. 2

            I am indeed. Thanks for the tip.

        2. 4

          Using libretls makes using TLS painless.

        3. 3

          Nice to have: cache everything in RAM (my website is that small).

          Since you have a static site I’d assume that this is mostly handled by file system anyways, minus compression. I wonder how much one really gains from that, especially when using the right syscalls.

          Then maybe one day I’ll stare into the SMTP abyss.

          If you want a simple SMTP config OpenSMTPD is the way to go. See the examples section of their man page.

          Of course that doesn’t cover delivery (IMAP, etc.) or anti-spam measures. The good thing here is that it doesn’t change much.

          1. 1

            Then I’d advise going full OpenBSD and use opensmtpd, https and relays for the config simplicity and practical usage.

      2. 1

        Making self hosting easy would be very possible, but I think the amount of work it would take is just too much. For an ideal system, everything needs to be standardized. There needs to be some way to just browse a UI and click “install”.

        Yes I know there are many projects that advertise this, but none of them actually work well. It’s a monumental amount of work for the projects to patch and configure every service so it fits a set of standards for backups, SSO, webserver access, certificates, etc. And then last I checked these projects were not containerized so there were major issues doing things like OS updates because PHP/etc would update which would present major issues for running services.

        And then there is just no money in it to make it worth the effort.

    2. 12

      Mastodon

      Too power hungry for my taste. No easy way to host inside docker, which made it a pain to keep running. I’m very happy with Fosstodon, and don’t see a reason to switch to a self-hosted instance any time soon.

      I run an instance too and agree it’s too power hungry. Just the RAM requirements are a bit excessive. Ruby seems to use a lot, as does Postgres and elasticsearch (not required, but needed if you want good searchability)

      1. 12

        There’s also a newer implementation of an activitypub server at https://docs.gotosocial.org/en/latest/

        1. 6

          I’ve been running a node from under my desk and I gotta say I’ve been really impressed with the ease of installation and the responsiveness of the dev team. Everything that I ran into was due to generic self-hosting problems like dynamic DNS and hairpin routing, gotosocial itself hasn’t given me any trouble.

        2. 2

          This is what I use to run my server on, I have a server that could run Mastodon but it’s so fiddly to setup and operate that I never bothered. GtS on the other hand is extremely easy to run and they are very quickly (surprisingly so) adding features to give it parity with Mastodon.

        3. 2

          What I’m waiting for is a “migrate from Pleroma to GTS” guide. I can probably figure it out but it looks like a mountain of faff and pain that my brain fog prevents right now.

      2. 8

        There’s also Honk! if you’re willing to go SUPER minimalist.

        I’m with the OP as well. I ran a Mastodon instance of my own for a bit less than a year, and after a few iterations of Rails migrations, the back-end and the front-end refused to speak and nobody could figure out why so I gave up :)

      3. 5

        Have you considered swapping to pleroma? If I were to host a fediverse node, I’d try that first, looking at the current shape right now.

        I think you can even graft the slick mastodon frontend to a pleroma backend.

        1. 15

          For people like me who would never consider Pleroma because of their, um, politics, it’s worth noting there is a hard fork called Akkoma that is working to save the technology from its toxic community: https://coffee-and-dreams.uk/development/2022/06/24/akkoma.html

          https://akkoma.dev/AkkomaGang/akkoma/

          I can’t promise they’re better, not having personally used Pleroma or interacted with either dev community directly, but I’m cautiously optimistic.

          They’ve put a Code of Conduct in place too: https://akkoma.dev/AkkomaGang/akkoma/src/branch/develop/CODE_OF_CONDUCT.md​

          the community must create an environment which is safe and equitable

          1. 3

            …I’ve never seriously considered getting involved in fediverse dev (mastodon is no better for my mental health than twitter is), but I have to admit that hacking on Akkoma sounds fun. I’ve been wanting a good excuse to get into Elixir/Erlang’s ecosystem more.

            1. 7

              I did some development on Pleroma back before their dev team got overtaken by shitlords, and I have to say I was impressed with how approachable it was. I’ve never done Elixir before but I have some dusty experience with Erlang and some very dusty experience with Rails and everything seemed to fit together in a sensible way, kind of what I wish Rails could have been. I wrote about my experience here: https://technomancy.us/191

          2. 4

            I have great difficulty understanding the approach of “this tool is made by people I don’t like so I will deny myself the utility of this tool”.

            1. 21

              It’s possible that part of your confusion is that with an open source project, it is often possible to use the software without directly giving the developers money or other obvious support. But this seems unwise if you want the software to continue to be developed and maintained, as most users of software do. And if you engage in less monetary ways like filing bug reports, you then have to interact with the people you do not like.

              Fortunately this is a demonstration of one strength of FOSS, the right to fork: people who do not want to work with the Pleroma developers can take the codebase and go their own way, as Akkoma seems to be doing. Why spend time with people you don’t get along with, if you could just… not?

            2. 12

              People who write open source software write it, primarily, for themselves. It will end up optimised for their use cases. If they are interested in creating a society that is antithetical to one in which I want to live then, pragmatically, they will probably evolve the software in directions that I dislike.

              1. 4

                This seems like quite a bit of a stretch. Perhaps for social media, since different groups have different ideas on how to regular discourse, but vast amounts of software don’t fall in this bucks.

                If libpng was written by Hitler, it still does the job.

                This divisive attitude leaking (primarily?) out of America is seriously not healthy. For better or worse, people you do not agree with will not simply disappear. If we stop talking, all that is left is violence.

                1. 10

                  If libpng was written by Hitler, it still does the job.

                  It does run the same, yes. But as skyfaller was saying, if you want to report a bug or send a patch, you depend on Hitler. Unless you fork. I don’t think such an extreme example serves your argument well.

                  This divisive attitude leaking (primarily?) out of America is seriously not healthy. For better or worse, people you do not agree with will not simply disappear. If we stop talking, all that is left is violence.

                  Case in point: out-of-context, I would like to agree with this. But now that you mentioned Hitler, I have to remind you that western democraties actually kept talking with him until very late in the 30s. It didn’t stop the violence.

                  1. 3

                    Most people are not Hitler, and we all know it. It was hyperbole for effect, and we all know that too. I feel you’re intentionally missing my obvious point.

                    The vast majority of your (likely) fellow Americans who you disagree with are not bad people. This is a deeply unhealthy perspective that will only make things worse, and outside this argument you surely know this too.

                    You’ll forgive me if I bow out now.

                2. 5

                  If libpng was written by Hitler, it still does the job.

                  This isn’t about libpng; it’s about Pleroma, which is a social media tool.

                  It turns out when these kinds of people have atrocious opinions about minorities, they tend to also have bad ideas about moderation and harassment; they only care about the use cases that matter to straight white males.

                  I think it’s a bad idea to run social software that’s written by people who don’t care about moderation and protecting their users.

                  1. 4

                    they only care about the use cases that matter to straight white males.

                    Citation needed please.

                    I think it’s a bad idea to run social software that’s written by people who don’t care about moderation and protecting their users.

                    Social software is about bringing people together, right? Moderation and protecting users is about keeping people apart. I’ll cheerfully admit that there are reasons we keep people apart, but if the criteria is “software to bring people together” it seems obvious to me that the more laid-back software is the way to go.

                    The platonic ideal of protecting users is putting them in a box by themselves.

                    1. 7

                      Social software is about bringing people together, right? Moderation and protecting users is about keeping people apart.

                      This kind of simplistic thinking is exactly the kind of thing that would be an enormous red flag if I was evaluating social media servers and I heard one of the maintainers saying it.

                      1. 4

                        Sure, but you’ve neither explained why it’s incorrectly simplistic nor why it’s a red flag (nor justified your lazy dig at “straight white males”).

                        I’ll drop it, but if you want to have a discussion of substance DMs are always open. :)

      4. 4

        Ruby seems to use a lot

        I think it’s mostly rails actually. Ruby has a bit of a bad reputation when it comes to performance, when it’s mostly rails. In that area, other than JS always used to do the best, and compared to language implementations like Python it’s quite fast.

        At least it was like that ages ago, when someone told me they want to rewrite some big project thinking switching away from Ruby would somehow magically make things faster.

        1. 2

          I’ve never heard of Ruby being described as ‘quite fast’ compared to Python. Way back in the Ruby 1.8 days, Python was faster, but they’re now more or less neck and neck in terms of performance. Ruby got a bad reputation because of how slow its AST-based interpreter was back in the day.

          On the other hand, JavaScript (specifically V8) and PHP are faster than both.

        2. 1

          Yeah, I think you’re right. I don’t know much about either, but just going off what I see in top

    3. 11

      I would add r a d i c a l e to the list. It’s a very nice caldav compliant calendaring server. I replaced both Apple calendar and Google calendar with it.

      1. 2

        +1 for radicale, it’s an excellent and lightweight program which I use for shared calendars. I keep meaning to try out its vcard support but haven’t gotten around to it. I combine it with vdirsyncer and khal (in its ikhal curses tui mode) on my laptop to keep things in sync.

        1. 1

          I’ve used carddav and caldav in radicale for several years, and it’s been great so far. Using with cell phones, macOS, Linux.

    4. 6

      Very good list. I like:

      • miniflux
      • synapse
      • wallabag
      • plausible
      • prometheus / loki / grafana
      • gitea
      • vaultwarden
      • cryptpad
      • glitchtip
      • caddy

      Could go with something activitypub-like, maybe pleroma or honk. And possibly lemmy

    5. 5

      Love seeing what’s making people happy. My favorites are:

      • email
      • nextcloud
      • ampache
      • gitea
      • wallabag
      • sprinklers_pi
      1. 2

        How long have you been self-host the Email? any issue?

        I have been running MailInABox for almost two years without any issues. Wondering why many people suggest to not self-host Email.

        1. 13

          Many people suggest not to self-host email, because if things go wrong, you’ll have no way of figuring out what went wrong, why, and how to avoid it in the future. Because when things go wrong, 99% of the time, they go wrong at Google/Microsoft/etc, and you’ll have exactly zero insight into the reasons. If you are lucky, you’ll get a bounce, but that won’t tell you much, either. In most cases, you won’t even know your email did not reach the recipient.

          From my own experience (15+ years of self hosting my email), my troubles began when I had to send email to places that used an allow-list. It didn’t matter that I had SPF, DKIM, DMARC, reverse dns and all that set up properly, that I was on a reputable ip, on a reputable block. Not on the allow list? plonk Bye! Which allow list? They couldn’t tell, they were using hosted email, had no insight. The hoster wouldn’t tell, because it is confidential information. I eventually figured it out using some back channels, and it turned out it’s $10k/year to be on the list. That’s a bit of a yikes.

          It did not stop there, though. I was exchanging mail with a couple of people who were using gmail (some via their own domains, some via gmail.com), we’ve been in contact for a couple of years, no problem. Then the mail I sent started to go to their spam folder for no reason whatsoever. Then they simply did not arrive, and I did not get a bounce back, either. It just vanished without a trace. Of course, it was impossible to figure out what went wrong. Email that ended up in spam, did not have any useful headers. Google’s own tools were of no use.

          I had trouble sending email into Outlook-based domains, because my IP didn’t have a good enough reputation by their metric. I can’t build a good enough reputation, because I simply do not send a large enough volume to matter. All of these reputation systems are tuned with the assumption that senders are sending a lot of email. I do not, and my educated guess would be that most people who self-host do not, either.

          So now I simply relay my email through a relaying service, who are on a couple of the allow lists, and magically I can send email reliably to every place I had trouble with before. But by doing so, I no longer self-host my outgoing email.

        2. 6

          I’ve been doing it for about 20 years without issues. The main reason to switch is that the benefits have been slowly reducing relative to hosted offerings. I’d probably switch to Fastmail if they had a confidential computing offering (technical guarantees with remote attestation that a malicious operator has no access to my mail).

        3. 4

          I played around with email hosting a bit in the early 90s, then bought a domain in like 97 and have hosted my own personal email continuously since then. I started hosting email professionally in like 99 or 2000, and still do that, on a smallish scale.

          Mail-in-a-Box seems nice, and it is built on Postfix which is unbeatable, IMO.

          People suggest you don’t self-host because there seems to be a real effort afoot to destroy it by the major mail providers. Like you, it mostly just works for me. And I’m not ready to surrender a great, distributed, federated protocol to the bastards.

    6. 5

      Seems like a good list, I need to try most of these. I’d have to include syncthing and caddy as well, both have been flawless for me.

      I’m also pretty thankful for jellyfin as an alternative to Plex. I can’t say it’s been flawless like the other too, but overall it’s been great.

    7. 3

      Just don’t roll your own email.

      Any reason? I use MailInABox for almost 2 years without an issue.

      1. 1

        Getting outbound mails to be delivered to inbox is difficult. Because google seems too maintain an internal whitelist that is not human controllable. Not on the whitelist ? You go to spam, get bounced or devnull’d.

        I still do it though, because I think it’s important to keep trying.

    8. 3

      For me it’s:

      • email (OpenSMTPD + dovecot)
      • Git over OpenSSH
      • Prosody for XMPP
      • OpenBSD httpd for HTTP
      • relayd
      • postgres, redis, sqlite depending on use case

      Things I don’t run anymore:

      • Nextcloud
      • Mediagoblin
      • Postfix for email, because OpenSMTPD allows for nicer config files
      1. 1

        Hey mediagoblin is in my past too! Got too annoying to maintain.

    9. 3

      I self-host email with Simple NixOS Mailserver. It works great, no issues for 3 years.

    10. 3

      I’ve been using yarr which is in the same vein as miniflux, but even more minimalist. (Cons: it doesn’t work without Javascript) I’m now considering switching to miniflux due to how barebone it is.

      But if you’re looking for a barebone RSS reader, I think yarr should be considered.

      1. 2

        I’ve been looking for a replacement for rawdog (http://offog.org/code/rawdog/) since it’s Python 2 only. Yarr looks good in that it uses sqlite but the front-end looks overwrought. Miniflux looks good, too, but I don’t have any other need for a full-blown RDBMS so I’m hesitant to run Postgresql just for that app.

        1. 1

          You can probably run miniflux + postgresql on fly.io. 256 MB x 2 isn’t much, but more than enough in this case.

        2. 1

          Porting rawdog to Python3 honestly might not be too difficult. All the libs are there by now, and I’ve had quite good success rates with 2to3 and such.

          1. 2

            There seems to be an active fork here.

            Last commit was a few days ago, so it’s more promising than doing it all yourself. :)

      2. 1

        Looks nice! Maybe I’ll give it a go. I love miniflux but there are a few small things that bother me. Does yarr work well on mobile layouts too?

        1. 3

          I don’t read RSS feeds on mobile. So I tried it for the first time on my phone browse, and it looks really nice and mobile-friendly. So to answer your question, yes it does work on mobile layouts too :)

          1. 1

            Thank you for checking! I tried to find docs but couldn’t find any.

    11. 2

      I’m very thankful for Nextcloud, Matrix and Gitea. Tinkering with them has been really fun and taught me a lot about hosting my own stuff.

    12. 1

      My favorites are:

      • Nextcloud
      • Firefly III
      • MailInABox
    13. 1

      Thanks for suggesting Miniflux! I’ve been wanting to try an RSS service and this one took no effort at all to get started. My favourites are:

      • Nextcloud
      • Uptime-Kuma
      • Paperless-ng
    14. 1

      Mastodon No easy way to host inside docker, which made it a pain to keep running.

      There’s a docker-compose.yml right in the sources. Remove the build: stanzas, and it will pull the image from docker hub. If you don’t want to or need to customize the sources, it’s trivial to run it inside docker. I’ve been doing that for the past couple of years, and upgrading is as simple as docker-compose pull && docker-compose up -d most of the time.

      I don’t recall the last time I needed to do more than that… It was probably when I switched from the official mastodon server to the glitch-soc fork.

      It does eat a lot of resources, however. I can see that being prohibitive for self-hosting.

      1. 1

        Yeah, the Mastodon Docker experience used to be AWFUL but they put a bunch of work in and it’s much better now.

        Still doesn’t make masto any easier to run and KEEP running, as the landscape littered with failed instances can attest, but credit where credit is due :)