I want to get into self-hosting. I’ve done a bit of self-hosting before using a Raspberry Pi (pi-hole and Discord bots) but I really want to start self-hosting almost everything I can like I’ve seen many people here doing.

However, I’m not sure what kind of machine I should build which would be suitable for these purposes. I’ve never even built a PC before though my fiancee has and he will be able to help me…

Here are some services I’m thinking of self-hosting to start with:

  • AdGuard
  • OpenMediaVault
  • Bitwarden
  • Mastodon
  • Matrix

Eventually I would also like to host PeerTube, Kbin, Plex, and many other things…

What are the most important things I’ll need to consider with a self-hosting machine, and what I will need to upgrade over time as I self-host more services? Ideally I’d like a machine which is as energy efficient as possible too.

Also, is it a good idea to host so many services, both publically-accessible websites as well as services only available on my home network, from the same machine? What are the security considerations when self-hosting?

Any links/articles for me to read would be appreciated too!

  • philluminati@lemmy.ml
    link
    fedilink
    arrow-up
    12
    ·
    edit-2
    1 year ago

    The first consideration is always your internet speed. If you’re building a pc then you’re self hosting from house. In many countries the internet is ADSL meaning the upload is very slow but the download is fast. However for hosting you need fast upload. You’ll need a fibre connection to stream video from home.

    I rent a server in the cloud to do self-hosting due to the subtle difference in my definition of hosting, being that I control the services and data they hold, not that they are literal hosted at home.

    Beyond that consideration I’d say everything else is trial and error and you should experiment.

  • Freeman@lemmy.pub
    link
    fedilink
    arrow-up
    7
    ·
    1 year ago

    I personally use Dell SFF 7040/7050’s. They can have up to 64 GB of ram, use NVME, and have PCIe slots for expansion while still being lower power and profile.

    That said, for a lot of public stuff, like this very instance, I use Linode.

  • melroy@kbin.melroy.org
    link
    fedilink
    arrow-up
    6
    ·
    edit-2
    1 year ago

    Yes, it’s a great idea. And I also do it myself. In fact, I’m not only self host all my services. I also host them at my home.

    https://server.melroy.org including all the sub domains are all hosted on the same server.

    You can just use a good ryzen computer with enough ram (start with 32 gb or something). With enough storage. Redundancy via raid. I personally use Proxmox with an Ubuntu 22.04 VM. However bare metal may be also fine.

    Have fun!

  • Chat_mots@jlai.lu
    link
    fedilink
    English
    arrow-up
    6
    ·
    edit-2
    1 year ago

    One think you need to check before is your upload speed. Without a good one, it will essentially be useless outside of your home.
    As for the computer, definitely buy something that can do virtualization, I’ve heard that some motherboard can’t (never seen one, maybe it’s an old thing).
    And last, even an old computer can be good for self-hosting, except the plex / jellyfin video, almost everything is static webpages with databases. You can upgrade later just by changing the components, add more storage… You can even copy your entire system to a new computer if you change entirely.

    Is it a good idea to host so many services, both publically-accessible websites as well as services only available on my home network, from the same machine?

    You can use Caddy’s reverse proxy to have easy https + not opening ports from your router and have something like plex.mydomain.com / mastodon.mydomain.com. And you’ll have no trouble hosting differents services from the same machines. I believe it is not a problem to have multiples services on the same computer.

    What are the security considerations when self-hosting?

    I’m not an expert, but never use the default password when installing a service. And keep your stuffs up to date. https is important too, but is often automatic when using a reverse proxy.

    If you have more question no problems :)

    • averyminya@beehaw.org
      link
      fedilink
      English
      arrow-up
      2
      ·
      1 year ago

      Wait, that’s awesome. I moved and my net network is CG/NAT so I have no port forwarding without a VPN. Will caddy allow me to get around that and actually use Plex remote?

      • Chat_mots@jlai.lu
        link
        fedilink
        English
        arrow-up
        2
        ·
        1 year ago

        I’m not sure about Plex, it is not really 100% self hosting, because authentication come from their server. You should try and see if it works. But their is no reason it should not. It’s just an addition in your caddyfile :

        plex.mydomain.com {
            reverse_proxy 192.168.0.123:32400 (your address:port)
        }
        

        However, i can assure you it works with Jellyfin.

        • averyminya@beehaw.org
          link
          fedilink
          English
          arrow-up
          2
          ·
          1 year ago

          Thank you kindly! I’ll have to look into it and see but it sounds like it may be exactly what I’ve been looking for.

  • plactagonic@beehaw.org
    link
    fedilink
    arrow-up
    5
    ·
    1 year ago

    If you want it only for testing, breaking things… Buy some POS office PC, lot of companies is always getting rid of these.

    I am not self hosting, but I will probably buy few of these from my work and try it (at least it’s my plan).

  • MentalEdge@sopuli.xyz
    link
    fedilink
    arrow-up
    5
    ·
    edit-2
    1 year ago

    Others have commented on things aside from hardware, so I’ll throw my hat in on that matter.

    I have a machine at home running an i5-4670, and 16gb of ram.

    This is enough to host up to about 3 or 4 video game servers for the titanfall northstar client.

    The actual self-hosted services I run barely even register in comparison, the only thing that significantly hits the CPU to any real extent, is when Jellyfin in transcoding something for one of my users.

    You mention energy efficiency, and for this using desktop CPUs like me is not ideal, I did invest in a high quality PSU, which helps. You can also look into T variant intel chips, which are less powerful but FAR mor efficient variants of their normal chips.

    Used availability on older gen parts is fantastic however. I had my previous CPU, an i3, fail. I was able to track down a seller with the used i5 I have now, going for 10 bucks, the same day.

    Then there are options like all-in-one motherboards, that come with really efficient, but quite weak, CPUs soldered onto the board. These are often the same chips you’ll see in off the shelf NAS boxes, and are in many cases enough to host a good few things, if you don’t mind things potentially running a tad slow sometimes.

    None of the services you mention are particularly resource heavy, nor memory intensive.

    I’ll note you’d benefit from SSD storage for UI responsiveness, for mastodon and matrix.

  • abhibeckert@beehaw.org
    link
    fedilink
    arrow-up
    5
    ·
    1 year ago

    I don’t think you need to build a computer for this. Just run Docker on whatever computer you have. A laptop is fine.

  • Tinkerer@lemmy.ca
    link
    fedilink
    arrow-up
    4
    ·
    1 year ago

    Use docker, I’m running 25 docker containers on my Nas, 6 of them which are internet accessible with 8gb RAM. You don’t need a massive server/machine that costs 300$ a year to run. Somw co tainera are Adguard, Emby, Guacamole, firefly, etc Learn docker and have fun!

  • kugla@discuss.tchncs.de
    link
    fedilink
    arrow-up
    4
    ·
    1 year ago

    Also, is it a good idea to host so many services, both publically-accessible websites as well as services only available on my home network, from the same machine? What are the security considerations when self-hosting?

    Generally speaking - no, it is not a good idea. It is definitely doable, but not very wise from security perspective.

    Vulnerabilities in the public facing services are also threats to your private services, because the attacker that leverages exploit in public service potentially gains access to your home network and machine.

    A lot can be done using proper separation of applications (separate internal networks, virtual machines, containers etc) but a single mistake can cost you a lot.

  • venusenvy47@lemm.ee
    link
    fedilink
    arrow-up
    4
    ·
    edit-2
    1 year ago

    I ran a few things on an Odroid for years, which is like a Pi, and I wanted to upgrade. I shopped for an SBC with more RAM and found the prices getting high pretty quickly. I went with a mini PC made by Beelink- and have been very happy. There are many price points, based on RAM and drive: https://www.amazon.com/s?k=bee+link+pc

    Aside from getting much more memory and storage for your money, I much prefer this hardware over an SBC because I can use any normal distro. With the Odroid I was stuck with the distros provided by the vendor.

  • Monkey With A Shell@lemmy.socdojo.com
    link
    fedilink
    arrow-up
    3
    ·
    1 year ago

    If you’re talking media then drive space with a resilient storage setup is important. Some form of raid where you have the ability to lose a drive without losing the data. It’s also nice to keep bulk storage separate from running/compute storage in my book. IE: Keep the movies on one remote space with cheap storage and the movie player on the local drive. That way multiple services can selectivlely access it without affecting the high speed drives running the DB and other active processes run on.

    Security is a whole separate thing that I could write a book on, but on a baseline a firewall, IPS, and some sort of dynamic reputational filtering should be a given. Monitoring is big too, graylog or security onion are good places to observe from for free.

  • flatbield@beehaw.org
    link
    fedilink
    arrow-up
    2
    ·
    1 year ago

    If you want to have services on the internet just rent a VPS. Keep in mind though plan to keep anything on the internet very updated, secure, and maintained. Linode is one such provider. There are many others.

    If on your LAN then frankly the lowest power thing you can live with as electric cost will be a major part of the cost. I actually have a fairly substantial Media Center computer but also host my services that in my LAN since it needs to be always on anyway. I would not call my my solution low power but it is on already any way. I just made the system capable of both uses.

  • TheButtonJustSpins@infosec.pub
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    1 year ago

    Agreed with everyone saying to use what you have.

    If you need to put together a new machine, I’d get a Bee-link SER5 (~260), 64 GB RAM (~140), and a 2TB SSD (~125) for ~525-550 all in. Install Proxmox and that would support several VMs running docker to do whatever you wanted for a while, and you could scale horizontally in the future if you outgrow it.