I have several years of Linux experience and I know how to fix my own problems, and I have experience self-hosting using Docker and Docker Compose, but I really feel that I don’t know how to self-host and that I just copy and paste commands without understanding it, I would really like to learn how to self-host by myself but I don’t know how I can start or with what resources for newbies I can start with.

I am interested in self-hosting several services, but the one I am currently most interested in is changedetection.io, as there are multiple such services but they all require a membership fee, and I prefer to self-host on my own.

  • Voroxpete
    link
    fedilink
    English
    arrow-up
    9
    ·
    7 months ago

    Get to grips with Docker. OCI containers are the standard method of self hosting basically everything now, so once you’re comfortable with Docker and compose files, literally anything you could want to host is available as a drop in component for your system.

    An excellent way of playing around with Docker is to install Dockge. It’s a web UI with some really helpful features. First, it can convert Docker Run commands into compose files for you (once you start to play around with this it’ll be clear why that matters), and second, its very good at pointing out where and how you’ve made errors in your compose files. But most importantly, unlike Portainer (the most popular Docker UI) it works with the Docker command line rather than trying to replace it. With Dockge you know exactly where all of your files are and if any part of your setup breaks you can repair it very easily. It also doesn’t have Portainer’s problem of flashing error messages on the screen for 0.3 seconds then whisking them away. It exposes the entire Docker terminal output so your debugging process is much, much easier.

    You’ll also want to learn about reverse proxies (I reccomend Caddy for its unbelievably simple config file; an entire site is three lines). These are really important for serving multiple different services from one source.

    For anything that you can’t run in Docker, VMs are an acceptable solution, and LXC containers are a better solution, but one that requires a little more work to get to grips with (fun fact, LXC has its own web UI, which is fantastic, but almost nobody seems to even know it exists). Since you’re already familiar with Linux, you may want to ignore the suggestion to use Proxmox and just set up a server with your preferred flavour and go from there. All of this can be done with any modern Linux distro, so you might as well work in an environment you’re comfortable in.