from Auster@thebrainbin.org to selfhosted@lemmy.world on 23 Mar 02:41
https://thebrainbin.org/m/selfhosted@lemmy.world/t/1513112
For some months now, I've been trying to set up an Mbin instance, since as it's more manual than the other softwares I found, and I understand things better if I can see the logic behind them. I'd rather do that before going for automated processes where if something breaks, I don't know how to handle. However, trying to figure things out as I go, it's so much stuff that I figured out instead what I knew was very little.
As I was also interested in hosting other sites, this made me reevaluate things, and turns out several things I don't know, like how to host two sites in a same machine, how to handle horizontal attacks, what some tools are used for, etc.
So going back to the title, what to study? Maybe some specific book? Private classes/courses? Online tutorials? Something else? Just no university suggestion, please - from experience, they are extremely shallow at best.
Thanks in advance!
threaded - newest
Look at nginx or Apache if you want to host multiple websites on a single machine (that is how they have done it since the 1990s) containers make things easier if dealing with multiple complex sites but are not absolutely required.
Noted. Thanks!
I would suggest you start reading up on reverse proxies, like nginx, caddy or traefik. And maybe docker, to containerize your services, so you don’t “splatter” stuff all over your filesystem.
Makes sense e.e"
Thanks!
I would suggest starting out with nginx and just setting up a basic homepage for yourself. Even if it’s just a title and background… doesn’t matter.
This way you have to solve problems like how to reach your page from the outside (your own domain? DDNS? etc) and also how to set up Certbot for HTTPS (which a lot of services will also require later). That already includes setting up kind of parallel configurations (one for http that than redirects to https, one for https) in nginx. And you will do both later again, because you use the same dual setups to serve two different websites on the same IP depending on which the addressname a visitor entered and also will redirect some of them (or sublocations of your page) to other services that provide a webinterface as a reverse proxy.
Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:
[Thread #184 for this comm, first seen 23rd Mar 2026, 11:30] [FAQ] [Full list] [Contact] [Source code]
Understand what a Reverse Proxy is, because you will not escape reading that phrase.
Host things with Docker for now. If you don’t start hosting until you understand everything, you won’t start for a long time and that is silly.
Use Cloudflare for now, because they handle a lot of security stuff for you that you definitely don’t want to screw up. If you don’t know what Cloudflare is, read up on CDNs and why they exist. Their Zero Trust Tunnel is the easiest and safest way to go, as long as you don’t plan to do anarchy or sedition on it, just talk about your household plants and dogs and what not and you’re fine.
This is mainly for OP, but you mentioned Cloudflare. OP, if you decide to go with Cloudflare Tunnels/Zero Trust, I have some notes that might help jump start that process. They’ve seemed to help a few people set up Cloudflare Tunnels/Zero Trust, and I’d be happy to share them with you.
linuxupskillchallenge.org
Networking. If you want to understand the reasoning behind things this is where you start. A good foundation in tcp/ip, the 7 layer network stack, as well as basic network protocols (dns, dhcp, http, etc.) will go a long way toward helping you troubleshoot when things go wrong.
Maybe throw in some operating systems study as well for when you start to use docker.
A website is just a html page that lives on some computer somewhere and is being served by a program which tells the computer which html page to show when given a port + path to follow.
All internet connected computers have IP addresses that we can use and DNS is the phonebook that connects IP addresses to domain names. (To test this, ping google.com in terminal, then copy and paste the IP address ping shows you into your address bar).
The webserver/reverse proxy in this case is our program which tells your machine what to send and when: these are programs like traefik, caddy, Apache, nginx et al. On top of this, it doesn’t have to be just HTML files, it can be actual files, or services or programs you’ve written.
[DNS Machinery and Tubes]
[Internet machinery and tubes]
As an aside, if you’re behind Carrier-Grade NAT (aka, you can’t actually reach your machine from your external IP address because you actually share it with a bunch other people) then you can use a VPN like tailscale (or headscale) to have a tunnel connection between the machines you require to interact/