Do you have any advice or suggestions about it?

  • Hardware (what should be enough for a local PC, or VPS…)
  • Software (OS [Debian, Yunohost, other…], “containerization” (Docker, virtual machines?), dashboard, management, backups, VPN tunneling…)
  • “Utilities” to host (Lemmy, Peertube, Matrix, Mastodon, Actual Budget, Jellyfin, Forgejo, Invidious/Piped, local Pi-Hole, email, dedicated videogame servers like for Minecraft, SearXNG, personal file storage like Drive, AI [in the future, when I can afford a rig that can run a local model decently]…)

I’m aware it’s a lot of stuff to take on, so, do you have any advice on where to start? (how to find a cheap PC to experiment with, if not get a VPS, what to test on it, what “utilities” to try self-hosting first…)

  • sbeak@sopuli.xyz
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    1 hour ago

    Personally, I run my self-hosting setup using an old laptop I had lying around, and if you have an device you no longer use, it’s a really good option hardware-wise!

    I would recommend Debian, it’s stable and it works well enough. I’ve heard Yunohost being a nice option, but I was unable to get it to install. Maybe my particular hardware didn’t play nice with it, or perhaps I just did something wrong in the install process. The majority of services I’m running use docker, since it’s convenient and automatically updates itself.

    As for the stuff that’s nice to run, you of course need file storage. I use Nextcloud, but it was a pain to set up (if you need any help, I would guide you towards LearnLinuxTV, who has great videos on setting up NextCloud). In hindsight, I probably should have installed something lighter weight since I don’t use any of Nextcloud’s extra features, but it works and many apps gives you options to use Nextcloud sync which is convenient. I also use Syncthing for syncing my notes and other bits between my devices.

    I would also recommend Immich for photo hosting. It works really well and the mobile app is fantastic on both Android and iOS (I use the former now and the latter in the past). It doesn’t have a client for desktop though, so that could be a dealbreaker.

    Forgejo is really good, I use mine for local project backups, with Codeberg acting as the cloud backup. I don’t have that much more to say, it works well!

    Running a Minecraft server is also very fun. I use Paper to run a vanilla survival server that’s just for me and my siblings, and I have the plugins Geyser and Floodgate so that the littlest can play with me on their tablet, which runs Bedrock rather than Java Edition.

    I don’t currently run this myself, but Pi-hole seems amazing, being able to block ads and trackers on the network! I will have to try that out in the future…

    If you have (definitely legally obtained) media, like movies, shows, anime, etc., Jelkyfin seems like a great option. Lots of people rip content from DVDs and Blu-rays that they have bought.

    I also use Radicale, a CalDAV calendar service. It can sync all the events I have in the future between all my devices, and it’s the first I have used that syncs properly among all my devices. Previously, I used two local calendars, adding the event on the device where it is most appropriate (for instance, school stuff on my laptop and social gatherings on my phone), and it was a lot of hassle. Having one calendar between all my devices is very nice indeed. On Android, I found Etar to be the most functional client, while on desktop (currently running EndeavourOS, previously Fedora), Thunderbird is probably the best option and the one I use. If you use GNOME, you could get by with their calendar app that is minimal+, and on KDE, you have KOrganiser that has a bazillion different features crammed into the interface.

    One more thing, if you have spare resources, you can always run BOINC or similar in the background. Lending some of your unused compute helps out science :D I personally run Asteroids@home and Milkyway@home since I’m interested in astronomy and such, but there are BOINC projects relating to medicine, biology, and other fields of science too!

  • notagoblin@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    ·
    5 hours ago

    Hardware - Start small and cheap. If you have it already use it. build it out as you need and understand it.

    Software (OS) - Debian based perhaps. Docker probarbly.

    Utilities - What would you like to do today? pick one, Pihole is useful.

    Once you get something working for yourself, you’ll start to build on that knowledge.

    Above all be brave and be curious.

  • rebornAnew@lemmy.zip
    link
    fedilink
    English
    arrow-up
    1
    ·
    4 hours ago

    I reccomend you start with a vps, local pc is possible but in any case(in my personal experience at least) you’ll need a public IP anyways(which is hella expensive for personal use). In any case, you’ll have to get a vps. I suggest you check out Contabo. Good prices, pretty ok for hardware related things. I’d suggest you start Nextcloud, a website, very basic stuff. If you are planning to use a local pc, be advised that power will be a big factor. Unless you want to have to pay a lot on your electricity bill, avoid hosting too many things on your local pc(unless you want to have full control over your data, but I personally think if you apply basic cybersec principles, a VPS is fine). I do understand though, despite that it’s not fully reccomended, I want to locally host my own mail server to have full control. It comes down to personal preferences and how much control you want.

  • mlg@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    ·
    7 hours ago
    • Anything that you can shove hardware into (CPU, RAM, HDDs, maybe a PCI slot), so any used workstation is a great start, and don’t bother splurging initially, just follow the quality tool rule and only buy when something becomes inadequate. If you want to jump straight into loud and noisy severs, you can pick up used servers for cheap like R730s which there’s a ton of out there. Just avoid 2.5" drive bays because 3.5" HDDS are way cheaper per Gb.

    • Would recommend podman over docker as its matured to the point where it has a lot of better features like rootless, quadlets, etc that you might want to take advantage of in the future. OS is whatever linux you prefer, but I recommend you stay away from Ubuntu. If you want something RedHat but not as cutting edge as Fedora, I’ve heard OpenSUSE is pretty nice.

    For apps, If you want to do HTTPS via GUI then npmplus is nice option, Otherwise caddy can do the same with text config. Rest is whatever you want to try out :)

    EDIT: If you start making an *arr stack, I would recommend recyclarr to handle the quite expansive content filter settings for sonarr and radarr.

  • dieTasse@feddit.org
    link
    fedilink
    English
    arrow-up
    4
    ·
    7 hours ago
    1. What do you need? Ask yourself what do you need first that will help you decide
    2. Hardware - buy second hand 2017 - 2018 (office) pc - dell, fujitsu, hp for ~ 80 eur - clean it! Re-paste processor and buy ssd.
    3. Either instal clean debian, prxmox, or some nas software. If you go with e.g. trueNAS you need to decide if you want to invest into proper nas hard drives. They cost a lot but last for ages.
    4. Setup your fist apps - treat the beginning as a test. Its a test machine and environment, feel free to try stuff, break stuff and document it, especially what you like and want to keep.
    5. After a while, when you feel like you are not experimenting as much and you know what you like about what you have, backup what you want to keep, and start clean - now use your documentation. This step is optional - depends on how much you were messing around but can be pivotal in order to get stable environment.
    6. Next steps will write themselves. In fact you will have so much you would want to try that you won’t know where to start.
    7. You are welcome
  • osanna@lemmy.vg
    link
    fedilink
    English
    arrow-up
    1
    ·
    7 hours ago

    i self host media primarily, but because I self host media, i self host other stuff too. Find where you can improve your life with self hosted apps, then self host them.

  • Jakeroxs@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    9
    ·
    15 hours ago

    Surprised no one has mentioned proxmox (at least not the top 10 threads I saw first)

    Basically debian with a webui specifically for spinning up VMs and LXCs and managing storage and such, then install whatever distro in an LXC and run docker in that.

  • thecoffeehobbit@sopuli.xyz
    link
    fedilink
    English
    arrow-up
    5
    ·
    20 hours ago

    Quite a few recommendations echo the same sentiment: get a whatever computer, start by installing xyz Linux, and go from there. Instead of direct recommendations I’ll present some alternative paths you may find useful to balance your self-hosting style against.

    Path 1: Get a cheap VPS and host something like File Browser to transfer some low-stakes files between friends&family. Add services and beef up the server as you need. Doesn’t matter too much if it gets hacked, it’s separate from everything else and you’ll learn to harden it over time when you learn to consider an exposed server insecure by default. Also your financial stake is really low, sub 5€/month and you can quit at any time when there’s no unique data on the VPS. Grow your stake slowly along with your confidence in how well you can secure the thing.

    Path 2: Get 3 identical 1-4TB drives and an SSD boot disk on some random computer, and install TrueNAS for home use. It has a large self-hosting community and nicely abstracts away the Linux side of things. No worries about exposing ports, just host anything you’re okay using just at home. Think: Jellyfin, Paperless, Home Assistant. You might find this useful if you never intend to really learn Linux in the first place and just want to solve some of your digital problems locally with some money invested. Later, add a mesh VPN like Tailscale or Netbird to safely access it from outside your home.

    Path 3: Get heavily into networking and start by getting complete control and understanding over what happens in your network. OPNsense, adguard, OpenVPN/wireguard, pihole, ddns, ids/ips, VLANs. Do this if you’re a control freak and are willing to commit to updating your stuff and keeping track on potential attack vectors.

    I started out with path 3, but have moved more or less towards a mix of 1 and 2 and no longer expose ports on my home router. If I’ll end up getting more than one device, I’ll probably install TrueNAS on one and make the rest a baremetal Talos cluster. Now my stuff runs on one device so it makes most sense to be Proxmox, this is however not advice, I work in tech and full well realise this is not an easy system to run.

    • thecoffeehobbit@sopuli.xyz
      link
      fedilink
      English
      arrow-up
      1
      ·
      20 hours ago

      I’ll have to add that if going for path 1, be sensible and make sure you know if you have been hacked, to not expose your friends to malware by accident. You might even want to host a honeypot for learning this part.

  • __hetz@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    7
    ·
    1 day ago

    What are your other hobbies/interests? What are some things you’re completely uninterested in but it’s annoying shit you would really like a better way of handling? Got some answers? Now check the awesome self hosted page to see if there are any existing solutions that look promising. If so, now you know at least some things to host.

    How to go about it? When I started I was an idiot kid, on Windows ninety-something (or maybe ME), running Apache, MySQL and phpBB. Copy-pasting snippets in Notepad and not comprehending everything. I found desktop Linux later, learned about init systems, watched that go out the window with systemd, etc. I was installing Ubuntu on every beige clunker I could get my hands on back when the Beryl (Compiz) cube desktop video went semi-viral. Eventually moved on to Arch, learned more about CLI tools, editing configs, etc. If you have something that can host VMs, and you want to play with mock bare-metal setups where you create the users, directories, set permissions, blah blah blah - VMs aren’t a bad way to go. It’s good stuff to learn and know. Gives you an excuse to play with tmux’s synchronized input feature, maybe learn some Ansible, and whatever else. If you just have one dust collector sitting around, start trying distros on it. Mess with stuff til it breaks, boot into install/recovery media and try to unbreak it, repeat. As long as it’s fun (or tolerably annoying enough to reach some end goal).

    I’ve personally gotten lazy and I’m nearly all-in on containers. A few things are manual but I’ve come to like Docker. I do still manage mine with compose files, even on my TrueNAS system with their “apps,” because compose files are easy to read, keep track of, and modify. My non-TrueNAS machines, I use Docker + Portainer. I should maybe look into podman and quadlets but haven’t bothered yet.

    My recent hardware went from RPi4B to Thinkcentre mini PC to building out a 2U TrueNAS system. A PoE switch powers a Home Assistant Yellow and a few cameras. The RPi was repurposed to only host Homepage, NUT (server, watches my UPS and tells more power hungry machines to shut down during outages) and might eventually host Grafana if I ever get into learning it. Another 4B is my Pi-Hole. The Thinkcentre has an 8TB external plugged in and scheduled rsync tasks, on the TrueNAS machine, push back ups of my more important files to it. It also has a couple users set up strictly for running game servers (ioquake and teeworlds at the moment). Those aren’t containerized and things like rcon, config management, map rotation, mods, etc are all handled manually.

    TrueNAS hosts everything else. If you need ideas based on what others are hosting, here’s some of what is on it:

    • Jellyfin, for TA (see below) and my legally obtained DVD backups.
    • TubeArchivist, (TA) for backing up YouTube videos, descriptions, comments. Has a Jellyfin plugin so your backup library is watchable in JF
    • Homebox, for home inventory management. I use it to keep track of my tools mostly. You can have locations, sub locations, items… if I pull a rail of sockets, stick them in my toolbag, then carry it out to the shed - so long as I bothered to update their locations in Homebox I won’t waste time digging in the back of my truck, tool chest or other bags because I can’t remember where I last used my 1/2" drive 14mm deep impact. It’s a mildly inconvenient extra step to essentially “check in/out” my own tools, as if I’m working in an aircraft hangar or I’m doing IT asset management, but I find it worth it.
    • LubeLogger, for keeping track of vehicle service. Early this year I put a lot of money into fixing my truck. A lot of tools, fluids, and parts to handle a broken water pump and do some preventative maintenance. Still a quarter of what a shop might’ve charged. Since I’m becoming my own mechanic, I wanted something to properly record what I do and how much I spend on it. LubeLogger fits the bill.
    • Factorio, for the factory must grow.
    • Dawarich, self hosted GPS logs. Seems decent but I might shop around still. I just wanted an alternative to Google Maps for tracking my travel history.
    • Audiobookshelf, for some audiobooks but mainly for archiving a small handful of podcasts.
    • Romm, because I’m compelled to hoard old games and occasionally even play them.
    • Immich, because I’m not paying Google to store my photos.
    • FreshRSS, because there’s still a dwindling number of sites that don’t force you to visit them to read an article in its entirety. Mainly for Hack A Day, a couple devlogs from game makers, the latest CVEs, some global news sites, NASA’s “Astronomy Picture of the Day” (APOD), etc.
    • Samba, for some SMB shares that family can dump files into
    • ClamAV, because family is dumping files into their SMB shares

    I’m looking at hosting lemon-manuals (successor to charm.li). It’s basically a massive collection of service procedures, bulletins, fluid/torque/etc specs, and so on for decades worth of automobiles. Stuff the industry would like to force you into paying AllData, Identifix, or whoever for. I just haven’t had a chance to review their provided “server.” It’s also over 1TB. It’s overkill when I’m only working on three vehicles (mine and my folks’) but I’d like to have it all in case an auto industry lawyer tries to shut them down or i inevitably get a new set of wheels.

    I’ve also got intentions of implementing some sort of documentation system but I haven’t settled on one yet. It’s not really for me. I can read my configs and go off plain text. Mainly it needs to be simple enough for my family to work with. My homelab has a bus factor of Me. Whoever has to deal with it when I’m gone needs to know enough to retrieve my encrypted password database so they can get into my emails/bank account to cancel/pay for things or whatever, back up any media of mine they want to keep, back up their own stuff, probably some instructions on how to burn their shows/movies/music back to discs, and shut everything down. Because one day things will break, servers they don’t understand will have failures, they’ll sell the hardware or give it away to designated friends/family members who can hopefully use it… all that unhappy stuff most of us don’t think about until it happens. In fact some sort of contingency plan should probably have been the first thing I recommended, but with some luck you’ve read this far and will put your own into place.

    Anyway, hopefully something in the above rambling helps you on your way.

  • Danitos@reddthat.com
    link
    fedilink
    English
    arrow-up
    5
    ·
    1 day ago

    I would suggest you start to play around with whatever machine you have in hand. Later on you can migrante to a more serious solution. If you want to first play on a VPS, Hertzner’s are like 4€/month

    As for utilities, you could start with (in suggested order over my perceived usefulnes/coolnes/difficulty) Immich, videogame server, Jellyfin, Wireguard, Jupyter server (if you code Python), backrest.

    When you want to scale up and migrate into a more “serious” setup, it depends on that you want and your budget. Still, I recommend a multi-disk bay PC (NAS), and go for a dedicated Linux distro (I’m using TrueNAS; not perfect, but overall a very good experience).

  • krashmo@lemmy.world
    link
    fedilink
    English
    arrow-up
    17
    ·
    2 days ago

    Copy/paste from another comment I made a while back:

    Look into docker containers in general. If I was going to start from scratch in your position this is what I’d do:

    Install a Linux distribution on the computer you plan to use for self hosting. This can be anything from a raspberry pi up to a custom build but I would recommend starting with something you have physical possession of. I found Debian with the KDE plasma desktop environment to be pretty familiar coming from Windows. You could technically do most of this on Windows but imo self hosting is pretty much the only thing that a casual user would find better supported through Linux than Windows. The tools are made for people who want to do things themselves and those kinds of people tend to use Linux.

    Once you have a Linux distribution installed, get docker set up. Once docker is set up, install portainer as your first docker container. The steps above require some command line work, which may or may not be intimidating for you, but once you have portainer functional you will have a GUI for docker that is easier to use than CLI for most people.

    From this point you can find the docker installation instructions for any service you want to run. Docker containers have all the required dependencies of a given service packaged together nicely so deploying new services is super easy once you get the hang of it. You basically just have to define where the container should store it’s data and what web port you want to access the service on. The rest is preconfigured for you by the people who created the container.

    There’s certainly more to be said on this topic, some of which you would likely want to look into before you deploy something your whole family will be using (storage setup and backup capability, virtual machines to segregate services, remote accessibility, security, etc). However, the above is really all you need to get to the point where you can deploy pretty much anything you’d like on your local network. The rest is more about best practices and saving yourself headaches when something breaks than it is about functionality.

  • rowinxavier@lemmy.world
    link
    fedilink
    English
    arrow-up
    7
    ·
    2 days ago

    My personal recommendation is to get started asap with what you have. That would mean using any old thing you have laying around. Do you have an old laptop? They are ideal for beginner self hosting as you can physically access the machine and it includes a battery backup right in the machine. Usually they are also fairly lower efficient, so that is nice too.

    Buying dedicated hardware acts as a barrier to actually doing things, so getting past that is key. If you find you don’t actually want to do self hosting you can just stop using your old laptop, but if you bought a full server machine it will be a bit of a trap and make you feel like you failed in some way. Also, the cost right now is fairly prohibitive, but using existing hardware can make that much more manageable.

    As for what to run, I would recommend trying a fresh install of a distro based on Debian, Ubuntu, Fedora, and Arch. Yes, four. They are different and have a different feel to them, but also have different communities. By going through the process of installing each one you will get a feel for the system and the community around it and have a better idea what works for you. I spent a few years having around the Debian end of things but eventually moved over to Arch stuff and am currently using EndeavourOS. Your experience will likely be different to mine but trying a few different options will help you figure it out.

    Then moving on to services. Try to see what you actually use your machine to do now and then find services for that. For example, if you use something like Google Drive to synchronise data from your phone to your desktop then try using Syncthing to replace that. If you use Netflix to watch stuff try using Jellyfin. If you do play things like Minecraft get a local server running.

    These will all be for learning, so their performance doesn’t need to be better than what a professional can provide, they just need to work and be yours to learn with. If you find you love doing this and enjoy the process but the hardware is holding you back this is a good time to upgrade to a dedicated machine.

    For this I would recommend getting an office computer like an Optiplex or similar, just a basic office computer with an i5 or similar. You will want a fairly good amount of RAM in it, probably 16GB minimum and really 32GB is where things start getting good. A dedicated graphics card is not likely to be useful this early as the iGPU in most modern processors is actually fairly robust and should handle transcoding video for most use cases at a small scale. Storage could be one SSD for the OS and multiple spinning disk drives in a RAID or similar configuration for storage. The SSD will make the actual OS faster, decrease boot times, and make it faster to install and update things making updates less disruptive. The spinning media is way cheaper and you can backup all of your OS drive onto the spinning disks as a cron job in low usage times.

    That’s my two cents on it, start with what you have, expand as you need but not aggressively before you need it, and try things now before you are too afraid to mess something up because you rely on it. Remember to have fun and experiment, nothing teaches better than experience. Enjoy yourself, don’t take it too seriously, and don’t lock yourself in to one specific thing, be flexible and willing to experiment.