Hey there!

I’m thinking about starting a blog about privacy guides, security, self-hosting, and other shenanigans, just for my own pleasure. I have my own server running Unraid and have been looking at self-hosting Ghost as the blog platform. However, I am wondering how “safe” it is to use one’s own homelab for this. If you have any experience regarding this topic, I would gladly appreciate some tips.

I understand that it’s relatively cheap to get a VPS, and that is always an option, but it is always more fun to self-host on one’s own bare metal! :)

  • nicgentile@lemmy.world
    link
    fedilink
    English
    arrow-up
    2
    ·
    3 days ago

    I self host a Grav site among other things on a 15 Euro VPS.

    Also, I started with Ghost but the fact that they locked up the newsletter side of business to a single provider and were unwilling to rework things at the time made me walk away. Yes, I know you could go code side, and add others, but that was a complicated setup in itself. Grav works perfectly for me.

  • Strit@lemmy.linuxuserspace.show
    link
    fedilink
    English
    arrow-up
    6
    ·
    2 days ago

    I host mine just like you want to do. Ghost running in a docker container on my homelab, with reverse proxy and domain pointing to it.

    Haven’t had any issues so far.

  • wjs018@lemmy.world
    link
    fedilink
    English
    arrow-up
    15
    ·
    3 days ago

    I have hosted a wordpress site on my unraid box before, but ended up moving it to a VPS instead. I ended up moving it primarily because a VPS is just going to have more uptime since I end up tinkering around with my homelab too often. So, any service that I expect other people to use, I often end up moving it to a VPS (mostly wikis for different things). The one exception to that is anything related to media delivery (plex, jellyfin, *arr stack), because I don’t want to make that as publicly accessible and it needs close integration with the storage array in unraid.

    • Sunny' 🌻@slrpnk.netOP
      link
      fedilink
      English
      arrow-up
      2
      ·
      3 days ago

      Good points here, uptime is a factor I had not taken into consideration. Probably better to get a vps as you say.

  • cron@feddit.org
    link
    fedilink
    English
    arrow-up
    30
    arrow-down
    1
    ·
    3 days ago

    No, with these reasons:

    • Bandwidth isn’t plenty
    • My “uptime” at home isn’t great
    • No redundant hardware, even a simple mainboard defect would take a while to replace

    I have a VPS for these tasks, and I host a few sites for friends amd family.

    • daddy32@lemmy.world
      link
      fedilink
      English
      arrow-up
      3
      arrow-down
      1
      ·
      2 days ago

      Weeeell, there’s a school of though leaning towards the opinion that using VPS is still self-hosting ;)

      • cron@feddit.org
        link
        fedilink
        English
        arrow-up
        2
        ·
        2 days ago

        I agree, but I understood this question in the context of a homelab.

        And for me, a homelab is not the right place for a public website, for the reasons I mentioned.

  • Daniel Quinn@lemmy.ca
    link
    fedilink
    English
    arrow-up
    7
    ·
    1 day ago

    I’ve been self-hosting my blog for 21years if you can believe it, much of it has been done on a server in my house. I’ve hosted it on everything from a dusty old Pentium 200Mhz with 16MB of RAM (that’s MB, not GB!) to a shared web host (Webfaction), to a proper VPS (Hetzner), to a Raspberry Pi Kubernetes cluster, which is where it is now.

    The site is currently running Python/Django on a few Kubernetes pods on a few Raspberry Pi 4’s, so the total power consumption is tiny, and since they’re fanless, it’s all very quiet in my office upstairs.

    In terms of safety, there’s always a risk since you’re opening a port to the world for someone to talk directly to software running in your home. You can mitigate that by (a) keeping your software up to date, and (b) ensuring that if you’re maintaining the software yourself (like I am) keeping on top of any dependencies that may have known exploits. Like, don’t just stand up an instance of Wordpress and forget about it. That shit’s going to get compromised :-)

    The safest option is probably to use a static site generator like Hugo, since then your attack surface is limited to whatever you’re using to serve the static sites (probably Nginx), while if you’re running a full-blown application that does publishing etc., then that’s a lot of stuff that could have holes you don’t know about. You may also want to setup something like Cloudflare in front of your site to prevent a DOS attack or something from crippling your home internet, though that may be overkill.

    But yeah, the bandwidth requirements to running a blog are negligible, and the experience of running your own stuff on your own hardware in your own house is pretty great. I recommend it :-)

  • Foster Hangdaan@lemmy.fosterhangdaan.com
    link
    fedilink
    English
    arrow-up
    17
    arrow-down
    1
    ·
    3 days ago

    I self-host everything from my home network including my website. I like to keep all my data local. 😁

    It’s a simple setup: just a static site made with Lume, and served with Caddy. The attack surface is pretty small since it’s just HTML and CSS files (no JavaScript).

    • LunchMoneyThief@links.hackliberty.org
      link
      fedilink
      English
      arrow-up
      4
      ·
      2 days ago

      I wonder sometimes if the advice against pointing DNS records to your own residential IP amounts to a big scare. Like you say, if it’s just a static page served on an up to date and minimal web server, there’s less leverage for an attacker to abuse.

      I’ve found that ISPs too often block port 80 and 443. Did you luck out with a decent one?

      • Foster Hangdaan@lemmy.fosterhangdaan.com
        link
        fedilink
        English
        arrow-up
        6
        ·
        edit-2
        2 days ago

        I wonder sometimes if the advice against pointing DNS records to your own residential IP amounts to a big scare. Like you say, if it’s just a static page served on an up to date and minimal web server, there’s less leverage for an attacker to abuse.

        That advice is a bit old-fashioned in my opinion. There are many tools nowadays that will get you a very secure setup without much effort:

        • Using a reverse proxy with automatic SSL certs like Caddy.
        • Sandboxing services with Podman.
        • Mitigating DoS attacks by using a WAF such as Bunkerweb.

        And of course, besides all these tools, the simplest way of securing public services is to keep them updated.

        I’ve found that ISPs too often block port 80 and 443. Did you luck out with a decent one?

        Rogers has been my ISP for several years and have no issue receiving HTTP/S traffic. The only issue, like with most providers, is that they block port 25 (SMTP). It’s the only thing keeping me from self-hosting my own email server and have to rely on a VPS.

  • knowatimsayn@programming.dev
    link
    fedilink
    English
    arrow-up
    2
    arrow-down
    1
    ·
    3 days ago

    Yea depends on your website bandwidth/uptime requirements. I use a VPS running nginx and wireguard, and tunnel into that from a VM in my homelab, so no ports are open on my home firewall. nginx drops all random traffic at the VPS that isn’t destined to a preconfigured service, expected traffic is forwarded through the wireguard tunnel to the right VM’s, segregated from the rest of my home network by VLANs. I host a bit of web content where I’m not concerned with bandwidth or uptime really, as well as home assistant, file browser, a few dedicated game servers, etc.

  • sntx@lemm.ee
    link
    fedilink
    English
    arrow-up
    3
    ·
    2 days ago

    yes: sntx.space, check out the spurce button in the bottom right corner.

    I’m building/running it the homebrewed-unconventional route. That is I have just a bit of html/css and other files I want to serve, then I use nix to build that into a usable website and serve it on one of my homelab machines via nginx. That is made available through a VPS running HA-Proxy and its public IP. The Nebula overlay network (VPN) connects the two machines.

  • schizo@forum.uncomfortable.business
    link
    fedilink
    English
    arrow-up
    1
    ·
    3 days ago

    Have some stuff on a VPS, some stuff hosted as static pages at Cloudflare, some stuff hosted at home too.

    Depends on if 100% uptime is required, if they’re just serving static content, or if they’re in some way related to another service I’m running (I have a couple of BBSes, and the web pages that host the clients and VMs that host the clients run locally).

    Though, at this point, anything I’m NOT hosting at home is kinda a “legacy” deployment, and probably will be brought in-house at some point in the future or converted to static-only and put on Cloudflare if there’s some reason I can’t/don’t want to host it at home.

  • K3CAN@lemmy.radio
    link
    fedilink
    English
    arrow-up
    3
    ·
    13 hours ago

    I self host.

    I use nginx as a reverse proxy with crowdsec. The backends are nginx and mariadb. Everything is running on Debian VMs or LXCs with apparmor profiles and it’s all isolated to an “untrusted” VLAN.

    It’s obviously still “safer” to have someone else host your stuff, like a VPS or Github Pages, etc, but I enjoy selfhosting and I feel like I’ve mitigated most of the risk.

  • TheHolm@aussie.zone
    link
    fedilink
    English
    arrow-up
    2
    ·
    6 hours ago

    Biggest problem will be BW and latency to your lab from the Internet. I would use dedicated hardware and subnet for it. Security wise, if you can make your site 100% static it will help a lot with security. I’m personally set on AWS S3 + CloudFlare combo with static site generator running in my lab. Yes it is not really “self hosted” but worries free solution for me.

  • eric@lemmy.ca
    link
    fedilink
    English
    arrow-up
    9
    ·
    3 days ago

    I have a Hugo site hosted on GitHub and I use CloudFlare Pages to put it on my custom domain. You don’t have to use GitHub to host the repo. Except for the cost of the domain, it’s free.

  • sugar_in_your_tea@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    3
    arrow-down
    1
    ·
    edit-2
    2 days ago

    I use a VPS and generate static sites using Hugo. Works fine.

    I could host it in my network, but I don’t see a point, and I’d really rather not have a power outage or loss of internet break my site (much more likely at home than at a datacenter). I host pretty much everything else within my network though.