I saw this post today on Reddit and was curious to see if views are similar here as they are there.

  1. What are the best benefits of self-hosting?
  2. What do you wish you would have known as a beginner starting out?
  3. What resources do you know of to help a non-computer-scientist/engineer get started in self-hosting?
  • traches@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    35
    ·
    6 months ago
    • you do not need kubernetes
    • you do not need anything to be „high availability”, that just adds a ton of complexity for no benefit. Nobody will die or go broke if your homelab is down for a few days.
    • tailscale is awesome
    • docker-compose is awesome
    • irreplaceable data gets one offsite backup, one local backup, and ideally one normally offline backup (in case you get ransomwared)
    • yubikeys are cool and surprisingly easy to use
    • don’t offer your services to other people until you are sure you can support it, your backups are squared away, and you are happy with how things are set up.
    • Encrypt-Keeper@lemmy.world
      link
      fedilink
      English
      arrow-up
      13
      ·
      edit-2
      6 months ago

      To piggy back on your “You don’t need k8s or high availability”,

      If you want to optimize your setup in a way that’s actually beneficial on the small, self hosted scale, then what you should aim for is reproducibility. Docker compose, Ansible, NixOS, whatever your pleasure. The ability to quickly take your entire environment from one box and move it to another, either because you’re switching cloud providers or got a nicer hardware box from a garage sale.

      When Linode was acquired by Akamai and subsequently renamed, I moved all my cloud containers to Vultr by rsyncing the folder structure to the new VM over SSH, then running the compose file on the new server. The entire migration short of changing DNS records took like 5 minutes of hands-on time.

      • mesamune@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        arrow-down
        1
        ·
        6 months ago

        I just moved everything from vultr to self host because of their latest changes.

        • Encrypt-Keeper@lemmy.world
          link
          fedilink
          English
          arrow-up
          1
          arrow-down
          1
          ·
          edit-2
          6 months ago

          EDIT: As I suspected, the changes that u/mesamunefire is referencing are the ones that taken out of context awhile back and incorrectly assumed to apply to user VPS’ and the data on them, which is not the case. Those terms only apply to information posted publicly to their website, like the community forums.

          What changes would those be

          • sugar_in_your_tea@sh.itjust.works
            link
            fedilink
            English
            arrow-up
            3
            ·
            edit-2
            6 months ago

            Can’t speak for OP, but I bailed on Vultr because of how they handled the arbitration agreement change. Basically, I couldn’t access my containers without accepting the new TOS, so I “hacked” the website with Inspect Element so I could access support to close my account. For me, the arbitration change wasn’t the issue (my current host has similar policies), but being forced to accept a new TOS to use my account. I had no option do disagree or “remind me later,” I literally only had an “accept” button. I refuse to use any service that treats me like that.

            I’m now with Hetzner, so we’ll see if they pull that nonsense. I only use the VPS to get around my ISP’s CGNAT (WireGuard VPN w/ HAProxy at the edge to route domains), so if they pull the same nonsense, I’ll copy my config to another VPS.

          • mesamune@lemmy.world
            link
            fedilink
            English
            arrow-up
            2
            arrow-down
            1
            ·
            edit-2
            6 months ago

            https://old.reddit.com/r/webdev/comments/1boz5ne/vultr_new_tos_claims_all_commercial_rights_to/ " You hereby grant to Vultr a non-exclusive, perpetual, irrevocable, royalty-free, fully paid-up, worldwide license (including the right to sublicense through multiple tiers) to use, reproduce, process, adapt, publicly perform, publicly display, modify, prepare derivative works, publish, transmit and distribute each of your User Content, or any portion thereof, in any form, medium or distribution method now known or hereafter existing, known or developed, and otherwise use and commercialize the User Content in any way that Vultr deems appropriate, without any further consent, notice and/or compensation to you or to any third parties, for purposes of providing the Services to you."

            And you could not opt out. You had to click agree in order to login. That’s the biggest one.

            It was later removed after the fact but there were other changes that sucked.

                • Encrypt-Keeper@lemmy.world
                  link
                  fedilink
                  English
                  arrow-up
                  1
                  ·
                  edit-2
                  6 months ago

                  Incorrect. It applies only to the forums. It does not apply in any way, shape, or form to your VPS or the content on it. It’s one thing to be mistaken, but let’s not spread misinformation on purpose.

                  A Reddit post incorrectly took portions of our Terms of Service out of context, which only pertain to content provided to Vultr on our public mediums (community-related content on public forums, as an example) for purposes of rendering the needed services – e.g., publishing comments, posts, or ratings. This is separate from a user’s own, private content that is deployed on Vultr services.

                  Since our inception, Vultr has been committed to upholding and adhering to the strictest data privacy and protection standards across the world (including HIPAA, GDPR, and DPDPA). Our customers own 100% of their content.

            • mesamune@lemmy.world
              link
              fedilink
              English
              arrow-up
              1
              ·
              edit-2
              6 months ago

              I had customer data as well as some personal stuff on a couple of servers. It was low hanging fruit so I just started self hosting. It’s silly how much rights they suddenly wanted. Not worth the hassle, they just provide basic boxes to begin with.

              They also would not let you login without accepting those new rights now were you able to opt out. So I just threw my infa on some local systems, deleted everything and then had to say yes to their TOS. Again silly and great way to lose business.

      • vividspecter@lemm.ee
        link
        fedilink
        English
        arrow-up
        1
        ·
        6 months ago

        I had a similar experience with NixOS-anywhere and a VPS issue. Reset the OS, setup SSH key access and ran NixOS-anywhere and within like 15 minutes was back up and running.

  • kitnaht@lemmy.world
    link
    fedilink
    English
    arrow-up
    8
    ·
    edit-2
    6 months ago
      • Learning. If you ever found yourself tired of learning new things, your life is basically done.
      • Cost. You already have an internet connection at home. It’s practically a necessity these days. The connection is likely fast enough for most things. Renting even the most piddly of VPS is wildly expensive. Just throw a spare machine at it and go wild.
      • Freedom. Your own data is constantly being collected, regurgitated, and sold back to you. More people need to care about this incessant invasion of our lives.
      • Backups. 3 copies, on different forms of storage, in multiple PHYSICALLY distinct locations. Just when you have that teeny little imp in the back of your mind say “hmm, I should probably back up soon” – stop everything you’re doing and run a backup.
      • Test your recovery! Backups are only good if you can recover from them. Many have lost data because they failed to ever fail-test their backups.
      • Google. Legitimately the best skill you can ever attain is simply being able to search effectively and be able to learn jargon quickly. Once you have the lingo down, searches become clearer, quicker, more precise.
    • ChapulinColorado@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      edit-2
      6 months ago

      For #1 I would say not to focus on learning the same kind of thing that you started at some point recently. It took me a few months to get my local setup going since I would do it after work (also similar skills) and get tired of poking around.

      At some point I gave up and started doing other things that brought me joy (video games, paint night with YouTube tutorials, movies/TV). When I finally decided to get back to it, it was enjoyable again. If I have to re-do it from scratch it could be done in probably a few hours or at most some nights after work and would be enjoyable since the annoying “got ya” lessons are somewhere on memory or some searches away that could be filtered much quicker.

  • Presi300@lemmy.world
    link
    fedilink
    English
    arrow-up
    8
    ·
    edit-2
    6 months ago

    Benefits:

    • Cheap storage that I can use both locally and as a private cloud. Very convenient for piracy storing all my legally obtained files.

    • Network wide adblocking. Massive for mobile games/apps.

    • Pivate VPN. Really useful for using public networks and bypassing network restrictions.

    • Gives me an excuse to buy really cool, old server and networking hardware.

    As for things I wish I knew… Don’t use windows for servers. Just don’t.

    SMB sucks, try NFS.

    Use docker, managing 5 or 10 different apps without containers is a nightmare.

    Bold of you to assume I’m a computer scientist or engineer or that I have a degree lmao. I just hate ads, subscriptions and network restrictions, so I learned how to avoid those things. As for resources to get started… Look up TrueNAS scale. It basically does all of the work for you.

    • rekorse@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      6 months ago

      How’s the network wide ad blocking work, that would solve a big issue with my kids.

      • icedterminal@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        6 months ago

        You either set the DNS settings per device to the system running PiHole / AdGuard Home, or if your router allows, set the DNS there. It’s ideal to set it on the router.

        Any time a device makes a DNS request to a domain, it’s checked against the list. If found, it’s stopped. If not found, it gets sent upstream to your choice of a public DNS configured during setup. I use Cloudflare (1.1.1.1, 1.0.0.1).

  • nfh@lemmy.world
    link
    fedilink
    English
    arrow-up
    6
    ·
    6 months ago
    1. I’ve learned a number of tools I’d never used before, and refreshed my skills from when I used to be a sysadmin back in college. I can also do things other people don’t loudly recommend, but fit my style (Proxmox + Puppet for VMs), which is nice. If you have the right skills, it’s arbitrarily flexible.

    2. What electricity costs in my area. $0.32/KWh at the wrong time of day. Pricier hardware could have saved me money in the long run. Bigger drives could also mean fewer, and thus less power consumption.

    3. Google, selfhosting communities like this one, and tutorial-oriented YouTubers like NetworkChuck. Get ideas from people, learn enough to make it happen, then tweak it so you understand it. Repeat, and you’ll eventually know a lot.

    • tburkhol@lemmy.world
      link
      fedilink
      English
      arrow-up
      2
      arrow-down
      2
      ·
      6 months ago
      1. What electricity costs in my area. $0.32/KWh at the wrong time of day.

      I assume you have this on a UPS. What about using a smart plug to switch to UPS during the expensive part of the day, then back to mains to charge when it’s cheaper? I imagine that needs a bigger UPS than one would ordinarily spec, and that cost would probably outweigh the electric bill, but never know.

      • traches@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        5
        ·
        6 months ago

        That’s not really what a UPS is designed for, they’re meant to last minutes. Long enough for a clean shutdown or to start a generator.

        You’d want something like a whole house battery backup instead.

  • UnityDevice@startrek.website
    link
    fedilink
    English
    arrow-up
    5
    ·
    6 months ago

    Podman quadlets have been a blessing. They basically let you manage containers as if they were simple services. You just plop a container unit file in /etc/containers/systemd/, daemon-reload and presto, you’ve got a service that other containers or services can depend on.

  • subtext@lemmy.world
    link
    fedilink
    English
    arrow-up
    5
    ·
    6 months ago

    For #2 and #3, it’s probably exceedingly obvious, but wish I would have truly understood ssh, remote VS Code, and enough git to put my configs on a git server.

    So much easier to manage things now that I’m not trying to edit docker compose files with nano and hoping and praying I find the issue when I mess something up.

    • SidewaysHighways@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      6 months ago

      I know this is coming up on my radar, but I am not quite sure where to start. Might you have any resources on hand to point me in the right direction?

      Especially once I have everything dialed in the way I want, I’d love to be able to pull from my own repo to get stuff running again/spin up a new instance

      • subtext@lemmy.world
        link
        fedilink
        English
        arrow-up
        3
        ·
        edit-2
        6 months ago

        Honestly, I learned a ton from these guys: https://www.smarthomebeginner.com/

        I’ve diverged a good bit since then of the services I’ve added and the specifics of how I configure things (I still use Traefik whereas I think they’ve shifted to Nginx), but they have a great example of a GitHub repo and what it looks like to manage a self-hosted server.

  • GravitySpoiled@lemmy.ml
    link
    fedilink
    English
    arrow-up
    5
    arrow-down
    1
    ·
    6 months ago

    I would’ve wished

    • don’t rush things into production.
    • dont offer a service to a friend without really knowing and having the experience to keep it up when needed.
    • dont make it your life. The services are there to help you, not to be your life.
    • use docker. Podman is not yet ready for mainstream, in my experience. When the services move to podman officially it’s time to move. Just because jellyfin offers official documentation for it, doesn’t mean it’ll work with podman (my experience)
    • just test all services with the base docker install. If something isn’t working, there may be a bug or two. Report if it is a bug. Hunt a bug down if you can. maybe it’s just something that isn’t documented (well enough) for a beginner.
    • start on your own machine before getting a server. A pi is enough for lightweight stuff but probably not for a fast and smooth experience with e.g. nextcloud.
    • backup.
    • search for help. If not available in a forum. ask for help. Dont waste many many hours if something isnt working. But research it first and read the documentation.
    • xantoxis@lemmy.world
      link
      fedilink
      English
      arrow-up
      6
      ·
      edit-2
      6 months ago

      Podman is not yet ready for mainstream, in my experience

      My experience varies wildly from yours, so please don’t take this bit as gospel.

      Have yet to find a container that doesn’t work perfectly well in podman. The options may not be the same. Most issues I’ve found with running containers boil down to things that would be equally a problem in docker. A sample:

      • “rootless” containers are hard to configure. It can almost always be fixed with “–privileged” or some combination of permission flags. This would be equally true for docker; the only meaningful difference is podman tries to push everything into rootless. You don’t have to.
      • network filesystems cause headaches, especially smbfs + sqlite app. I’ve had to use NFS or ext4 inside a network-mounted image for some apps. This problem is identical for docker.
      • container networking–for specific cases–needs to managed carefully. These cases are identical for docker.

      And that’s it. I generally run things once from the podman command line, then use podlet to create a quadlet out of that configuration, something you can’t do with docker. If you are having any trouble with running containers under podman, try the --privileged shortcut, see that it works, and then double back if you think you really need rootless.

  • gamermanh@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    6 months ago

    For me #2 would be “you have ADHD and won’t be able to be medicated so just don’t”

    I’ve mentioned elsewhere my server upgrade project took longer than expected.

    Just last night I threw it all into the trash because I just can’t anymore

  • sugar_in_your_tea@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    3
    ·
    6 months ago
    1. Our internet goes out periodically, so having everything local is really nice. I set up DNS on my router, so my TLS certs work fine without hitting the internet.
    2. I wish someone would’ve taught me how to rip blurays. It wasn’t a big deal, but everything online made it sound super sketchy flashing firmware onto a Bluray drive.
    3. I’m honestly not sure. I’m in CS and am really into Linux, so I honestly don’t know what would be helpful. I guess start small and get one thing working at a time. There’s a ton of resources online for all kinds of skill levels, and as long as you do one thing at a time, you should eventually see success.
  • multicolorKnight@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    6 months ago
    1. Control and privacy. The server does exactly what I choose, not somebody’s business model.
    2. Once you have other users, it’s not a hobby anymore. People are not amused by downtime.
    3. The w3schools.com tutorials have been good for me.
      • jimmy90@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        5 months ago

        you configure your whole server in one file (including docker/podman services), installation and configurations is taken care of by the package manager, you pretty much only need to know one file to admin your system

        and no extra stuff is installed only what you specify so you have a minimal resource usage.

        i think this is awesome

    • jimmy90@lemmy.world
      link
      fedilink
      English
      arrow-up
      1
      ·
      6 months ago

      although maybe not for beginners. for beginners use docker compose and do backups however you like