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!
Hosting a fediverse instance is at the higher end of the scale when it comes to hosting. There tend to be a lot of moving parts as it’s complex software.
Host a static site first, just a bunch of plain HTML files.
Then host a Wordpress site.
Then host a fediverse thing.
I’d start with some basic Linux networking and tools, if you don’t have them already.
I don’t know if that’s the basics everyone knows these days, but… learn how TCP,UDP,ICMP,TLS relate, what a netmask is, what is ARP and MAC addresses. Fire up Wireshark and look around what is happening on your network. Learn some basic commands like
ip -br -aandss(or the oldernetstat) so you know how to figure out which program is listening where. Learn how to manually resolve a DNS name (digorhost). How tunnel a TCP connection or a webbrowser through ssh (port forwarding, SOCKS proxy). Learn enough of the HTTP protocol so you can manually enter a valid GET request over a simple TCP connection to port 80 withnetcatornc. Or usehttpieorcurlfor the same purpose. You can’t host a lot with that knowledge, but it helps to figure out why things are not working.Start simple, then work your way up. Construct a static website with HTML. Learn how to navigate folders on a (remote) server, so the Linux commandline. Learn how to install software and where to find the configuration and logfiles. Then install some webserver and make it serve your first website. You can do all of this on your own computer. And after that you can learn how to install other web applications, how to reconfigure your webserver to act as a reverse proxy.
So start with basic webdevelopment first, then do Linux, webservers, and then once you got the basics you can do more advanced apps, containers and all the stuff.
Not sure which book to recommend. But I often recommend https://yunohost.org to people who just want to run webservices. It does most of the complicated stuff for you and you just need to click install for software in YunoHost’s catalog. You just need to learn a few basic things about the internet, because it’s fairly easy to use.
Thanks for explaining the path!
About Yunohost... (rambly comment ahead)
I’m aware of it, but avoiding for the reason of learning manually, and also because, as an end user, I don’t like any of the ActivityPub-compatible softwares they offer. Also the amount of troubleshooting I did for people that would press triangle¹ early on in Autoplugin for the PS Vita sure helped making me very wary of automated processes without understanding them.
¹Triangle made all homebrew plugins listed in Autoplugin get installed, including experimental and incompatible ones. Also been some ~7 years since the function got removed and I never used it myself, but the problem was so widespread I remember down to the key used for running it… 🥹
I’d suggest you take a legal course to find out what you’re responsible for that people upload to your server in your jurisdiction. Decide from there if you can handle that before you look into the technicalities of it first.
This how stupid is the best advice. Setting up my instance was easy. Learning how liable I was for what others put there was something completely different.
That’s why whenever I see another 2 day account looking for “free speech” and “no moderation” my answer is always “sure, you go host it then!” I’m not going to jail because you want to say horrible shit.
In addition to just making a site available, you also need to learn how to make it secure. Anything published to the Internet will be under constant attack from bots. You need to not only secure the server itself, but also isolate it from the rest of your network in case it does get compromised.
That’s what I meant about horizontal attacks. Iirc that was the term used in the explanation that convinced me to consider a VPS. 😅
…though I still want stuff locally, so studying this type of network security is still in my roadmap.
I would strongly suggest Pangolin for that use case. It combines a reverse proxy with a VPN tunnel between your local network and your VPS. You can host your services on your local machine, and serve them from the VPS. Pangolin also sets up your letsencrypt certs for https.
It also provides a security layer: if enabled for a site, you have to be logged in to Pangolin before Pangolin will proxy traffic to your site.
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.
Use Cloudflare for now, because they handle a lot of security stuff for you that you definitely don’t want to screw up.
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.
I’ll be doing others’ suggestions of going from the basics, to be sure whether I’m missing or not any knowledge. This earlier parts shouldn’t require internet, but I’ll ask once I get to the DNS part. Thanks. 😊
They are correct in that a basic foundation is crucial. Once you get that down to a note, then you can work on maybe running some Docker containers. I would just start with one and learn it. How it interacts with the rest of the stack, what else is it doing behind the scenes. Small steps lead to great strides.
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.
This is the way to go. Do a simple website that says “hello world” then add all the other infrastructure around it until it’s a real webpage accessible on the Internet. Only then should you move onto something complex like mbin. Don’t skip the basics
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!
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.
External computer: “I want the contents of 10.11.12.13:443/some/path”
[DNS Machinery and Tubes]
Hosting machine: “Someone wants the contents of port 443 and some/path. Found the contents, let me send these back to them”
[Internet machinery and tubes]
External computer: “I have received the contents”
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/
Do you think people still know what a phone book is? Or are we old?
what is a phone book?Ow, my back xD. I’m struggling to think of some other key-value mapping that’s available in the real world that works tbf. I was gonna say TV Channel numbers to Channel names…but then I’m really showing my age lmao
I’m around my 30’s and I also struggle to think of examples not at least as old as me. e.e’’
So going back to the title, what to study? Maybe some specific book? Private classes/courses?
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.
Thanks!
About studying about operating systems and docker, I think I know what you mean. I had come across some info on docker already, and it sounded like a system image, as you’d get on a VM or with dd, or a disc ISO or disk ROM dump.
Will make sure to look further into it!
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.
I’d say Caddy is generally easier and a more modern alternative to Apache/nginx.
Noted. Thanks!
Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I’ve seen in this thread:
Fewer Letters More Letters ARP Address Resolution Protocol, translates IPs to MAC addresses DNS Domain Name Service/System HTTP Hypertext Transfer Protocol, the Web HTTPS HTTP over SSL IP Internet Protocol NAT Network Address Translation SSL Secure Sockets Layer, for transparent encryption TCP Transmission Control Protocol, most often over IP TLS Transport Layer Security, supersedes SSL UDP User Datagram Protocol, for real-time communications VPN Virtual Private Network VPS Virtual Private Server (opposed to shared hosting) nginx Popular HTTP server
[Thread #184 for this comm, first seen 23rd Mar 2026, 11:30] [FAQ] [Full list] [Contact] [Source code]










